我是编程新手,我正在学习
Unity Learn
课程。我有一个球体沿着轨道滚动,我希望它在接触到一个空的游戏对象时悬停。我向空游戏对象添加了一个盒子对撞机。当我尝试运行我的代码时出现错误。
public class hover : MonoBehaviour
{
public float hoverForce = 15f;
void OnTriggerStay(Collider other)
{
other.getComponent<Rigidbody>().AddForce(Vector3.up * hoverForce, ForceMode.Acceleration);
}
}
我尝试用我想悬停的特定对象的名称替换“其他”,但我仍然遇到同样的错误。
在 Y 轴上冻结在空气中。或者获取游戏对象 y 速度并应用它而不是
Vector3.up * hoverForce
要在 Unity 中使一个对象在与另一个对象发生碰撞时悬停,您可以使用
OnCollisionEnter2D()
方法。当附加了 Rigidbody2D
和 Collider2D
的两个对象之间发生碰撞时,将调用此方法。在 OnCollisionEnter2D()
方法中,您可以将 Rigidbody2D 的速度设置为零以使对象悬停。您也可以根据需要使用其他方法,例如OnTriggerEnter2D()
或OnCollisionStay2D()
。