【发布时间】:2022-01-25 23:01:03
【问题描述】:
我一直在尝试基于 RealityKit 构建台球游戏,但是物理模拟不够准确。当参数太小时,RealityKit 似乎会产生粗略的计算。
下面的代码展示了我到目前为止所做的事情。有没有办法配置 RealityKit 并提高物理精度?
import RealityKit
import ARKit
let ballMaterial = PhysicsMaterialResource.generate(friction: 0.055, restitution: 0.95)
game.allBalls.forEach { entity in
guard let physicsEntity = entity as? HasPhysics else { return }
physicsEntity.physicsBody?.massProperties.mass = 0.17
physicsEntity.physicsBody?.material = ballMaterial
}
let wallMaterial = PhysicsMaterialResource.generate(friction: 0.005, restitution: 0.5)
game.wallEntities.forEach { entity in
guard let physicsEntity = entity as? HasPhysics else { return }
physicsEntity.physicsBody?.material = wallMaterial
}
let tableSurfaceMatrial = PhysicsMaterialResource.generate(staticFriction: 0.001, dynamicFriction: 0.2, restitution: 0.25)
game.tableSurfaceEntities.forEach { entity in
guard let physicsEntity = entity as? HasPhysics else { return }
physicsEntity.physicsBody?.material = tableSurfaceMatrial
}
添加一个力来移动白球:
// ballWhite as? Entity & HasPhysics
game.ballWhite.physicsBody?.mode = .dynamic
game.ballWhite.addForce(rayForce, relativeTo: nil)
【问题讨论】:
标签: swift augmented-reality arkit realitykit physics-engine