Exemplo n.º 1
0
        private void HandleCharacterNavigation()
        {
            AICharacterInputs aiCharacterInputs = new AICharacterInputs();

            if ((character.transform.position - destination).magnitude <= 0.2f)
            {
                aiCharacterInputs.MoveVector = Vector3.zero;

                // Apply inputs to character
                character.SetInputs(ref aiCharacterInputs);


                return;
            }

            if (NavMesh.CalculatePath(character.transform.position, destination, NavMesh.AllAreas, _path))
            {
                _lastValidDestination = destination;
            }
            else
            {
                NavMesh.CalculatePath(character.transform.position, _lastValidDestination, NavMesh.AllAreas, _path);
            }

            int cornersCount = _path.GetCornersNonAlloc(_pathCorners); //Calculate path corners

            if (cornersCount >= 1)
            {
                // Build the CharacterInputs struct
                aiCharacterInputs.MoveVector = (_pathCorners[1] - character.transform.position).normalized;

                // Apply inputs to character
                character.SetInputs(ref aiCharacterInputs);
            }
            else
            {
                // Build the CharacterInputs struct
                aiCharacterInputs.MoveVector = Vector3.zero;

                // Apply inputs to character
                character.SetInputs(ref aiCharacterInputs);
            }
        }
Exemplo n.º 2
0
Arquivo: Player.cs Projeto: Tomvhe/GGJ
        private void HandleCharacterInput()
        {
            PlayerCharacterInputs characterInputs = new PlayerCharacterInputs()
            {
                MoveAxisForward = Input.GetAxisRaw(VerticalInput),
                MoveAxisRight   = Input.GetAxisRaw(HorizontalInput),
                CameraRotation  = mainCamera.transform.rotation,
                MovementMethod  = movementMethod,
                RotationMethod  = rotationMethod
            };

            characterController.SetInputs(ref characterInputs);
        }