【发布时间】:2020-08-10 14:24:22
【问题描述】:
我是 Unity 的新手。我正在使用 Standard Assets 包中的 Car 和 CarWaypointBased 预制件来创建赛车游戏。
我想在不影响 Car 对象的情况下打出CarWaypointBased 对象(
就像一辆拥有超能力的汽车!!)。我的意思是,就好像我的车没有被撞(同时让另一辆车移动)。
两者都有默认的Colliders 和Rigidbody。
现在碰撞会导致两者移动。 我希望它很清楚。
更新
我在汽车的OnTriggerEnter 中使用AddForce:
other.GetComponentInParent<Rigidbody>().AddForce(-transform.forward * 500f );
我将汽车的重量设置为 10000,另一个设置为 500。
【问题讨论】:
-
使用对撞机作为触发器(在超级汽车的对撞机上切换
IsTrigger)。然后处理OnTriggerEnter或OnCollisionEnter事件推送其他游戏对象 -
谢谢@alex-larionov 。请给我更多的解释或例子来推动其他游戏对象?
-
您需要进行一些数学运算才能找到推动对象的位置和数量。然后在推送的对象上使用
AddForce -
10000/500=20,这就是为什么你可以将 super_car 的重量设置为 20,而只设置汽车重量 - 1。我认为使用小数字更容易