网络实例化预制件。
给定的预制件将在游戏中的所有客户端上实例化。同步将自动设置,因此无需额外的工作。
位置、旋转及网络组编号将通过参数指定。注意,下面的示例中,
必须在 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);
}
}
}