C# 避免碰撞
我知道使用物理。碰撞来避免两个特定物体之间的碰撞。但我希望他们的盒子碰撞器处于活动状态,这样它就能检测到他们正在接触。有没有办法做到这一点 另外,在我使用Physics.collision()禁用碰撞后,我可以重新激活对象之间的碰撞吗C# 避免碰撞,c#,unity3d,collision,C#,Unity3d,Collision,我知道使用物理。碰撞来避免两个特定物体之间的碰撞。但我希望他们的盒子碰撞器处于活动状态,这样它就能检测到他们正在接触。有没有办法做到这一点 另外,在我使用Physics.collision()禁用碰撞后,我可以重新激活对象之间的碰撞吗 Physics.IgnoreCollision(obj2.GetComponent<Collider>(), this.GetComponent<Collider>()); Physics.IgnoreCollision(obj2.Get
Physics.IgnoreCollision(obj2.GetComponent<Collider>(), this.GetComponent<Collider>());
Physics.IgnoreCollision(obj2.GetComponent(),this.GetComponent());
在Unity菜单栏中,转到编辑>项目设置
,然后选择物理类别以打开物理窗口。您将找到一个矩阵,在这里您可以取消选中两个层之间的碰撞。如果将玩家放在一个层中,而不想碰撞的对象放在另一个层中,并且在矩阵中取消选中该框,则所有内容都将保持其属性,玩家不会与其发生碰撞。请参见
忽略
:是否应忽略两个碰撞器之间的碰撞
默认值为true
要重新启用以前禁用的冲突,只需传入false
Physics.IgnoreCollision(obj2.GetComponent<Collider>(), this.GetComponent<Collider>(), false);
Physics.IgnoreCollision(obj2.GetComponent(),this.GetComponent(),false);
如果您不希望对象发生碰撞,但如果它们彼此接触,则进行注册,然后对它们进行触发 如果对象是触发器,则它不会对碰撞作出反应,但会触发一个触发器 看 脚本系统可以检测何时发生冲突,并使用OnCollisionCenter函数启动操作。但是,您也可以使用物理引擎 简单地检测一个碰撞器何时进入另一个碰撞器的空间而不创建碰撞。配置为触发器(使用Is Trigger属性)的碰撞器不会表现为实体对象,只允许其他碰撞器通过。当碰撞器进入其空间时,触发器将调用触发器对象脚本上的OnTriggerEnter函数