Inheritance: MonoBehaviour
 public bool ToIdle(Idle idle, Jumping jumping, Crouching crouching, Sliding sliding)
 {
     return(idle.IsIdle() &&
            !jumping.IsJumping() &&
            (!crouching.IsCrouching && !crouching.Rising) &&
            !sliding.IsSliding);
 }
Beispiel #2
0
    public override void Interaction()
    {
        m_Player      = FindObjectOfType <Player>();
        m_Bending     = FindObjectOfType <Bending>();
        m_Crouching   = FindObjectOfType <Crouching>();
        m_FPSCamera   = FindObjectOfType <FPSCamera>();
        m_Interaction = FindObjectOfType <Interaction>();

        m_Player.enabled      = false;
        m_Bending.enabled     = false;
        m_Crouching.enabled   = false;
        m_FPSCamera.enabled   = false;
        m_Interaction.enabled = false;

        m_AudioSource.Play();
        letter.SetActive(true);
        meshRenderer.enabled = false;
        if (!alreadyActivated)
        {
            for (int i = 0; i < objectToActivateBefore.Length; i++)
            {
                objectToActivateBefore[i].Interaction();
            }
        }
    }
Beispiel #3
0
    public void Die()
    {
        transform.position = respawnPoint.transform.position;

        m_Player      = FindObjectOfType <Player>();
        m_Bending     = FindObjectOfType <Bending>();
        m_Crouching   = FindObjectOfType <Crouching>();
        m_FPSCamera   = FindObjectOfType <FPSCamera>();
        m_Interaction = FindObjectOfType <Interaction>();

        m_Animator = GetComponentInChildren <Animator>();

        //m_Animator.Play("Death");



        canvas.SetActive(false);
        deathCanvas.SetActive(true);
        m_Player.enabled      = false;
        m_Bending.enabled     = false;
        m_Crouching.enabled   = false;
        m_FPSCamera.enabled   = false;
        m_Interaction.enabled = false;

        Invoke("Revive", deathTime);
    }
Beispiel #4
0
    public override Node SetUp_Tree()
    {
        Node idling    = new Idling();
        Node running   = new Running();
        Node crouching = new Crouching();
        Node jumping   = new Jumping();
        Node falling   = new Falling();

        Node nonAttacked = Node_Selector.Create(crouching, running, idling, jumping, falling);

        Node attacked = new Attacked();

        return(Node_Selector.Create(attacked, nonAttacked));
    }
Beispiel #5
0
    public void Excute(CharacterMove t)
    {
        if (Input.GetKeyDown(KeyCode.C))
        {
            t.animator.SetBool("IsCrouch", true);
            t.stateMachine.ChangeState(Crouching.GetInstance());
        }

        Vector3 _moveDir = new Vector3(Input.GetAxis("Horizontal"), 0.0f, Input.GetAxis("Vertical"));
        float   zForce   = _moveDir.z;

        t.InputDir = _moveDir;
        _moveDir.Normalize();
        _moveDir = t.tr.TransformDirection(_moveDir);

        t.MoveDir = Vector3.Lerp(t.MoveDir, _moveDir, 4.5f * Time.deltaTime);

        if (_moveDir.magnitude > 0.0f)
        {
            if (Input.GetKey(KeyCode.LeftShift))
            {
                t.speed = Mathf.Lerp(t.speed, t.runSpeed, 3.0f * Time.deltaTime);
            }
            else
            {
                t.speed = Mathf.Lerp(t.speed, t.walkSpeed, 3.0f * Time.deltaTime);
            }
        }
        else
        {
            if (t.speed < 10.0f)
            {
                t.speed = 0.0f;
            }
            t.speed = Mathf.Lerp(t.speed, 0.0f, 3.0f * Time.deltaTime);
        }
    }
 public bool CrouchToSprint(Crouching crouching)
 {
     return(crouching.ToSprint && !crouching.IsCrouching && !crouching.Rising);
 }
 public bool CrouchToWalk(Crouching crouching, Walking walking)
 {
     return(walking.IsWalking() && !crouching.ToSprint && !crouching.IsCrouching && !crouching.Rising);
 }
    private void Awake()
    {
        Player player = FindObjectOfType <Player>();

        _characterController = GetComponent <CharacterController>();
        _stateHelper         = new PlayerMovementStateMachineHelper();
        _stateMachine        = new BaseStateMachine();
        _playerLookVars      = new PlayerLookVars();

        // Hook into the BaseStateMachine OnStateChanged event
        _stateMachine.OnStateChanged += HandleStateChanged;

        // Prepare our StateParams for passing to all of our states
        _stateParams                 = new StateParams();
        _stateParams.Velocity        = _velocity;
        _stateParams.GravityOverride = defaultGravity;

        // Create our states
        Idle        idle        = new Idle(player);
        Walking     walking     = new Walking(player);
        Sprinting   sprinting   = new Sprinting(player);
        Jumping     jumping     = new Jumping(player);
        WallRunning wallRunning = new WallRunning(player, defaultGravity);
        Crouching   crouching   = new Crouching(player);
        Sliding     sliding     = new Sliding(player);

        // Create our state transitions
        // Any -> Idle
        _stateMachine.AddAnyTransition(idle, () => _stateHelper.ToIdle(idle, jumping, crouching, sliding));
        // Any -> Jumping
        _stateMachine.AddAnyTransition(jumping, () => _stateHelper.ToJump(jumping, _isWallRunning, _stateParams.WallJumped));

        // Idle -> Walking
        _stateMachine.AddTransition(idle, walking, () => walking.IsWalking());
        // Walking -> Sprinting
        _stateMachine.AddTransition(walking, sprinting, () => PlayerInput.Instance.ShiftDown);
        // Sprinting -> Walking
        _stateMachine.AddTransition(sprinting, walking, () => !sprinting.IsStillSprinting());

        // Idle -> Crouching
        _stateMachine.AddTransition(idle, crouching, () => PlayerInput.Instance.CrouchDown);
        // Walking -> Crouching
        _stateMachine.AddTransition(walking, crouching, () => PlayerInput.Instance.CrouchDown);
        // Crouching -> Walking
        _stateMachine.AddTransition(crouching, walking, () => _stateHelper.CrouchToWalk(crouching, walking));
        // Crouching -> Sprinting
        _stateMachine.AddTransition(crouching, sprinting, () => _stateHelper.CrouchToSprint(crouching));
        // Sprinting -> Sliding (Crouching)
        _stateMachine.AddTransition(sprinting, sliding, () => PlayerInput.Instance.CrouchDown);

        // Jumping -> Sliding
        _stateMachine.AddTransition(jumping, sliding, () => _stateHelper.JumpToSlide(jumping));
        // Jumping -> Sprinting
        _stateMachine.AddTransition(jumping, sprinting, () => _stateHelper.JumpToSprint(jumping, _preserveSprint));
        // Jumping -> Walking
        _stateMachine.AddTransition(jumping, walking, () => _stateHelper.JumpToWalk(jumping, walking, _preserveSprint));
        // Jumping -> Wall Running
        _stateMachine.AddTransition(jumping, wallRunning, () => _isWallRunning);

        // Wall Running -> Sprinting
        _stateMachine.AddTransition(wallRunning, jumping, () => _stateHelper.WallRunToSprint(jumping, _isWallRunning, _preserveSprint));
        // Wall Running -> Walking
        _stateMachine.AddTransition(wallRunning, jumping, () => _stateHelper.WallRunToWalk(jumping, walking, _isWallRunning));

        // Default to Idle
        _stateParams = _stateMachine.SetState(idle, _stateParams);
    }