java - ARCore – 禁用 ModelRenderable 的移动
问题描述
这是我可以用来放置模型的一段代码。
private void addNodeToScene(ArFragment fragment, Anchor createAnchor, ModelRenderable renderable) {
AnchorNode anchorNode = new AnchorNode(createAnchor);
TransformableNode transformableNode = new TransformableNode(fragment.getTransformationSystem());
transformableNode.setName("box");
transformableNode.setRenderable(renderable);
transformableNode.setParent(anchorNode);
fragment.getArSceneView().getScene().addChild(anchorNode);
transformableNode.setOnTapListener((hitTestResult, motionEvent) -> {
if(callback != null) {
callback.onGiftClick(hitTestResult.getNode());
}
});
transformableNode.select();
}
但是一旦模型被放置,我可以移动模型。
有什么方法可以禁止用户在放置模型后四处移动模型?
解决方案
用一个节点替换你的 TransformableNode。
TransformableNode transformableNode = new TransformableNode(fragment.getTransformationSystem());
变成
Node myNode = new Node();
你将无法再移动它
Nodes 与 TransformableNodes 相比,有些事情的工作方式不同 -> 构造函数为空。
推荐阅读
- python - 大熊猫中大量列的分组
- c++ - 为什么我的项目在移动我用 CMake 制作的单元测试项目时会中断并且无法编译
- javascript - 在 JavaScript 的 for 循环中创建动态 div
- python - Python 函数赋予错误计算最高公因数
- c++ - C++:在开始之前不能寻找向量迭代器
- pyspark - 'DataFrame' 对象在 pyspark 中不可调用
- regex - 努力理解这是什么意思?[差异文件A 文件B | grep '^<']
- ruby-on-rails - Shopify Embedded App 对我的 postgresql 数据库的请求进行身份验证
- python - 为什么当我更改坐标时,Shapely 会绘制两条线?
- reactjs - React-Router:使用 Navlink 将道具从一个组件传递到另一个组件