Swift 在现实中,我怎样才能创造一个没有摩擦的世界?
我想创造一个没有摩擦和阻尼的物理世界 我尝试将场景的重力设置为(0,0,0),并制作一个正方形和球,在敲击时施加力。我想让球永远移动,但它只是在某个时间停止 如何使实体摩擦力为零Swift 在现实中,我怎样才能创造一个没有摩擦的世界?,swift,augmented-reality,arkit,realitykit,Swift,Augmented Reality,Arkit,Realitykit,我想创造一个没有摩擦和阻尼的物理世界 我尝试将场景的重力设置为(0,0,0),并制作一个正方形和球,在敲击时施加力。我想让球永远移动,但它只是在某个时间停止 如何使实体摩擦力为零 将新的物理材质应用于模型实体 对于此用途,生成(摩擦:恢复:): 在哪里 这里有一个代码: arView.environment.background = .color(.darkGray) let mesh = MeshResource.generateSphere(radius: 0.5) let materia
将新的
物理材质应用于模型实体
对于此用途,生成(摩擦:恢复:)
:
在哪里
这里有一个代码:
arView.environment.background = .color(.darkGray)
let mesh = MeshResource.generateSphere(radius: 0.5)
let material = SimpleMaterial()
let model = ModelEntity(mesh: mesh,
materials: [material]) as (ModelEntity & HasPhysics)
let physicsResource: PhysicsMaterialResource = .generate(friction: 0,
restitution: 0)
model.components[PhysicsBodyComponent] = PhysicsBodyComponent(
shapes: [.generateSphere(radius: 0.51)],
mass: 20, // in kilograms
material: physicsResource,
mode: .dynamic)
model.generateCollisionShapes(recursive: true)
let anchor = AnchorEntity()
anchor.addChild(model)
arView.scene.anchors.append(anchor)
另外,由于现实中物理引擎的一些缺陷,我认为不可能产生永久的反弹。似乎下一个现实是,它的更新将修复物理引擎的缺陷。我已经尝试了你的建议。它确实改善了我试图做的事情,但在与墙壁碰撞3~4秒后,墙壁最终停止了。你知道为什么会这样吗?我设置了墙和球。请分享你的代码。通过GitHub或任何文件共享服务。请通过有趣的事情分享.rcproject
场景,每次我尝试时,凹凸的数量都会发生变化。我找不到任何模式。我想这是因为内存管理。在移动过程中,我在场景中添加了更多的球,然后它的总动量保持不变。看起来,如果场景中没有任何更改,framework会故意将其关闭。
/* the coefficient of friction is in the range [0, infinity] */
/* and the coefficient of restitution is in the range [0, 1] */
arView.environment.background = .color(.darkGray)
let mesh = MeshResource.generateSphere(radius: 0.5)
let material = SimpleMaterial()
let model = ModelEntity(mesh: mesh,
materials: [material]) as (ModelEntity & HasPhysics)
let physicsResource: PhysicsMaterialResource = .generate(friction: 0,
restitution: 0)
model.components[PhysicsBodyComponent] = PhysicsBodyComponent(
shapes: [.generateSphere(radius: 0.51)],
mass: 20, // in kilograms
material: physicsResource,
mode: .dynamic)
model.generateCollisionShapes(recursive: true)
let anchor = AnchorEntity()
anchor.addChild(model)
arView.scene.anchors.append(anchor)