首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sceneform ARCore加载并构建随机的3D资源

Sceneform ARCore加载并构建随机的3D资源
EN

Stack Overflow用户
提问于 2020-01-28 01:54:19
回答 1查看 61关注 0票数 0

我有一个在AR环境中构建和生成3D资源的方法。3D资源是存储在metadata文件夹中的.sfb文件。我在metadata文件夹中有多个3D资源,我希望在调用此函数时随机选择一个资源。这是我用来生成特定资产的代码:

代码语言:javascript
复制
private void addCreatureToScene() {

    ModelRenderable
            .builder()
            **.setSource(this, Uri.parse("20170219_Dragon_small.sfb"))**
            .build()
            .thenAccept(renderable -> {

                    Node node = new Node();
                    node.setRenderable(renderable);
                    scene.addChild(node);

                    Random random = new Random();
                    int x = random.nextInt(6);
                    int z = random.nextInt(6);
                    int y = random.nextInt(5);

                    z = -z;

                    node.setWorldPosition(new Vector3(
                            (float) x,
                            y / 10f,
                            (float) z
                    )); 
            });
} 

粗体的.setSource代码是引用特定3D资源的位置。有没有从metadata文件夹中随机选择3D资源的方法?谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-01-28 07:36:19

为了帮助你简化这个问题,你应该试着把它分解成更小的目标。例如,您正在尝试执行以下操作:

  1. 从文件夹中选择一个随机文件
  2. 将该对象放入AR

既然你已经有了第二步,复杂的步骤,计算出来,现在看看独立于它的第一步。您提出的问题是选择一个随机的文件名。

有多种方法可以实现这一点。最简单的方法是,如果您已经知道所有这些文件名是什么,您可以创建这些名称的java列表,然后使用java.util.Random随机获取一个文件名。更多信息请点击这里:https://www.geeksforgeeks.org/randomly-select-items-from-a-list-in-java/

否则,你将不得不有一个函数来读取文件夹中的所有文件,然后随机选择这些文件。希望这能有所帮助。

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

https://stackoverflow.com/questions/59936441

复制
相关文章

相似问题

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