查询下一个可用的网络视图 ID 号并进行分配(保留)
此编号可分配给一个实例化对象的网络视图。下面的示例演示了一个完成此操作的 简单方法。注意,为了实现此目的,拥有此脚本的对象必须附加有一个 NetworkView, 而且此脚本必须设置为该对象的 Observed 属性。连同 NetworkView 还必须存在一个 Cube 预制件, 前者对后者进行观测(如 Cube 的 Transform)。脚本中的 cubePrefab 变量必须设置为该 Cube 预制件。这是 有效使用 AllocateViewID 的最简单的方法。 如果将被实例化的 Cube 附加了多个 NetworkView,情况会更加复杂。
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;
}
}