示例#1
0
        public override void EnterState(PawnMovement machine)
        {
            PawnAI ai = machine.GetComponent <PawnAI>();

            ai.paused = true;
            machine.OnAirborn.Invoke();
        }
示例#2
0
        public override void DoFixedUpdate(PawnMovement machine)
        {
            Vector3 v = machine.body.velocity;

            v.x = machine.beingHit ? 0f : machine.move * speed;
            machine.body.velocity = v;
        }
示例#3
0
        public override void DoFixedUpdate(PawnMovement machine)
        {
            Vector2 v = machine.body.velocity;

            v.y = jumpForce;
            machine.body.velocity = v;
            machine.SetState(airbornState);
        }
示例#4
0
 public override void Jump(PawnMovement machine)
 {
     if (machine.jumpCount < maxJumpCount)
     {
         machine.OnAirJump.Invoke();
         machine.SetState(jumpState);
     }
 }
示例#5
0
        public override void Jump(PawnMovement machine, Vector2 destination)
        {
            Sequence seq = DOTween.Sequence();

            seq.Append(machine.transform.DOJump(destination, jumpForce, 1, duration).SetEase(Ease.Linear));
            seq.AppendCallback(() => machine.SetState(moveState));
            seq.SetAutoKill(true);
            seq.Play();
        }
示例#6
0
        public override void DoFixedUpdate(PawnMovement machine)
        {
            if (!IsGrounded(machine.transform.position, groundedDefinition))
            {
                machine.SetState(airbornState);
                machine.jumpCount = 1;
                return;
            }

            machine.body.velocity = machine.beingHit ? Vector2.zero : Vector2.right * machine.move * speed;
        }
示例#7
0
        public override void DoFixedUpdate(PawnMovement machine)
        {
            Vector2 v = machine.body.velocity;

            if (PawnMovementGroundedState.IsGrounded(machine.transform.position, groundedDefinition) && v.y <= 0)
            {
                machine.SetState(groundedState);
                return;
            }

            machine.body.gravityScale = v.y < 0 ? gravityScaleFall : gravityScaleClimb;
            v.x = machine.move * speed;
            machine.body.velocity = v;
        }
示例#8
0
 public override void Move(PawnMovement machine, float axis)
 {
     machine.move = axis;
 }
示例#9
0
 public override void ExitState(PawnMovement machine)
 {
     machine.body.gravityScale = 1f;
 }
示例#10
0
 public override void EnterState(PawnMovement machine)
 {
     machine.OnAirborn.Invoke();
 }
示例#11
0
 public override void Jump(PawnMovement machine)
 {
     machine.SetState(jumpState);
 }
示例#12
0
 public override void EnterState(PawnMovement machine)
 {
     machine.jumpCount = 0;
     machine.OnLand.Invoke();
 }
示例#13
0
 public override void Jump(PawnMovement machine, Vector2 destination)
 {
     machine.SetState(jumpState);
     jumpState.Jump(machine, destination);
 }
示例#14
0
 private void Awake()
 {
     pawn         = GetComponent <Pawn>();
     pawnMovement = GetComponent <PawnMovement>();
     pawnAI       = GetComponent <PawnAI>();
 }
示例#15
0
 private void Awake()
 {
     movement = GetComponent <PawnMovement>();
     animator = GetComponentInChildren <PawnAnimator>();
 }
示例#16
0
 public override void DoFixedUpdate(PawnMovement machine)
 {
     machine.body.velocity = Vector2.zero;
 }
示例#17
0
        public override void ExitState(PawnMovement machine)
        {
            PawnAI ai = machine.GetComponent <PawnAI>();

            ai.paused = false;
        }
示例#18
0
 public override void EnterState(PawnMovement machine)
 {
     machine.jumpCount++;
     machine.OnJump.Invoke();
 }