这是一个可添加到 NetworkBehaviour 类的方法上,以允许它们能够从服务器的客户端上调用的属性。
[ClientRPC] 函数由 Unity Multiplayer 服务器上的代码调用,然后在连接到服务器的客户端上相应的游戏对象上调用。RPC 调用的参数通过网络进行了序列化,因此客户端函数可使用与服务器上的函数相同的值进行调用。这些函数必须以前缀“Rpc”开头,并且不能为静态。
using UnityEngine; using UnityEngine.Networking;
public class Example : NetworkBehaviour { int counter; [ClientRpc] public void RpcDoMagic(int extra) { Debug.Log("Magic = " + (123 + extra)); }
void Update() { counter += 1;
if (counter % 100 == 0 && NetworkServer.active) { RpcDoMagic(counter); } } }
允许的参数类型为:
• 基本类型(byte、int、float、string 和 UInt64 等)\
• 内置 Unity 数学类型(Vector3、四元数等)\
• 基本类型数组\
• 包含允许类型的结构\
• NetworkIdentity \
• NetworkInstanceId\
• NetworkHash128\
• 附加 NetworkIdentity 组件的游戏对象。