碰撞时,不更改布尔变量
本文关键字:布尔 变量 碰撞 | 更新日期: 2023-09-27 18:34:19
我正在尝试用C#编写一个用于统一的脚本。这个脚本是为了让我的精灵跳跃。我要求精灵只有在接触地面时才能跳跃,所以当布尔值"isJumping"设置为 false 时。
在 Unity3D 中使用脚本时(尽管我使用的是 2D 预设并正在构建 2D 游戏),我可以在游戏首次运行时跳跃,但在击中空格后,布尔值设置为 true,当我与标记为"Ground"的接地相撞时,布尔值不会设置为假,这意味着我不能再跳了。
所以我想知道我做错了什么,以及为什么当我与"Ground"碰撞时,布尔值没有设置为 false。提前感谢您的帮助!下面是代码。:)
using UnityEngine;
using System.Collections;
public class Jump1 : MonoBehaviour {
public float jumpHeight;
public bool isJumping = false;
void Start() {
}
void Update() {
if (Input.GetKeyDown(KeyCode.Space))
{
if (isJumping == false)
{
rigidbody2D.AddForce(Vector2.up * jumpHeight);
isJumping = true;
}
}
}
void onCollisionEnter2D(Collision2D col) {
if (col.gameObject.tag == "Ground")
{
isJumping = false;
}
}
}
嘿,
我想问题是你没有放置刚体,你应该把它添加到地面或它自己的角色上(如果你不想在其中使用重力,只需让它等于零,如果你添加刚体2D,或者取消选中使用重力,如果你使用刚体)如果您已经将刚体放置在其中一个上并且它不起作用,请在此处发表评论,请尝试考虑其他原因