Пример #1
0
        private void OnMoveToward(List <KeyCode> key)
        {
            Matrix4x4 transformMatrix = transform.localToWorldMatrix;
            Vector3   direction       = Vector3.zero;

            if (isFirstPerson)
            {
                //transformMatrix.GetColumn(3) : Colonne ayant les données du vecteur "Position"
                //transformMatrix.GetColumn(2) : Colonne ayant les données du vecteur "Foward"
                //transformMatrix.GetColumn(1) : Colonne ayant les données du vecteur "Up"
                //transformMatrix.GetColumn(0) : Colonne ayant les données du vecteur "Right"
                foreach (KeyCode k in key)
                {
                    if (k == ActionKey.Instance.MoveFoward)
                    {
                        direction += (Vector3)transformMatrix.GetColumn(2);
                    }
                    else if (k == ActionKey.Instance.MoveBackward)
                    {
                        direction += -(Vector3)transformMatrix.GetColumn(2);
                    }
                    else if (k == ActionKey.Instance.MoveLeft)
                    {
                        direction += -(Vector3)transformMatrix.GetColumn(0);
                    }
                    else if (k == ActionKey.Instance.MoveRight)
                    {
                        direction += (Vector3)transformMatrix.GetColumn(0);
                    }
                }
            }
            else
            {
                foreach (KeyCode k in key)
                {
                    if (k == ActionKey.Instance.MoveFoward)
                    {
                        direction += Vector3.forward;
                    }
                    else if (k == ActionKey.Instance.MoveBackward)
                    {
                        direction += Vector3.back;
                    }
                    else if (k == ActionKey.Instance.MoveLeft)
                    {
                        direction += Vector3.left;
                    }
                    else if (k == ActionKey.Instance.MoveRight)
                    {
                        direction += Vector3.right;
                    }
                }
            }

            direction.Normalize();
            playerMover.Move(direction);

            soldierAnimatorUpdater.MouvementDirection = direction;
        }