我正在尝试将子节点附加到我在libgdx中创建的模型。我使用modeBuilder创建了一个类似这样的框:
Model model = modelBuilder.createBox(20, 20, 20, new Material(ColorAttribute.createDiffuse(Color.BLUE)),
VertexAttributes.Usage.Position | VertexAttributes.Usage.Normal);
box = new ModelInstance(model);
box.transform.translate(0, 15, -10);
我有另一个模型我从搅拌器中加载:
Model model;
model = modelLoader.loadModel(Gdx.files.getFileHandle("crane.g3db", Files.FileType.Internal));
modelInstance = new ModelInstance(model);
modelInstance.transform.scale(0.05f, 0.05f, 0.05f);
modelInstance.transform.translate(0, 0, 500);
modelInstance.calculateTransforms();
现在我正在尝试将该框作为上述搅拌机模型的一个节点的子项附加,如下所示:
public void attachBox(int i){
this.attachedBox = box;
Node hook = this.modelInstance.getNode("gancho");
this.attachedBoxNode = this.attachedBox.getNode("node1");
gancho.addChild(this.attachedBoxNode);
attachedBoxNode.inheritTransform=true;
modelInstance.calculateTransforms();
this.attachedBoxNode.isAnimated = true;
}
我的问题如下:
更新节点转换的正确方法是什么?当我附上孩子并设置inheritTransforms=true;
时,我会将盒子缩放并移动到世界各地。如果我设置inheritTransforms=false;
。该框保留原始大小,但我无法通过移动父节点来移动它。我希望能够保持盒子的大小并通过移动父节点和盒子节点本身来移动它。