【Unet】Unet动态添加多个主角

来源:互联网 发布:js display:none 编辑:程序博客网 时间:2024/04/30 18:11

  [SerializeField]    GameObject[] playerCharacterPrefabs;    short playerControllerHighestId = 0;    void OnGUI()    {        if (GUI.Button(new Rect(10, Screen.height - 60, 400, 50), "spawn a new character of mine"))        {            // pay attention here !!            ClientScene.AddPlayer(client.connection, playerControllerHighestId++);            //AddPlayer 这会将AddPlayer消息发送到服务器,并调用NetworkManager.OnServerAddPlayer。        }    }    public override void OnStartClient(NetworkClient client)    {        base.OnStartClient(client);        // always remember to register prefabs before spawning them.        //注册 prefabs        foreach (GameObject go in playerCharacterPrefabs)            ClientScene.RegisterPrefab(go);        Debug.Log("Connect to a new game");    }    public override void OnClientConnect(NetworkConnection conn)    {        base.OnClientConnect(conn);    }    public override void OnServerAddPlayer(NetworkConnection conn, short playerControllerId)    {        Debug.Log("余数 " + (playerControllerId % 2));        GameObject newPlayer = GameObject.Instantiate(playerCharacterPrefabs[playerControllerId % 2]);        newPlayer.transform.position = Vector3.zero + Vector3.right * playerControllerId;                // object spawned via this function will be a local player        // which belongs to the client connection who called the ClientScene.AddPlayer        NetworkServer.AddPlayerForConnection(conn, newPlayer, playerControllerId);    }





0 0
原创粉丝点击