Unity NetworkCode项目实例1
Unity NetworkCode项目实例1安装Netcode for GameObjectsNetcode for GameObject的三种角色HostServerClient常用的组件NetcodeManager网络管理者NetcodeObject 网络物体标识NetcodeTransform同步更新TransformNetcodeAnimator同步更新AnimatorServerRPC和ClientRPC场景初始化场景初始化创建四个场景并BulidSetting对Init的布置建立连接导入字体创建SceneCtr脚本局域网联机或外网联机其他玩家加入服务器的场景更改GameManager脚本在SceneCtr脚本调用GameManager搭建游戏大厅场景实现添加本地玩家获取Canvas上的内容添加网络上的其他玩家实现数据通信、更新准备状态更新本地添加游戏角色,选择性别安装Netcode for GameObjectsNetcode for GameObject的三种角色Host建立服务器,并在服务器的位置建立客户端Server建立服务器Client建立客户端常用的组件NetcodeManager网络管理者NetcodeObject 网络物体标识NetcodeTransform同步更新TransformNetcodeAnimator同步更新Animator需要把Animator挂载到本物体,只能同步更新本物体上的。ServerRPC和ClientRPC场景初始化场景初始化创建四个场景并BulidSetting对Init的布置在场景中创建两个空物体,并分别命名为GameManager和Network Manager给NetworkManager添加NetworkManager组件,并配置创建一个人物物体并添加组件NetwotkObject变成预制体拖给PlayerPrefabCreate-Netcode-Network Prefabs list拖到list中###创建GameMananger脚本voidStart(){//当加载新场景时不销毁当前场景DontDestroyOnLoad(gameObject);SceneManager.LoadScene(1);}建立连接AssetStore导入SharpUI GUI资源,跳过更新,导入Textures导入字体将.ttf后缀的拖入unityTMP:右击-create-TextMeshPro-FontAsset创建SceneCtr脚本publicclassSeneceCtr:MonoBehaviour{[SerializeField]Transform_canvas;voidStart(){ButtoncreateBtn=_canvas.Find("CreateBtn").GetComponentButton();ButtonjoinBtn=_canvas.Find("JoinBtn").GetComponentButton();createBtn.onClick.AddListener(OnCreateClick);joinBtn.onClick.AddListener(OnJoinBtnClick);}//做服务器privatevoidOnCreateClick(){NetworkManager.Singleton.StartHost();}//作客户端privatevoidOnJoinBtnClick(){NetworkManager.Singleton.StartClient();}本机地址127.0.0.1局域网联机或外网联机...privateTMP_InputField_ip;voidStart(){...//ip地址的输入框_ip=_canvas.Find("IP").GetComponentTMP_InputField();}//做服务器privatevoidOnCreateClick(){//服务器使用的传输主机vartransport=NetworkManager.Singleton.NetworkConfig.NetworkTransportasUnityTransport;//设置IP和端口信息transport.SetConnectionData(_ip.text,777);...}//作客户端privatevoidOnJoinBtnClick(){vartransport=NetworkManager.Singleton.NetworkConfig.NetworkTransportasUnityTransport;transport.SetConnectionData(_ip.text,777);...}其他玩家加入服务器的场景更改GameManager脚本publicclassGameManager:NetworkBehaviour{publicstaticGameManagerInstance;voidStart(){Instance=this;...}publicvoidLoadScene(stringsceneName){//网络加载场景,其他玩家加入房间进入服务器可以加载他所在的场景NetworkManager.SceneManager.LoadScene(sceneName,LoadSceneMode.Single);}在SceneCtr脚本调用GameManagerprivatevoidOnCreateClick(){...//Lobby是场景名GameManager.Instance.LoadScene("Lobby");}搭建游戏大厅场景实现添加本地玩家获取Canvas上的内容1、创建LobbyCtrl脚本控制游戏界面publicclassLobbyCtrl:NetworkBehaviour{[SerializeField]privateTransform_canvas;privateTransform_content;privateGameObject_originCell;privateButton_starBtn
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2580948.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!