private void Jump() { jumping = false; EditorDebug.Log(eventQueue.Count); while (eventQueue.Count != 0) { Character.Order ev = eventQueue.Dequeue(); EditorDebug.Log(ev); if (ev == Character.Order.OrderJump) { rigidbody2D.AddForce(jumpForce, ForceMode2D.Impulse); if (character.transform.position.y < maxHeight) { jumping = true; } } } if (!jumping) { stateMachine.Trigger(Character.Trigger.Fall); } }
protected override void OnUpdate() { while (eventQueue.Count != 0) { Character.Order ev = eventQueue.Dequeue(); if (ev == Character.Order.OrderMoveLeft) { rigidbody2D.AddForce(moveForce * -1, ForceMode2D.Impulse); } else if (ev == Character.Order.OrderMoveRight) { rigidbody2D.AddForce(moveForce, ForceMode2D.Impulse); } } if (rigidbody2D.velocity.x >= maxVelocityX) { rigidbody2D.AddForce(moveForce * -1, ForceMode2D.Impulse); } else if (rigidbody2D.velocity.x <= -maxVelocityX) { rigidbody2D.AddForce(moveForce, ForceMode2D.Impulse); } if (rigidbody2D.velocity.x == 0) { stateMachine.Trigger(Character.Trigger.StopMoving); } }
protected override void OnUpdate() { while (eventQueue.Count != 0) { Character.Order ev = eventQueue.Dequeue(); if (ev == Character.Order.OrderMoveLeft || ev == Character.Order.OrderMoveRight) { stateMachine.Trigger(Character.Trigger.Move); } } }
protected override void OnUpdate() { while (eventQueue.Count != 0) { Character.Order ev = eventQueue.Dequeue(); if (ev == Character.Order.OrderJump) { stateMachine.Trigger(Character.Trigger.Jump); } } }
public virtual void ProcessOrder(Character.Order e) { eventQueue.Enqueue(e); }