Version: 2017.3

Network.AllocateViewID

切换到手册
public static NetworkViewID AllocateViewID ();

描述

查询下一个可用的网络视图 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; } }