【发布时间】:2013-02-23 22:41:03
【问题描述】:
我是 Unity 和脚本的新手。我有两个玩家,他们都在使用角色控制器。我做过这件事
- 我用过onControllerColliderHit函数。
- 我打印了这个gameobj.name这样的名字。
- 它将显示它击中的对象的名称
但问题是它通过了它。我希望它不能通过它,它的行为就像刚体一样。就像第二个玩家击中它时必须有力的效果一样。
【问题讨论】:
标签: unity3d collision-detection
我是 Unity 和脚本的新手。我有两个玩家,他们都在使用角色控制器。我做过这件事
但问题是它通过了它。我希望它不能通过它,它的行为就像刚体一样。就像第二个玩家击中它时必须有力的效果一样。
【问题讨论】:
标签: unity3d collision-detection
检查doc。 CharacterController 没有附加RigidBody:
角色控制器主要用于第三人称或 不使用刚体的第一人称玩家控制 物理。
基本上CharacterController 只是一个Collisor 设计用于防止场景中角色和对象之间的相互渗透,但是当2 个CharacterControllers 之间发生碰撞时,它就无法按预期工作。
特别是:
控制器不会自行对力做出反应,也不会 自动将刚体推开。
如OnControllerColliderHit 文档中所示,您可以在发生这种情况时手动处理冲突。例如,当角色控制器对象发生碰撞时,您可以将它们推开,因为您有移动方向:
Vector3 pushDir = new Vector3(hit.moveDirection.x, 0, hit.moveDirection.z);
transform.Translate (-pushDir * offset);
【讨论】: