public void OnJump(object sender, CharacterArgs e) { if (e.jumpEnd) { view.GetRigidBody().AddForce(new Vector2(0f, model.JumpHeight), ForceMode2D.Impulse); } }
private void Awake() { args = new CharacterArgs(); presenter = new CharacterControllerPresenter(this, 10f, 10f); Move += presenter.OnMove; MoveDirection += presenter.GetMoveDirection; Jump += presenter.OnJump; Jump += presenter.OnJumpStart; JumpEnd += presenter.OnJumpEnd; SprintStart += presenter.OnSprintStart; SprintEnd += presenter.OnSprintEnd; }
public void OnSprintEnd(object sender, CharacterArgs e) { speedMultiplier = 1; }
public void OnSprintStart(object sender, CharacterArgs e) { speedMultiplier = 4; }
public void OnJumpStart(object sender, CharacterArgs e) { e.jumpEnd = false; }
public void OnJumpEnd(object sender, CharacterArgs e) { e.jumpEnd = true; }
public void GetMoveDirection(object sender, CharacterArgs e) { e.moveDirection = new Vector2(Input.GetAxis("Horizontal"), 0f); }
public void OnMove(object sender, CharacterArgs e) { view.GetRigidBody().AddForce(e.moveDirection * model.MoveSpeed * speedMultiplier); }