Version: 2017.3
Method group is Obsolete

NetworkView.RPC

切换到手册
Obsolete public void RPC (string name, RPCMode mode, params object[] args);

描述

在所有连接的对等方上调用 RPC 函数。

被调用函数必须设置 @RPC 标签(C# 代码为 [RPC])。 必须向调用 RPC 函数的 GameObject 附加一个 NetworkView。可以将 NetworkView 用于其他操作,也可以将其仅用于 RPC 函数。如果仅将其用于 RPC 函数,则应关闭状态同步并将 Observed 属性设置为 none。 RPC 函数名称在场景中应该是唯一的,如果不同脚本中的两个 RPC 函数具有相同的名称, 则在调用 RPC 时,将只调用其中一个函数。 始终保证 RPC 调用的执行顺序与其发送顺序相同。 使用 NetworkView.group 为网络视图设置的通信组用于 RPC 调用。 要获取有关 RPC 本身的信息,可以向函数声明中添加一个 NetworkMessageInfo 参数, 这将自动包含该信息。执行该操作时, 无需更改调用 RPC 函数的方式。有关更多信息,请参阅 manual 的 RPC 部分。 有效的 RPC 参数为 int、float、string、NetworkPlayerNetworkViewIDVector3Quaternion

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public Transform cubePrefab; public NetworkView nView; void Start() { nView = GetComponent<NetworkView>(); } void OnGUI() { if (GUILayout.Button("SpawnBox")) { NetworkViewID viewID = Network.AllocateViewID(); nView.RPC("SpawnBox", RPCMode.AllBuffered, viewID, transform.position); } } [RPC] void SpawnBox(NetworkViewID viewID, Vector3 location) { Transform clone; clone = Instantiate(cubePrefab, location, Quaternion.identity) as Transform as Transform; NetworkView nView; nView = clone.GetComponent<NetworkView>(); nView.viewID = viewID; } }

Obsolete public void RPC (string name, NetworkPlayer target, params object[] args);

描述

针对特定玩家调用 RPC 函数。