เปลี่ยนพื้นผิวโมเดล 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)


ปรากฎว่าวัสดุที่ไม่ได้ใช้จะไม่ถูกส่งไปยัง modelInstance ฉันแค่ต้องแก้ไขโมเดล จากนั้นสร้างและเรนเดอร์ modelInstance

ปล. มันเกิดขึ้นตลอด เบื่อกับเรื่องบางเรื่องจนตั้งกระทู้ถามแล้วค่อยแก้ปัญหาภายใน 24 ชม.

person Dirtlord    schedule 26.03.2020