コード例 #1
0
    IEnumerator LoadGameScene()
    {
        SceneManager.LoadScene("Game");

        yield return(new WaitUntil(() => SceneManager.GetActiveScene().name == "Game"));

        for (int i = 0; i < players.Count; i++)
        {
            Net_PlayerInfo temp = players[i];
            GameObject     obj  = Instantiate(playerPrefab, new Vector3(0, 3, spawnOffset), Quaternion.identity);
            obj.name = temp.userName;
            Debug.Log("spawning object");

            if (temp.userName == self.userName)
            {
                myObj = obj;
                myObj.GetComponent <Renderer>().material.color = Color.red;
                selfMov = new Net_Movement(temp)
                {
                    xMov = myObj.transform.position.x,
                    zMov = myObj.transform.position.z,
                };
                FindObjectOfType <CameraMovement>().followObject = myObj;
            }
            playerObjects.Add(new PlayerObject(obj, temp));
            spawnOffset += 5;
        }
    }
コード例 #2
0
    void SendMovement(Net_Movement msg)
    {
        Net_HubInfo           hub    = GetPlayerHub(msg.player);
        List <Net_PlayerInfo> temp   = new List <Net_PlayerInfo>(hub.players);
        Net_PlayerInfo        sender = temp.Find(x => x.connectionId == msg.player.connectionId);

        temp.Remove(sender);
        SendActivePlayers(msg, temp, unreliableChannel);
    }
コード例 #3
0
 void Movement(Net_Movement msg)
 {
     for (int i = 0; i < playerObjects.Count; i++)
     {
         PlayerObject current = playerObjects[i];
         if (msg.player.userName == current.player.userName)
         {
             current.obj.transform.Translate(msg.xMov, 0f, msg.zMov);
         }
     }
 }