【问题标题】:Collision detection between two character controllers两个角色控制器之间的碰撞检测
【发布时间】:2013-02-23 22:41:03
【问题描述】:

我是 Unity 和脚本的新手。我有两个玩家,他们都在使用角色控制器。我做过这件事

  • 我用过onControllerColliderHit函数。
  • 我打印了这个gameobj.name这样的名字。
  • 它将显示它击中的对象的名称

但问题是它通过了它。我希望它不能通过它,它的行为就像刚体一样。就像第二个玩家击中它时必须有力的效果一样。

【问题讨论】:

    标签: unity3d collision-detection


    【解决方案1】:

    检查doc。 CharacterController 没有附加RigidBody

    角色控制器主要用于第三人称或 不使用刚体的第一人称玩家控制 物理。

    基本上CharacterController 只是一个Collisor 设计用于防止场景中角色和对象之间的相互渗透,但是当2 个CharacterControllers 之间发生碰撞时,它就无法按预期工作。

    特别是:

    控制器不会自行对力做出反应,也不会 自动将刚体推开。

    OnControllerColliderHit 文档中所示,您可以在发生这种情况时手动处理冲突。例如,当角色控制器对象发生碰撞时,您可以将它们推开,因为您有移动方向:

    Vector3 pushDir = new Vector3(hit.moveDirection.x, 0, hit.moveDirection.z);
    transform.Translate (-pushDir * offset);  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 2013-07-22
      • 1970-01-01
      • 2019-11-29
      • 2013-03-19
      相关资源
      最近更新 更多