网络实例化预制件。
给定的预制件将在游戏中的所有客户端上实例化。同步将自动设置,因此无需额外的工作。
位置、旋转及网络组编号将通过参数指定。注意,下面的示例中,
必须在 Editor 中设置有玩家预制件。您可以进一步了解对象引用 Object.Instantiate 中实例化。
这在内部是一个缓冲的 RPC 调用。您可以通过组编号使用 Network.RemoveRPCs
从缓冲区删除调用。或者,您可以对实例化预制件中的第一个 NetworkViewID 调用
Network.RemoveRPCs。这种方式可行的原因是,在内部进行实例化时,
缓冲的 RPC 消息将链接至预制件的第一个 NetworkView。
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public Transform playerPrefab; void OnConnectedToServer() { Network.Instantiate(playerPrefab, transform.position, transform.rotation, 0); } }
从 RPC 缓冲区删除实例化的示例:
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public NetworkView nView; void Start() { nView = GetComponent<NetworkView>(); } void OnNetworkInstantiate(NetworkMessageInfo info) { Debug.Log(nView.viewID + " spawned"); if (Network.isServer) { Network.RemoveRPCs(nView.viewID); Network.Destroy(gameObject); } } }