示例#1
0
    private void ChangeState(DunkState _newState)
    {
        Transform i_handTransform  = passController.GetHandTransform();
        Animator  i_playerAnimator = pawnController.GetAnimator();

        switch (_newState)
        {
        case DunkState.Jumping:
            FeedbackManager.SendFeedback("event.DunkJumping", pawnController, Vector3.zero, Vector3.zero, Vector3.zero, !isPlayer);
            i_playerAnimator.SetTrigger("PrepareDunkTrigger");
            break;

        case DunkState.Dashing:
            dunkDashFX = FeedbackManager.SendFeedback("event.DunkDashing", i_handTransform, Vector3.zero, Vector3.zero, Vector3.zero, !isPlayer).GetVFX();
            break;

        case DunkState.Waiting:
            dunkWaitingFX = FeedbackManager.SendFeedback("event.DunkWaiting", i_handTransform, Vector3.zero, Vector3.zero, Vector3.zero, !isPlayer).GetVFX();
            break;

        case DunkState.Canceling:
            if (dunkWaitingFX)
            {
                Destroy(dunkWaitingFX);
            }
            i_playerAnimator.SetTrigger("DunkMissedTrigger");
            break;

        case DunkState.Receiving:
            if (dunkWaitingFX)
            {
                Destroy(dunkWaitingFX);
            }
            i_playerAnimator.SetTrigger("DunkTrigger");
            FeedbackManager.SendFeedback("event.DunkCatchingBall", i_handTransform, Vector3.zero, Vector3.zero, Vector3.zero, !isPlayer);
            break;

        case DunkState.Explosing:
            if (dunkDashFX)
            {
                Destroy(dunkDashFX);
            }
            FeedbackManager.SendFeedback("event.DunkSmashingOnGround", pawnController, Vector3.zero, Vector3.zero, Vector3.zero, !isPlayer);
            break;
        }
        dunkState = _newState;
    }
示例#2
0
 public void CurveShoot(PassController _passController, PawnController _thrower, PawnController _target, BallDatas _passDatas, Vector3 _lookDirection)        //Shoot a curve ball to reach a point
 {
     if (ballCoroutine != null)
     {
         StopCoroutine(ballCoroutine);
     }
     startPosition = _passController.GetHandTransform().position;
     transform.SetParent(null, true);
     transform.localScale                  = Vector3.one;
     ballInformations.thrower              = _thrower;
     ballInformations.moveSpeed            = _passDatas.moveSpeed;
     ballInformations.maxDistance          = Mathf.Infinity;
     ballInformations.ballDatas            = _passDatas;
     ballInformations.bounceCount          = 0;
     ballInformations.canBounce            = true;
     ballInformations.canHitWalls          = true;
     ballInformations.curve                = _passController.GetCurvedPathCoordinates(startPosition, _target, _lookDirection, out float d);
     ballInformations.timeFlying           = 0;
     ballInformations.initialLookDirection = _lookDirection;
     ballInformations.isTeleguided         = false;
     hitGameObjects.Clear();
     ChangeState(BallState.Flying);
     UpdateColor();
 }