https://pmlpml.github.io/unity3d-learning/13-Multiplayer-and-Networking 学习资料
https://www.cnblogs.com/ye-ming/p/7975958.html 原文
网络编程的要点是你首先了解当前代码在服务器上运行还是在本地运行,并远程调用。
- [Command] :本地玩家对象执行的代码,调用服务器执行的函数
- [ClientRpc] :服务器执行的代码,调用所有客户端执行函数
- [SyncVar]:服务器授权变量,Spwan 自动同步到客户端
NetworkManager可以用于管理从预制实例化网络对象。大多数游戏都有一个预设体作为主角对象,所以NetworkManager有一个位置使其拖动玩家预设体。当一个设置了一个玩家预设体,玩家对象将自动网络实例化物体在每个用户在游戏中。这适用于主机上的本地玩家,以及在远程客户端的远程玩家。注意,玩家预设体必须添加NetworkIdentity组件。
除了玩家预设体之外,其他的预设体对象想动态地产生必须在ClientScene中注册。这可以用ClientScene.RegisterPrefab()函数,也可以是由NetworkManager自动完成的。将预制体添加到列表中会让他们被自动注册。
一旦玩家预设体设置之后,应该能够在开始游戏主机中看到玩家对象了。停止游戏应该看到玩家对象被销毁。运行游戏的另一个副本和作为一个客