我正在尝试使用 C# 为我的平台游戏制作跳跃垫。
我很困惑,如何使用触发器向其他游戏对象添加力量?
尝试使用rb = gameobject.getcomponent<rigidbody>
在无效启动中,没有工作。
这是我的代码最接近我的期望
public float force = 1500f;
void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Player")
{
other.GetComponent<Rigidbody>().AddForce(Vector3.up * force * Time.deltaTime);
Debug.Log("trigger!");
}
}
我预计如果我的玩家落在扳机上,他就会向上发射,但事实并非如此。我还应该注意到控制台日志显示“触发!”所以在和力上有一个错误。
没有错误消息。
最佳答案
Time.deltaTime 是一个非常小的数字,当函数被调用一次时就不需要它了。您也可以尝试other.GetComponent<Rigidbody>().AddForce(Vector3.up * force, ForceMode.VelocityChange);
您可以在此处阅读有关 AddForce 方法的更多信息:Rigidbody.AddForce
关于c# - 需要有关通过触发器访问的游戏对象刚体的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57733427/