如何在ARcore的OpenGL项目中添加Transformable Node实现可旋转锚点
ARCore项目Sceneform兼容性与锚点实现方案
教程项目使用Sceneform的适配方案
Sceneform已停止官方维护,目前新版ARCore官方教程默认没有做Sceneform相关适配,你遇到的TransformableNode无法正常运行的问题,本质是版本不兼容导致的。
如果你仍要在该项目中使用Sceneform,需要完成如下适配修改:
- 将项目的ARCore SDK版本回退到1.15.0及以下,同时调整compileSdk、minSdk到对应匹配版本(minSdk最低要求为API 24)
- 在build.gradle配置中完整引入Sceneform相关依赖:
com.google.ar.sceneform:core、com.google.ar.sceneform.ux:sceneform-ux,同时排除现有ARCore相关依赖的冲突 - 修改原有锚点绑定逻辑:先通过ARCore Session创建所需的普通锚点/云锚点,将
TransformableNode绑定到对应锚点的AnchorNode上,再给TransformableNode添加旋转监听,实时计算目标锚点的世界坐标与当前节点的相对角度,更新节点旋转参数即可实现指向效果。
无需Sceneform的替代实现方案
如果不想调整项目版本做适配,可以直接用ARCore原生能力实现需求:
- 直接调用
Anchor相关原生API创建指定位置的锚点 - 自己实现手势监听逻辑,通过触摸事件计算旋转角度,直接更新对应3D模型的模型矩阵旋转参数即可实现可旋转、指向指定位置的效果
内容的提问来源于stack exchange,提问作者cPtz
相关产品推荐
相关产品推荐

