我正在创建一个2D的Jump & Run游戏,我想在关卡中的一个部分禁用跳跃。我不知道如何才能做到这一点。这是我的跳跃代码:
private void Update()
{
if (Input.GetButtonDown("Jump") && IsGrounded())
{
characterRb.velocity = new Vector2(characterRb.velocity.x, jumpForce);
}
if (Input.GetButtonUp("Jump") && characterRb.velocity.y > 0f)
{
characterRb.velocity = new Vector2(characterRb.velocity.x, characterRb.velocity.y * 0.5f);
}
}
private bool IsGrounded()
{
return Physics2D.OverlapCircle(groundCheck.position, 0.2f, groundLayer);
}
我想我会使用OnTriggerEnter2D方法来命中对象,并在update方法的if语句中包含另一个布尔值,但这听起来不是很干净。
希望有人能帮帮我:)
亲切的问候
1条答案
按热度按时间icnyk63a1#
我想。当角色跳跃并与一个物体互动时,是否禁用跳跃?不管怎样
添加bool和Collider2D内容
例如:
也可以添加
if (Input.GetButtonDown("Jump") && IsGrounded())
替换为这个if (Input.GetButtonDown("Jump") && IsGrounded() && canJump)
如果你愿意的话,可以看看Collider和bool之类的东西的文档
https://docs.unity3d.com/ScriptReference/Object-operator_Object.html和https://docs.unity3d.com/ScriptReference/Collider.html