【发布时间】:2013-12-18 23:30:39
【问题描述】:
我正在尝试检测 Unity 项目中 characterController 与平台(rigidBody + boxCollider)之间的冲突。
我知道我可以在 characterController 对象上使用这个函数:
void OnControllerColliderHit(ControllerColliderHit hit) {
// [...];
}
但我强烈宁愿在平台对象中检测它,以尽量保持代码更清晰。像这样的:
void OnCollisionEnter(Collision c) {
Debug.Log(c.gameObject.tag);
}
但它不起作用!我在 Unity 论坛中搜索,显然检测碰撞的唯一方法是将boxCollider 的属性isTrigger 设置为True 并改用.OnTriggerEnter(Collider c) 方法。但是,这样做会导致玩家从平台上掉下来,这显然是不可能发生的。
好的,所以我的问题是:是否有另一种方法来做到这一点 - 不将 isTrigger 设置为 True - 并检测平台对象中的碰撞?
谢谢!
【问题讨论】: