一、几种常用特性的用法
1.[Command] 方法必须以Cmd开头,方法只能被带有网络组件的has authority的物体调用,方法的执行在服务器上。
2.[ClientRpc]方法必须以Rpc开头,方法只能在服务器上调用,方法的执行是在所有的客户端(服务器也是一个客户端)执行。
3.[Client]方法只在客户端执行(并不会像Rpc那样广播,因为服务器也是一个客户端,所以不知道有什么用==)(因为可以只有server端,所以client特性就有用了,host的话就是server和client在一个客户端)。
4.[Server]方法只在服务器上执行。
5[ClientCallback]等同于client特性,区别在于如果方法在服务器上调用不会产生警告。
6.[ServerCallback]等同于server特性,区别在于如果方法在客户端上调用(并不会执行)不会产生警告。
7.[TargetRpc]在服务器上调用,在制定的客户端上执行。方法定义的格式:方法以Target开头,有一个NetworkConnection的参数。一般用法:player在服务器上调用然后只在自己的客户端执行,参数为connectionToClient。
二、NetWorkIdentity组件
若为本地玩家,LocalPlayerAuthoritty一定得勾选,这样在本地客户端就会有权限;若为rpc人物不要勾选,这样在服务器上的rpc就会有权限。只在服务器上执行的一些脚本可以勾选ServerOnly,例如敌人的生成脚本。
三、NetworkAnimator组件
用来同步animator,必须has authority。将需要同步的animator变量勾选起来,对于trigger变量需要使用NetworkAnimator.SetTrigger()方法来进行赋值,才能同步。在客户端刚连接进来时会直接同步到服务器上当前的状态,以后只进行状态的增量同步。
待续···