Muitas vezes precisamos alterar o material / textura de um game object via código em tempo de execução durante nosso jogo.
É muito simples fazer isso, veja só:
// Primeiramente precisamos criar um script .js, declaramos também 2 variáveis:
var material1: Material;
var material2: Material;
// A variável material1 corresponde ao material padrão do nosso objeto e a material2
// corresponde ao material que desejamos aplicar ao game object em tempo de execução.
function Start () {
material1 = transform.renderer.material;
}
// No método Start() que é o primeiro a ser chamado em nosso script, definimos material1
// com a textura 'padrão' ou 'original' do nosso objeto.
// Agora precisamos definir de acordo com nosso projeto qual será o 'gatilho' que vai disparar
// a troca de material, neste caso vou utilizar o método abaixo:
function OnMouseExit () {
transform.renderer.material = material2;
}
// O método OnMouseExit () é chamado quando o mouse 'sai' de cima do nosso game object
// Dentro dele utilizo o comando 'transform.renderer.material = material2'
// Esse comando é responsavel por alterar o material do objeto, no caso, vai alterar o material
// do objeto ao qual esse script está anexado, fácil não? :)
Caso você queria que o objeto retorne a sua textura original basta utilizar a mesma linha de comando anterior só que agora atribuindo o material1:
transform.renderer.material = material1;
Importante: Neste script você deve inserir o material2 manualmente quando tiver anexado esse script ao seu game object, porém se você quiser carregar em tempo de execução basta inserir essa linha dentro do método Start():
material2 = Resources.Load("Nome do Material", Material);
Esse método carrega um material correspondente ao nome enviado por parâmetro, lembrando que o material deve estar dentro de uma pasta chamada Resources que deve ser criada dentro da pasta Assets do projeto.
muito bom!!!!
ResponderExcluir