Программно изменить текстуру модели libgdx

Я делаю игру, и я хочу изменить текстуру модели в зависимости от связанных данных, но независимо от того, что я, как только текстура должна измениться, модель становится невидимой, модель в формате g3dj, вот часть материалов.

"materials":[
    {
        "id":"default",
        "diffuse": [0.640000, 0.640000, 0.640000],
    },
    {
        "id":"plant fibre",
        "textures":[
            {
                "id": "Texture.001",
                "filename": "graphics/plant fibre.png",
                "type": "DIFFUSE"
            }
        ]
    },
    {
        "id":"logs",
        "textures":[
            {
                "id": "Texture.001",
                "filename": "graphics/logs.png",
                "type": "DIFFUSE"
            }
        ]
    }
],

И вот моя последняя попытка

 self.getMaterial("default").clear();
 self.getMaterial("default").set(self.getMaterial(extra.getString("item")).get(TextureAttribute.Diffuse));

Я уже пробовал все, что нашел в Интернете, и у всех была одна и та же проблема.


person Dirtlord    schedule 26.03.2020    source источник


Ответы (1)


Оказывается, неиспользуемые материалы не передаются в экземпляр модели. Мне просто нужно было изменить модель, а затем создать и визуализировать экземпляр модели.

Ps: это всегда происходит, мне так что-то надоело, что я задаю вопрос здесь, а затем решаю проблему в течение 24 часов.

person Dirtlord    schedule 26.03.2020