如何从特定模型中获取所有节点 (libgdx)

How to get all Nodes from a specific Model (libgdx)

我试图从我创建的球体中获取所有节点并使用了以下代码。

private Array<Node> nodes;

    ModelBuilder modelBuilder = new ModelBuilder();
    Model model = modelBuilder.createSphere(10, 10, 10, 20, 20, new Material(ColorAttribute.createDiffuse(Color.RED)), Usage.Position | Usage.Normal);
    nodes = model.nodes;

    for (Iterator<Node> iterator = nodes.iterator(); iterator.hasNext();)
    {
        Node node = (Node) iterator.next();
        nodes.add(node);
    }

我认为这应该 return 所有节点。
事实上,无论 Spheres 大小如何,nodes.size 都是“1”。

没错,Model#nodes 提供对(Array 个)根节点的直接访问。 ModelBuilder 仅创建根节点,因此在您的情况下,这将是模型的所有节点。 createSphere 方法总是创建一个节点,无论球体的大小(维度)如何(虽然我不确定为什么你认为这会相关?)

如果愿意,this tutorial 深入解释模型结构。