예제 #1
0
 void Start()
 {
     player           = GetComponent <CharacterController>();
     PlayerNetwork    = GetComponent <playerNetwork>();
     GameController   = GameObject.Find("_GameController").GetComponent <GameController>();
     DodgeballManager = GameController.GetComponentInChildren <dodgeballManager>();
     isGrounded       = true;
     isJumping        = false;
     isDashing        = false;
     hasDodgeball     = false;
     Cursor.lockState = CursorLockMode.Locked;
     Cursor.visible   = (false);
 }
예제 #2
0
    void Start()
    {
        io = GetComponent <SocketIO.SocketIOComponent>();
        dodgeballManager = transform.parent.GetComponentInChildren <dodgeballManager>();

        io.On("joined-game", (SocketIO.SocketIOEvent e) =>
        {
            JSONObject data = e.data;
            Debug.Log("Joined game " + data);
        });
        io.On("player-position-update", (SocketIO.SocketIOEvent e) =>
        {
            try
            {
                JSONObject data = e.data;
                string playerID = data.GetField("id").ToString();

                JSONObject playerPos = data.GetField("position");
                Vector3 newPos       = new Vector3(
                    float.Parse(playerPos.GetField("x").ToString()),
                    float.Parse(playerPos.GetField("y").ToString()),
                    float.Parse(playerPos.GetField("z").ToString())
                    );

                JSONObject playerRot = data.GetField("rotation");
                Quaternion newRot    = new Quaternion(
                    float.Parse(playerRot.GetField("x").ToString()),
                    float.Parse(playerRot.GetField("y").ToString()),
                    float.Parse(playerRot.GetField("z").ToString()),
                    float.Parse(playerRot.GetField("w").ToString())
                    );

                player p = getPlayer(playerID);
                if (p != null)
                {
                    p.newPos = newPos;
                    p.newRot = newRot;
                }
            }
            catch (Exception err)
            {
                Debug.LogError("player-position-update-exception: " + err);
            }
        });
        io.On("dodgeball-thrown", (SocketIO.SocketIOEvent e) =>
        {
            JSONObject data   = e.data;
            JSONObject posObj = data.GetField("position");
            JSONObject dirObj = data.GetField("direction");
            int ID            = int.Parse(data.GetField("ID").ToString());
            string playerID   = data.GetField("playerID").ToString();

            Vector3 position = new Vector3(
                float.Parse(posObj.GetField("x").ToString()),
                float.Parse(posObj.GetField("y").ToString()),
                float.Parse(posObj.GetField("z").ToString())
                );
            Vector3 direction = new Vector3(
                float.Parse(dirObj.GetField("x").ToString()),
                float.Parse(dirObj.GetField("y").ToString()),
                float.Parse(dirObj.GetField("z").ToString())
                );
            dodgeballManager.onNetworkThrowBall(position, direction);
            getPlayer(playerID).network.onThrowDodgeball();
        });
        io.On("dodgeball-pickup", (SocketIO.SocketIOEvent e) =>
        {
            JSONObject data = e.data;
            string playerID = data.GetField("playerID").ToString();

            player foundPlayer = getPlayer(playerID);
            foundPlayer.network.onPickupDodgeball();
        });
        io.On("player-join", (SocketIO.SocketIOEvent e) =>
        {
            Debug.Log("new player join");
            JSONObject data = e.data;

            player newPlayer     = new player();
            newPlayer.id         = data.GetField("playerID").ToString();
            GameObject playerObj = GameObject.Instantiate(playerPrefab, new Vector3(0f, 0f, 0f), Quaternion.identity);
            newPlayer.transform  = playerObj.transform;
            newPlayer.network    = playerObj.GetComponent <networkPlayerController>();
            otherPlayers.Add(newPlayer);
        });
        io.On("player-disconnect", (SocketIO.SocketIOEvent e) =>
        {
            JSONObject data = e.data;
            string id       = data.GetField("id").ToString();
            player p        = otherPlayers.Find(x => x.id == id);
            GameObject.Destroy(p.transform.gameObject);
            otherPlayers.Remove(p);
        });
        io.On("player-death", (SocketIO.SocketIOEvent e) =>
        {
            Debug.Log("player death");
        });
    }