Exemplo n.º 1
0
        public void Update()
        {
            if (networkIdentity.IsControlling())
            {
                AnimatorStateInfo asi = animator.GetCurrentAnimatorStateInfo(0);
                float             x   = animator.GetFloat("x");
                float             y   = animator.GetFloat("y");
                //Debug.LogFormat("{0},{1}", x, y);
                NetworkAnimatorDirection nad = getDirection((int)x, (int)y);
                NetworkAnimatorState     nas = NetworkAnimatorState.Walking;

                if (asi.fullPathHash == attacking)
                {
                    nas = NetworkAnimatorState.Attacking;
                }

                if (animatorDirection != nad || animatorState != nas)
                {
                    animatorDirection      = nad;
                    animatorState          = nas;
                    animatorData.state     = (int)animatorState;
                    animatorData.direction = (int)animatorDirection;
                    networkIdentity.GetSocket().Emit(NetworkTags.ANIMATOR_STATE, new JSONObject(JsonUtility.ToJson(animatorData)));
                    //Debug.LogFormat("Sending: ({0},{1})", (int)x, (int)y);
                }
            }
        }
Exemplo n.º 2
0
        // Update is called once per frame
        public void Update()
        {
            if (networkIdentity.IsControlling())
            {
                if (oldTankRotation == transform.localEulerAngles.z && oldBarrelRotation == playerManager.GetLastRotation())
                {
                    stillCounter += Time.deltaTime;

                    if (stillCounter >= 1)
                    {
                        stillCounter = 0;
                        SendData();
                    }
                }
                else
                {
                    oldTankRotation   = transform.localEulerAngles.z;
                    oldBarrelRotation = playerManager.GetLastRotation();

                    stillCounter = 0;

                    SendData();
                }
            }
        }
Exemplo n.º 3
0
        public void Start()
        {
            networkIdentity = GetComponent <NetworkIdentity>();

            player          = new PlayerRotation();
            player.rotation = "";
            if (!networkIdentity.IsControlling())
            {
                enabled = false;
            }
        }
Exemplo n.º 4
0
        // Start is called before the first frame update
        void Start()
        {
            networkIdentity = GetComponent <NetworkIdentity>();

            player = new PlayerRortation();
            player.tankRotation   = 0;
            player.barrelRotation = 0;

            if (!networkIdentity.IsControlling())
            {
                enabled = false;
            }
        }
Exemplo n.º 5
0
        public void Start()
        {
            networkIdentity   = GetComponent <NetworkIdentity>();
            oldPosition       = transform.position;
            player            = new Player();
            player.position   = new Position();
            player.position.x = 0;
            player.position.y = 0;

            if (!networkIdentity.IsControlling())
            {
                enabled = false;
            }
        }
        public void Start()
        {
            networkIdentity = GetComponent <NetworkIdentity>();
            // playerManager = GetComponent<PlayerManager>();
            oldWeaponRotation = playerManager.GetWeaponLastRotation();
            player            = new Player();
            player.rotation   = new Rotation();
            player.rotation.weaponRotation = 0;

            if (!networkIdentity.IsControlling())
            {
                enabled = false;
            }
        }
Exemplo n.º 7
0
 public void Update()
 {
     if (networkIdentity.IsControlling())
     {
         if (oldPosition != transform.position)
         {
             oldPosition  = transform.position;
             stillCounter = 0;
             sendData();
         }
         else
         {
             stillCounter += Time.deltaTime;
             if (stillCounter >= 1)
             {
                 stillCounter = 0;
                 sendData();
             }
         }
     }
 }
Exemplo n.º 8
0
 public void Update()
 {
     if (networkIdentity.IsControlling())
     {
         if (oldRotation != transform.localEulerAngles.y)
         {
             oldRotation  = transform.localEulerAngles.y;
             stillCounter = 0;
             SendData();
         }
         else
         {
             stillCounter += Time.deltaTime;
             if (stillCounter >= 1)
             {
                 stillCounter = 0;
                 SendData();
             }
         }
     }
 }
        // Update is called once per frame
        void Update()
        {
            if (mNetworkIdentity.IsControlling())
            {
                if (mOldPosition != transform.position)      //I could restructure this to be an event
                {
                    mOldPosition  = transform.position;
                    mStillCounter = 0;
                    sendData();
                }
                else
                {
                    mStillCounter += Time.deltaTime;

                    if (mStillCounter >= 1)                  //I could restructure this to be an event
                    {
                        mStillCounter = 0;
                        sendData();
                    }
                }
            }
        }
Exemplo n.º 10
0
        // Start is called before the first frame update
        public void Start()
        {
            mNetworkIdentity = GetComponent <NetworkIdentity>();
            mNetworkClient   = GameObject.Find("[ Code - Networking ]").GetComponent <NetworkClient>();
            mOldPosition     = transform.position;
            mPlayer          = new Player();

            mPlayer.position   = new Position();
            mPlayer.position.x = 0;
            mPlayer.position.y = 0;
            mPlayer.position.z = 0;

            if (mNetworkClient)
            {
                mPlayer.username = mNetworkClient.mAccessToken.username;
            }

            if (!mNetworkIdentity.IsControlling())
            {
                enabled = false;
            }
        }
 public void Update()
 {
     if (networkIdentity.IsControlling())
     {
         if (oldWeaponRotation != playerManager.GetWeaponLastRotation() || oldFlipped != playerManager.GetLastFlipped())
         {
             oldWeaponRotation = playerManager.GetWeaponLastRotation();
             oldFlipped        = playerManager.GetLastFlipped();
             stillCounter      = 0;
             SendData();
         }
         else
         {
             stillCounter += Time.deltaTime;
             if (stillCounter >= 1)
             {
                 stillCounter = 0;
                 SendData();
             }
         }
     }
 }
Exemplo n.º 12
0
 // Update is called once per frame
 void Update()
 {
     if (networkIdentity.IsControlling())
     {
         //si el tanke o el cañon han cambiado de rotacion  enviarla al server
         if (oldTankRotation != transform.localEulerAngles.z || oldBarrelRotation != playerManager.GetLastRotation())
         {
             oldTankRotation   = transform.localEulerAngles.z;
             oldBarrelRotation = playerManager.GetLastRotation();
             stillCounter      = 0;
             SendData();
         }
         else//actualizar cada segundo si está estatico
         {
             stillCounter += Time.deltaTime;
             if (stillCounter >= 1)
             {
                 stillCounter = 0;
                 SendData();
             }
         }
     }
 }
Exemplo n.º 13
0
        private void SetupEvents()
        {
            On("open", (e) =>
            {
                Debug.Log("Connected to server");
            });

            On("register", (e) =>
            {
                ClientID = e.data["id"].ToString().RemoveQuotes();
                Debug.LogFormat("My client ID ({0})", ClientID);
            });

            On("spawn", (e) =>
            {
                string id          = e.data["id"].ToString().RemoveQuotes();
                GameObject go      = Instantiate(playerPrefab, networkContainer);
                go.name            = string.Format("Player ({0})", id);
                NetworkIdentity ni = go.GetComponent <NetworkIdentity>();
                ni.SetCotrollerID(id);
                ni.SetSocketReference(this);
                serverObjects.Add(id, ni);

                //Enabling Camera
                if (ni.IsControlling())
                {
                    go.transform.Find("Third Person Camera").gameObject.SetActive(true);
                }
                Debug.LogFormat("I have spawned");
            });

            On("disconnected", (e) =>
            {
                string id = e.data["id"].ToString().RemoveQuotes();

                GameObject go = serverObjects[id].gameObject;
                Destroy(go);
                serverObjects.Remove(id);
                Debug.LogFormat("Disconnected");
            });

            On("updatePosition", (e) =>
            {
                string id = e.data["id"].ToString().RemoveQuotes();
                float x   = float.Parse(e.data["position"]["x"].str, CultureInfo.InvariantCulture.NumberFormat);
                float y   = float.Parse(e.data["position"]["y"].str, CultureInfo.InvariantCulture.NumberFormat);
                float z   = float.Parse(e.data["position"]["z"].str, CultureInfo.InvariantCulture.NumberFormat);

                NetworkIdentity ni    = serverObjects[id];
                ni.transform.position = new Vector3(x, y, z);
            });

            On("updateRotation", (e) =>
            {
                string id = e.data["id"].ToString().RemoveQuotes();

                float rotation = float.Parse(e.data["rotation"].str, CultureInfo.InvariantCulture.NumberFormat);

                NetworkIdentity ni            = serverObjects[id];
                ni.transform.localEulerAngles = new Vector3(0, rotation, 0);
            });

            On("updateAI", (e) => {
                string id = e.data["id"].ToString().RemoveQuotes();

                float x = float.Parse(e.data["position"]["x"].str, CultureInfo.InvariantCulture.NumberFormat);
                float y = float.Parse(e.data["position"]["y"].str, CultureInfo.InvariantCulture.NumberFormat);
                float z = float.Parse(e.data["position"]["z"].str, CultureInfo.InvariantCulture.NumberFormat);

                float rotation = float.Parse(e.data["rotation"].str, CultureInfo.InvariantCulture.NumberFormat);

                NetworkIdentity ni = serverObjects[id];

                if (ni.gameObject.activeInHierarchy)
                {
                    StartCoroutine(AIPositionSmoothing(ni.transform, new Vector3(x, y, z)));
                    ni.GetComponent <EnemyManager>().SetRotation(rotation);
                }
            });

            On("serverSpawn", (e) =>
            {
                string name = e.data["name"].str;
                string id   = e.data["id"].ToString().RemoveQuotes();
                float x     = float.Parse(e.data["position"]["x"].ToString(), CultureInfo.InvariantCulture.NumberFormat);
                float y     = float.Parse(e.data["position"]["y"].ToString(), CultureInfo.InvariantCulture.NumberFormat);
                float z     = float.Parse(e.data["position"]["z"].ToString(), CultureInfo.InvariantCulture.NumberFormat);

                Debug.LogFormat("Server wants us to spawn a '{0}'", name);

                if (!serverObjects.ContainsKey(id))
                {
                    ServerObjectData sod             = serverSpawnables.GetObjectByName(name);
                    GameObject spawnedObject         = Instantiate(sod.prefab, networkContainer);
                    spawnedObject.transform.position = new Vector3(x, y, z);
                    NetworkIdentity ni = spawnedObject.GetComponent <NetworkIdentity>();
                    ni.SetCotrollerID(id);
                    ni.SetSocketReference(this);
                    Debug.Log(spawnedObject.transform.position);



                    //if bullet apply direction as well
                    //       if(name == "Bullet")
                    //        {
                    //            float directionX = float.Parse(e.data["direction"]["x"].str, CultureInfo.InvariantCulture.NumberFormat);
                    //            float directionY = float.Parse(e.data["direction"]["y"].str, CultureInfo.InvariantCulture.NumberFormat);
                    //            string activator = e.data["activator"].ToString().RemoveQuotes();
                    //            float speed = float.Parse(e.data["speed"].str, CultureInfo.InvariantCulture.NumberFormat);

                    //            float rot = Mathf.Atan2(directionY, directionX) * Mathf.Rad2Deg;
                    //            Vector3 currentRotation = new Vector3(0, 0, rot - 90);
                    //            spawnedObject.transform.rotation = Quaternion.Euler(currentRotation);

                    //            WhoActivateMe whoActivateMe = spawnedObject.GetComponent<WhoActivateMe>();
                    //            whoActivateMe.SetActivator(activator);

                    //            Projectile projectile = spawnedObject.GetComponent<Projectile>();
                    //            projectile.Direction = new Vector2(directionX, directionY);
                    //            projectile.Speed = speed;
                    //        }

                    serverObjects.Add(id, ni);
                }
            });

            On("serverUnspawn", (e) =>
            {
                string id          = e.data["id"].ToString().RemoveQuotes();
                NetworkIdentity ni = serverObjects[id];
                serverObjects.Remove(id);
                DestroyImmediate(ni.gameObject);
            });

            On("playerDied", (e) =>
            {
                string id          = e.data["id"].ToString().RemoveQuotes();
                NetworkIdentity ni = serverObjects[id];
                ni.gameObject.SetActive(false);
            });



            On("loadGame", (e) =>
            {
                Debug.Log("Switching to game");
                SceneManagementManager.Instance.LoadLevel(SceneList.LEVEL, (levelName) =>
                {
                    SceneManagementManager.Instance.UnloadLevel(SceneList.MAIN_MENU);
                });
            });

            On("lobbyUpdate", (e) =>
            {
                OnGameStateChange.Invoke(e);   //I prefer use Invoke to make difference between Action and function
            });
        }