Замените один материал на объекте двумя материалами - PullRequest
0 голосов
/ 29 сентября 2019

(Изображение: модель с двумя материалами) Я создаю простую модель в Blender, в ней два материала.Я экспортировал его в файл .obj и экспортировал в проект Unity.Мне нужно написать скрипт, который должен заменить один материал модели из двух, которые он имеет.Но как я могу сделать это с помощью сценария?

1 Ответ

0 голосов
/ 29 сентября 2019

Существует несколько вариантов.

Я предлагаю вам сделать следующее:

В вашем скрипте, который меняет один из ваших материалов, вызовите функцию типа

public void ChangeMaterial(Material m, int index){
    GetComponent<Renderer>().materials[index] = m;
}

Если вы хотите изменить материал несколько раз, возможно, вы захотите кэшировать компонент Renderer.

Полный пример сценария

public class MyScript : MonoBehaviour
{
    private Renderer _renderer;

    private void Start(){
        _renderer = GetComponent<Renderer>();
    }

    public void ChangeMaterial(Material m, int index){
        _renderer.materials[index] = m;
    }
}
...