0
有沒有什麼辦法可以在運行時禁用紋理並啓用着色模型? 然後再次啓用紋理?Libgdx禁用紋理並添加着色
現在我用這:
@Override
public void enableTexture(boolean enable, Vector3 colorize) {
enableTexture(enable, colorize.x, colorize.y, colorize.z);
}
@Override
public void enableTexture(boolean enable, float r, float g, float b) {
if (enable) objModel.getModelInstance().materials.get(0).set(TextureAttribute.createDiffuse(objModel.getTexture()));
else {
objModel.getModelInstance().materials.get(0).set(ColorAttribute.createDiffuse(r, g, b, 1));
}
}
但這不是對性能非常好,因爲它是永諾在運行時創建一個新的對象。我需要這個光桿
最終工作代碼:
@Override
public void enableTexture(boolean enable, float r, float g, float b) {
if (enable) {
if (diffuse == null) diffuse = TextureAttribute.createDiffuse(objModel.getTexture());
objModel.getModelInstance().materials.get(0).clear();
objModel.getModelInstance().materials.get(0).set(diffuse);
}
else {
if (color == null) color = ColorAttribute.createDiffuse(r, g, b, 1);
objModel.getModelInstance().materials.get(0).clear();
objModel.getModelInstance().materials.get(0).set(color);
}
}