Задать вопрос
@Oleg_KeyKode

Как менять материал по нажатию кнопки в Unity 3d?

Здравствуйте, мне нужно реализовать смену материала по кнопке в Unity 3D, и чтобы была кнопка подтверждающая что нужно выбрать именно тот или иной материал. Пытался реализовать через Meshrenderer но нечего не получилось, возможно я что-то не так сделал
  • Вопрос задан
  • 276 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
Figma-designer
@Figma-designer
Я делаю это так:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Hero : MonoBehaviour
{	
	// Массив с нужными нам материалами, перетаскиваем в редакторе
	public Material[] materials;

    void Update()
    { 
	    // Проверка нажатия нужной нам кнопки
	    if (Input.GetKeyDown(KeyCode.A))
	    {	

	    	// Присваиваем нужный нам материал из массива
	    	gameObject.GetComponent<Renderer>().material = materials[0];

	    }
	}	
}
Ответ написан
Комментировать
@Ezekiel4
Охотник на пиратов и сборщик монолитов
Можете вызвать свойство material и вставить туда ссылку на нужный вам материал
https://docs.unity3d.com/ScriptReference/Renderer-...

Типа:
using UnityEngine;

public class MaterialChangeExample : MonoBehaviour {

	// ссылка на элемент отображения
	[SerializeField] private Renderer m_Renderer;
	// массив нужных материалов
	[SerializeField] private Material[] m_Materials;

	// привязываем к кнопкам, передаём номер материала из массива
	public void OnSelected(int materialId) {
		// накладываем
		m_Renderer.material = m_Materials[materialId];
	}
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы