首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在RealityKit中与3D对象交互

如何在RealityKit中与3D对象交互
EN

Stack Overflow用户
提问于 2019-07-08 10:05:47
回答 1查看 1.3K关注 0票数 1

三维物体的交互问题。我发现了RealityKit的一些贝塔函数,如PhysicsBodyComponent、applyImpulse、addForce、applyAngularImpulse等等。

我试图在物体“花瓶”中加入物理特性,并在事件发生时产生一种冲动--点击或类似的东西。

这真的很奇怪,在执行命令之后,物理特性被添加到正常的同时,脉冲和力没有被添加到对象中(参见下面的调试输出)。

调试打印输出:

Optional(RealityKit.PhysicsBodyComponent(mode: RealityKit.PhysicsBodyMode.dynamic,massProperties: RealityKit.PhysicsMassProperties(质量: 0.2,惯性: SIMD3(0.1,0.1,0.1),centerOfMass:(位置: SIMD3(0.0,0.0,0.0),方位:simd_quatf(实: 1.0,imag: SIMD3(0.0,0.0,0.0),材料: RealityKit.PhysicsMaterialResource,isTranslationLocked:(x: false,y: false,z: false),isRotationLocked:(x: false,y: false,z: false),isContinuousCollisionDetectionEnabled: false,间接器: false,userForce: SIMD3(0.0,0.0,0.0),userTorque: SIMD3(0.0,0.0,0.0),userLinearImpulse: SIMD3(0.0,0.0,0.0),userAngularImpulse: SIMD3(0.0,0.0,0.0)) 5 Optional(RealityKit.PhysicsBodyComponent(mode: RealityKit.PhysicsBodyMode.dynamic,massProperties: RealityKit.PhysicsMassProperties(质量: 0.2,惯性: SIMD3(0.1,0.1,0.1),centerOfMass:(位置: SIMD3(0.0,0.0,0.0),方位: simd_quatf(real: 1.0,imag: SIMD3(0.0,0.0,>0.0),材料: RealityKit.PhysicsMaterialResource,isTranslationLocked:(x: false,y: false,z: false),isRotationLocked:(x: false,y: false,z: false),isContinuousCollisionDetectionEnabled: false,间接器: false,userForce: SIMD3(0.0,0.0,0.0),userTorque: SIMD3(0.0,0.0,0.0),userLinearImpulse: SIMD3(0.0,0.0,0.0),userAngularImpulse: SIMD3(0.0,0.0,0.0))

正如我们所看到的,函数不会给物体“花瓶”增加冲动和力量。也许我做错了什么。

EN

回答 1

Stack Overflow用户

发布于 2019-07-30 18:48:24

我认为您不应该直接创建ModelEntity实例。我认为这是Entity类的内部组件,仅表示网格。您可以使用RealityKit中的组件直接增强交互/动画。这些方法适用于整个实体对象。我认为它类似于如果您创建一个金属视图,您需要它支持一个核心动画层,以获得访问用户交互。

如果您看一下SwiftStrike样本应用,它们不会直接实例化ModelEntity,这使我相信,创建Entity对象之外的ModelEntity并不是最佳实践。

我相信你会通过Reality Composer将你的花瓶添加到这个项目中。你可以把材料和碰撞应用到那里。您也可以添加行为,如响应触摸。然后,您可以通过Xcode中的reality composer文件访问花瓶,并将组件添加到vase实体中,从而转换其位置。所有实体都有一个转换组件,这是文档化的这里

RealityKit的设计似乎是为了尽可能多地将代码从程序员身上抽象出来,因此许多底层体系结构并没有真正公开或记录下来。它也不是我组织它的方式,但我对实体组件设计模式不太熟悉。

如果您不喜欢RealityKit的布局方式,您也可以选择使用SceneKit作为呈现器。这并不能抽象出更多的功能,并允许您直接在对象上使用核心动画命令。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56932621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档