swift RealityKit中的CollisionComponent不能作为触发器工作?

laawzig2  于 12个月前  发布在  Swift
关注(0)|答案(1)|浏览(158)

当我在RealityKit中将CollisionComponent的模式设置为.trigger时,它仍然会与其他对象发生碰撞。据我所知,触发器应该通过其他碰撞器。这是我如何设置触发器的:

func addCube() {
    let entity = ModelEntity(mesh: .generateBox(size: 0.1,
                                        cornerRadius: 0.0),
                        materials: [SimpleMaterial(color: .red,
                                              isMetallic: false)])
    entity.collision = CollisionComponent(shapes: [ShapeResource.generateBox(width: 0.1,
                                                                            height: 0.1,
                                                                             depth: 0.1)],
                                            mode: .trigger)
    entity.physicsBody = PhysicsBodyComponent()
    entity.setPosition([0.0, 0.2, 0.0], relativeTo: nil)
    root.addChild(entity)
}

字符串
我只能正确设置CollisionComponent的过滤器来忽略相同类型的实体,然后它们互相传递,但碰撞器的订阅事件不再触发。有人在RealityKit中正确使用触发器吗?

zaqlnxep

zaqlnxep1#

在RealityKit中,trigger案例使具有这种模式的碰撞对象更具性能。当这种类型的对象与其他对象碰撞时,您的应用程序只记录发生了接触事件。然而,应用程序会丢弃穿透深度,接触点和法向量等细节,而不像CollisionComponent.Mode.default模式。

相关问题