unity3d碰撞器检测碰撞跟触发器检测碰撞哪个好些

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity3d碰撞器检测碰撞跟触发器检测碰撞哪个好些相关的知识,希望对你有一定的参考价值。

参考技术A 个人认为,这两个的区别就是在碰撞的时候是不是出现碰撞效果。
所以这就要看相应的功能了。
个人认为如果要做到“子弹击中物体后被弹飞”可以尝试碰撞器检测,
如果实现“子弹击中物体后穿透”可以尝试触发器检测。
其实在加刚体并且封锁所有的轴的移动和旋转的时候这两个效果是一样的。
新手自学,如果见解不当,请指正,非常感谢。

unity3d 碰撞检测

碰撞检测函数 OnTriggerStay2D() ,可以只接受指定盒子的碰撞讯息吗?
eg,接受polygonCollider2d 盒子的讯息不接受 boxCollider2d盒子的讯息?

你写的是 触发检测,不是碰撞检测。关于你的这个问题,你可以判断一下这个触发的对象本身所带的碰撞器类型。

 void OnTriggerStay2D(Collider2D other)  
        if (other.GetComponent<BoxCollider2D>()) return;
        if (other.GetComponent<PolygonCollider2D>())
        
            //执行内容
        
    

或者你对于带有boxCollider2d的不想被触发的物体使用一个tag标记一下或放到一个碰撞层中,然后检测这个物体的tag是否是带有boxCollider2d的tag,然后return;或者直接忽略触发器所在的碰撞层和不想被触发的碰撞层就可以了。

追问

是这样的,谢谢了,我已经在stackoverflow上找到答案了,Well collider2d detects all types of 2d colliders. It doesn't matter if it's polygon or just a box. As the documentation suggestions it doesn't need to be public or private. It only takes a collider2d as it's argument however. 这是原话。

参考技术A 咋了

以上是关于unity3d碰撞器检测碰撞跟触发器检测碰撞哪个好些的主要内容,如果未能解决你的问题,请参考以下文章

unity碰撞检测(碰撞器,触发器)

unity3d 碰撞检测

Unity3d -- Collider(碰撞器与触发器)

Unity3D中碰撞器和触发器的区别是啥啊?

Unity3D使用时发现的问题及解决方法(触发碰撞条件)

Unity 碰撞检测与触发检测