c# - 需要有关通过触发器访问的游戏对象刚体的建议

标签 c# unity-game-engine rigid-bodies

我正在尝试使用 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/

相关文章:

C# 使用 linq for chartist.js 序列化数据

c# - 想要使用 C# 列出文件夹中的所有图像文件

c++ - 在 DLL 注入(inject)中访问内存会导致内存访问冲突

c# - C# 脚本中的线程安全

javascript - 球体到 block - Angular 点碰撞检测 (JS)

c# - 刚体在 Unity 中相互进入

c# - 模拟 DbSet<T> 内联

c# - 使用 XML 获取所有同名元素的内容?

unity-game-engine - Unity更新后出现错误

2d - 如何在戈多中使刚体跳跃而不赋予其飞行能力