我有3个彼此冲突的敌人,它们来自同一预制件。
预制游戏对象具有胶囊对撞机和刚体。重力和运动学均已启用,所有对撞机均被触发。他们的基本功能是追逐玩家角色。当他们这样做时,目前他们都收敛于同一点,最终彼此重叠。我怎么弄到它们彼此碰撞?
我的层次结构如下:
骨架设置如下:
攻击传感器的设置如下:
这些是我的碰撞矩阵设置
答案 0 :(得分:1)
问题在于如何设置对象:
以更一般的方式,您应该确保了解哪种对象可以相互碰撞。看看Collider documentation。在页面底部,有一个漂亮的表对此进行了解释。
答案 1 :(得分:1)
因此,您有Kinematic Rigidbody Trigger Collider
与另一个Kinematic Rigidbody Trigger Collider
发生冲突,如下图unity collision messages所示。
您的碰撞层如何?是默认值与默认值冲突吗?(请检查物理选项卡)
另外,我之前做过类似的事情,我能不能建议您使用一个胶囊碰撞器作为骨骼的身体(不触发),将一个子对象用作攻击传感器(球形触发碰撞器更适合)。这将帮助您区分人体的物理原理和攻击逻辑。
评论答案:
*胶囊对撞机:在骨骼的“默认”层上进行变换,而不触发
球体对撞机:在一个空的转换中,该转换是具有“ attackSensors”层或其他任何层的子级,它是触发器。
在碰撞矩阵上禁用“ attackSensor”层之间的碰撞,这样可以节省性能,避免攻击传感器之间发生碰撞。
这样您就可以拥有:
具有碰撞体的骨架,该碰撞体也使用重力(重力不适用于运动刚体)并响应碰撞。
与其他骨架的刚体碰撞时将触发事件的触发器。*
答案 2 :(得分:0)
使用Unity动画器通常会使动画对象在游戏世界空间之外产生思考,因此实际上它们是与游戏分离的实体。但是,您可以使用光线投射来检测彼此的碰撞器,并通过这种方法使它们看起来彼此碰撞。