当我在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中正确使用触发器吗?
1条答案
按热度按时间zaqlnxep1#
在RealityKit中,
trigger
案例使具有这种模式的碰撞对象更具性能。当这种类型的对象与其他对象碰撞时,您的应用程序只记录发生了接触事件。然而,应用程序会丢弃穿透深度,接触点和法向量等细节,而不像CollisionComponent.Mode.default
模式。