Ejemplo n.º 1
0
    public void Unperch()
    {
        if (_state == PerchState.Unperched)
        {
            return;
        }
        _timeSinceUnperch   = 0f;
        bJumpOnTouchRelease = false;
        _player.GetComponent <Rigidbody2D>().isKinematic = false;

        if (_state == PerchState.PerchedTop)
        {
            _state = PerchState.Unperched;
            FlipPlayer();
            _player.SwitchPerchState();
        }
        else
        {
            _state = PerchState.Unperched;
            _player.transform.position += Vector3.up * 0.2f;
            _player.SwitchPerchState();
            _player.UnperchBottom();
        }

        _gameHandler.UpdateGameSpeed(1);
    }
Ejemplo n.º 2
0
    public void Perch(string objName, bool touchHeld)
    {
        if (objName.Contains("Top") && touchHeld)
        {
            _state = PerchState.PerchedTop;
        }
        else if (objName.Contains("Bottom") || _player.transform.position.y < 0f)
        {
            if (!PerchPossible())
            {
                return;
            }
            if (touchHeld)
            {
                bJumpOnTouchRelease = true;
            }
            _state = PerchState.PerchedBottom;
        }
        else if (touchHeld)
        {
            _state = PerchState.PerchedTop;
        }
        else
        {
            return;
        }

        _player.SwitchPerchState();
        _body.velocity    = Vector2.zero;
        _body.isKinematic = true;
        _gameHandler.UpdateGameSpeed(0f);

        SetPerchGraphics();
    }