示例#1
0
 public void sendPunch(Vector2 destination, PunchDirection pd)
 {
     init();
     curPos    = new Vector2(transform.position.x, transform.position.y);
     startTime = Time.time;
     newPos    = new Vector2(curPos.x, curPos.y);
     destPos   = new Vector2(destination.x, destination.y);
     GetComponent <Collider> ().enabled = true;
     sending        = true;
     punchDirection = pd;
 }
示例#2
0
    public void RunAnimation()
    {
        if (_isPunchAnimationPlaying)
        {
            return;
        }

        _animator = GetComponent <Animator>();
        if (lookVector != Vector2.zero)
        {
            _lookAngle = Mathf.Acos(Vector2.Dot(Vector2.right, _inputVector) / _inputVector.magnitude);
            if (lookVector.y < 0)
            {
                _lookAngle = 2 * Mathf.PI - _lookAngle;
            }

            _lookDirection = (LookDirection)(Mathf.RoundToInt(_lookAngle * Mathf.Rad2Deg / _angleDivider) % 8);
        }
        else
        {
            _lookDirection = LookDirection.None;
        }

        // Debug.Log(_lookDirection);
        // Debug.Log("is freeze frame active " + _isPunchFreezeFrameActive);

        switch (_lookDirection)
        {
        case LookDirection.Left:
            ResetAnimatorTriggers();
            _animator.SetTrigger("RunLeft");
            punchDirection = PunchDirection.Left;
            break;

        case LookDirection.Right:
            ResetAnimatorTriggers();
            _animator.SetTrigger("RunRight");
            punchDirection = PunchDirection.Right;
            break;

        case LookDirection.Top:
            ResetAnimatorTriggers();
            _animator.SetTrigger("RunTop");
            punchDirection = PunchDirection.Top;
            break;

        case LookDirection.Bottom:
            ResetAnimatorTriggers();
            _animator.SetTrigger("RunBottom");
            punchDirection = PunchDirection.Bottom;
            break;

        case LookDirection.None:
            ResetAnimatorTriggers();
            _animator.SetTrigger("Idle");
            break;

        default:
        {
            switch (punchDirection)
            {
            case PunchDirection.Left:
                ResetAnimatorTriggers();
                _animator.SetTrigger("RunLeft");
                punchDirection = PunchDirection.Left;
                break;

            case PunchDirection.Right:
                ResetAnimatorTriggers();
                _animator.SetTrigger("RunRight");
                punchDirection = PunchDirection.Right;
                break;

            case PunchDirection.Top:
                ResetAnimatorTriggers();
                _animator.SetTrigger("RunTop");
                punchDirection = PunchDirection.Top;
                break;

            case PunchDirection.Bottom:
                ResetAnimatorTriggers();
                _animator.SetTrigger("RunBottom");
                punchDirection = PunchDirection.Bottom;
                break;
            }
            break;
        }
        }

        if (_inputVector.magnitude == 0.0f)
        {
            ResetAnimatorTriggers();
            _animator.SetTrigger("Idle");
        }
    }