Как назначить текстуру материалу с помощью кода в unity

#unity3d

#unity3d

Вопрос:

Вот мой код:

      root_level1.GetComponent<Renderer>().material.EnableKeyword ("_NORMALMAP");
     Texture tex = Resources.Load("book-cover-1-glitched-23-11-2020-8-35-56-pm") as Texture;
     root_level1.GetComponent<Renderer>().material.mainTexture = tex;
 

Комментарии:

1. В чем ваша проблема?

2. Извините. Текстура не отображается на объекте при запуске.

Ответ №1:

  1. Чтобы изменить текстуру материала во время выполнения, вы должны изменить ее, получив доступ к свойствам шейдера. Прежде всего, вы должны проверить эти свойства в коде шейдера или в свойствах шейдера в инспекторе Unity. Если вы хотите проверить код шейдера, ваша цель — блок «свойства»:

Или вы можете выбрать шейдер в редакторе Unity и проверить окно инспектора: введите описание изображения здесь

  1. Итак, чтобы изменить базовую текстуру RGB, мы должны изменить свойство «_MainTex», а для изменения цвета мы должны изменить свойство «_Color».

Я приведу ваш пример, который будет выглядеть так:

 root_level1.GetComponent<Renderer>().material.SetTexture("_MainTex", tex);
 

Комментарии:

1. спасибо за подробный ответ. Я использовал приведенный выше код, и он все еще не показывает текстуру при запуске.

2. я должен также добавить, что объект, который я пытаюсь изменить текстуру, также генерируется во время выполнения.