Пример #1
0
    private void Update()
    {
        if (dead)
        {
            return;
        }

        // Check Ground
        RaycastHit hitInfo;

        if (groundgracetimer <= 0 && Physics.Raycast(transform.position, Vector3.down, out hitInfo, GROUNDCHECKDIST, ~LayerMask.NameToLayer("Terrain")))
        {
            grounded = true;
        }
        else
        {
            groundgracetimer--;
            grounded = false;
        }


        // State implementation
        var newState = state.HandleTransition(this);

        if (newState != null)
        {
            state.OnExit(this);
            state   = newState;
            actions = state.OnEnter(this);
        }

        state.HandleUpdate(this);
    }