Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 在现实中,我怎样才能创造一个没有摩擦的世界?_Swift_Augmented Reality_Arkit_Realitykit - Fatal编程技术网

Swift 在现实中,我怎样才能创造一个没有摩擦的世界?

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

我想创造一个没有摩擦和阻尼的物理世界

我尝试将场景的重力设置为(0,0,0),并制作一个正方形和球,在敲击时施加力。我想让球永远移动,但它只是在某个时间停止

如何使实体摩擦力为零


将新的
物理材质应用于模型实体

对于此用途,
生成(摩擦:恢复:)

在哪里

这里有一个代码:

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)