- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 reality kit 上,我尝试将 physicsBodyComponent 提供给 modelEntity。
但是当我将 modelEntity 放到现实世界中时,它就掉下来了。
有办法解决这个问题吗?
最佳答案
您需要使用 PhysicsBodyComponent
创建地板网格:
let floor = ModelEntity(mesh: .generateBox(size: [1000, 0, 1000]), materials: [SimpleMaterial()])
floor.generateCollisionShapes(recursive: true)
if let collisionComponent = floor.components[CollisionComponent] as? CollisionComponent {
floor.components[PhysicsBodyComponent] = PhysicsBodyComponent(shapes: collisionComponent.shapes, mass: 0, material: nil, mode: .static)
floor.components[ModelComponent] = nil // make the floor invisible
}
scene?.addChild(floor)
然后,当你加载你的实体时,你还给它们一个 PhysicsBodyComponent
(它们需要一个非零的 mass
,否则它们无论如何都会掉下来,这是很长一段时间我都没有想到什么):
var loadModelCancellable: AnyCancellable? = nil
loadModelCancellable = Entity.loadModelAsync(named: modelUri)
.sink(receiveCompletion: { _ in
loadModelCancellable?.cancel()
}, receiveValue: { entity in
entity.generateCollisionShapes(recursive: true)
if let collisionComponent = entity.components[CollisionComponent] as? CollisionComponent {
entity.components[PhysicsBodyComponent] = PhysicsBodyComponent(shapes: collisionComponent.shapes, mass: 1, material: nil, mode: .dynamic)
}
scene.addChild(entity)
loadModelCancellable?.cancel()
})
最后,在我的项目中添加物理学对我试图做的事情产生了太多意想不到的后果(只是防止模型重叠),比如模型相互插入,以及需要完全重做的 Action ,......所以我没有比这更进一步,但至少这应该让你向你的模型添加物理学,而不会使它们无限期地从重力下落。
关于arkit - 我试图将 physicsBodyComponet 提供给 modelEntity,但它只是落在了深处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62037919/
我使用代码在 RealityKit 中添加图片纹理,效果很好。 var material = SimpleMaterial() material.baseColor = try! .texture(.
我使用 RealityKit composer 在 RealityKit 文件中创建了一个简单的场景: 然后我创建了一个 arView 并将我场景的 anchor 添加到它的 anchor : arV
Reality Composer 中有隐藏模型,但找不到任何关于隐藏实体的文档或 ModelEntity在 RealityKit 中。 像这样的事情: SCNNode ---- hidden 一个 b
在 reality kit 上,我尝试将 physicsBodyComponent 提供给 modelEntity。 但是当我将 modelEntity 放到现实世界中时,它就掉下来了。 有办法解决这
有没有办法知道 SIMD3 模型实体的大小?一旦获得大小,我想将其传递给 CollisionComponent。 let box = ModelEntity(mesh: MeshResource.g
有没有办法知道 SIMD3 模型实体的大小?一旦获得大小,我想将其传递给 CollisionComponent。 let box = ModelEntity(mesh: MeshResource.g
RealityKit 的文档包括以下结构:OcclusionMaterial、SimpleMaterial 和 UnlitMaterial,用于将 Material 添加到模型实体。 或者,您可以加载
我是 SwiftUI、ARKit 和 RealityKit 的新手,很抱歉回答我的非常基本的问题我被告知使用这些方法来加载模型 Entity.load(named: "abc.usdz") 和 Mod
我曾经使用过一些 SceneKit API,比如 SCNGeometrySource(vertices: vertices) SCNGeometryElement(data: indexData,
我是一名优秀的程序员,十分优秀!