游戏场景中 只有碰撞器,使用射线做碰撞检测 请问该如何为碰撞器分组?

目前使用版本: 3.5.2

我的游戏不是那种高级的物理游戏,不需要刚体,只需要碰撞器 通过射线能够快速检测碰撞到了那些物体
因为游戏中对象会比较多,希望给对象分下组,可是翻遍了文档,找不到该如何做?

在编辑器的设置里面有一个物理分组,可是必须要使用刚体才能应用上。

另外,引擎组的射线碰撞就两个方法,返回的结果里面没有一个数据可以带上自定义数据的 导致拿到碰撞结果后 要反查游戏逻辑对象非常麻烦!

因为我游戏中的逻辑对象是包含一个Node这样的实现方式, 引擎的射线碰撞检测是检测整个场景中所有Collider (因为无法设置分组),碰撞返回的结果有一个Collider对象,我看论坛中的好多示例中 都是通过 uuid去识别碰撞的对象 ,在这里只能对应到Node,却无法方便对应到我的逻辑对象(有办法做到就是必须搞一个uuid和逻辑对象的映射, 在我这里很麻烦,因为逻辑对象会有很多种并且不一定都有共同的基类)。 如果Collider允许设置一个自定义数据,我拿到Collider之后通过自定义数据可以方便去查找逻辑对象。

另外,引擎组为什么不在各种Collider上提供一个和Ray做碰撞检测的方法呢?(Unity是有这样的方法的) 如果有这个方法的话,开发者就可以自己去分组,也可以方便去做Collider和Ray的碰撞检测!

可以了下解98k碰撞系统,
98k碰撞系统

今天在翻看代码的时候 看到Collider上有个SetMask的方法

SetMask的实现也真是有点奇葩,当时加载完成回调的时候去设置居然设置不成功(引擎组的好多组件都有类似的问题)一定要等Updata一次之后才能设置上。正常来说,Mask是一个值,组件可以记下用户设置的值,能够应用的时候拿用户设置的值去应用。 加载的时候不能设置成功,造成应用的代码非常不好写。

我费尽心思把Mask设置上了,当我调用

PhysicsSystem.instance.raycast(ray,mask) 去做射线碰撞检测的时候,发现并没有什么卵用。

比如,我将一个MeshCollider,通过SetMask的方法设置为4,然后使用PhysicsSystem.instance.raycast(ray,4) 并没有检测到碰撞,使用PhysicsSystem.instance.raycast(ray)是可以检测到碰撞的。

难道我姿势不对,引擎组的大仙,麻烦指导下该如何使用?

Creator版本 3.5.2