using UnityEngine;
using Unity.Netcode;
public class Ownermaker : NetworkBehaviour
{
public GameObject player; // 玩家预制体
public ulong id; // 玩家ID
// Start方法在MonoBehaviour创建后首次调用
// Update方法在每次帧更新时被调用
public override void OnNetworkSpawn()
{
if (!IsServer) // 只有服务器才能访问
{
Debug.Log("不是服务器");
return;
}
NetworkManager.Singleton.OnClientConnectedCallback += SpawnPlayer; // 当客户端连接时调用SpawnPlayer方法
}
public void SpawnPlayer(ulong clientid)
{
GameObject player = Instantiate(player); // 实例化玩家预制体
player.GetComponent<NetworkObject>().SpawnAsPlayerObject(clientid); // 将玩家对象标记为玩家对象
}
}
请注意,这个脚本的主要目的是在服务器端创建玩家对象,并将其标记为玩家对象。只有使用NetworkManager.StartHost()方法启动的服务器才能访问OnNetworkSpawn()方法和SpawnPlayer()方法。
评论 (0)