如何让一个物体在与另一个物体碰撞时悬停

问题描述 投票:0回答:2

我是编程新手,我正在学习

Unity Learn
课程。我有一个球体沿着轨道滚动,我希望它在接触到一个空的游戏对象时悬停。我向空游戏对象添加了一个盒子对撞机。当我尝试运行我的代码时出现错误。

public class hover : MonoBehaviour
{
    public float hoverForce = 15f;

    void OnTriggerStay(Collider other)
    {
        other.getComponent<Rigidbody>().AddForce(Vector3.up * hoverForce, ForceMode.Acceleration);
    }
}

我尝试用我想悬停的特定对象的名称替换“其他”,但我仍然遇到同样的错误。

c# unity3d
2个回答
0
投票

在 Y 轴上冻结在空气中。或者获取游戏对象 y 速度并应用它而不是

Vector3.up * hoverForce


0
投票

要在 Unity 中使一个对象在与另一个对象发生碰撞时悬停,您可以使用

OnCollisionEnter2D()
方法。当附加了
Rigidbody2D
Collider2D
的两个对象之间发生碰撞时,将调用此方法。在
OnCollisionEnter2D()
方法中,您可以将 Rigidbody2D 的速度设置为零以使对象悬停。您也可以根据需要使用其他方法,例如
OnTriggerEnter2D()
OnCollisionStay2D()

© www.soinside.com 2019 - 2024. All rights reserved.