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()方法。