[Resolvido] Material nao quer setar
4 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[Resolvido] Material nao quer setar
Quero mudar os materiais de uma mesh mas nao esta dando certo nao sei o pq
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EfeitoSayan : MonoBehaviour {
[Space(5)]
public bool Transformar, Normal, SS1, SS2, SS3, SS4, SS5;
[Space(20)]
public SkinnedMeshRenderer MeshCorpo;
[Tooltip("Cada cabelo equivale ao numero de sua transformaçao")]
public GameObject[] Cabelos;
public SkinnedMeshRenderer Rabo;
[Space(20)]
[Tooltip("o material cada um substitui o seu numero corespondente na mesh")]
public Material[] MateriasN,MateriasSS123,MateriasSS4,MateriasSS5;
[Space(20)]
[Tooltip("Material do rabo")]
public Material[] MateriaisRabo;
[Space(20)]
[Tooltip("os materias do corpo serve apenas para ver se os materiais estao certos ")]
public Material[] MateriasCorpo;
void Start () {
// Ativa e desativa os cabelos
Cabelos [0].SetActive (true);
Cabelos [1].SetActive (false);
Cabelos [2].SetActive (false);
Cabelos [3].SetActive (false);
Cabelos [4].SetActive (false);
Cabelos [5].SetActive (false);
}
void Update () {
MateriasCorpo = MeshCorpo.materials;
// Quando tranformar
if (Transformar) {
if (Normal|| SS1 || SS2 || SS3) {
// Modifica os materiais do corpo
MeshCorpo.materials [0] = MateriasSS123 [0];
MeshCorpo.materials [1] = MateriasSS123 [1];
MeshCorpo.materials [2] = MateriasSS123 [2];
MeshCorpo.materials [3] = MateriasSS123 [3];
MeshCorpo.materials [4] = MateriasSS123 [4];
MeshCorpo.materials [5] = MateriasSS123 [5];
MeshCorpo.materials [6] = MateriasSS123 [6];
MeshCorpo.materials [7] = MateriasSS123 [7];
}
// Normal
if (Normal) {
// Ativa e desativa os cabelos
Cabelos [0].SetActive (true);
Cabelos [1].SetActive (false);
Cabelos [2].SetActive (false);
Cabelos [3].SetActive (false);
Cabelos [4].SetActive (false);
Cabelos [5].SetActive (false);
}
// Super Sayan
if (SS1) {
// Ativa e desativa os cabelos
Cabelos [0].SetActive (false);
Cabelos [1].SetActive (true);
Cabelos [2].SetActive (false);
Cabelos [3].SetActive (false);
Cabelos [4].SetActive (false);
Cabelos [5].SetActive (false);
}
// Super Sayan 2
if (SS2) {
// Ativa e desativa os cabelos
Cabelos [0].SetActive (false);
Cabelos [1].SetActive (false);
Cabelos [2].SetActive (true);
Cabelos [3].SetActive (false);
Cabelos [4].SetActive (false);
Cabelos [5].SetActive (false);
}
// Super Sayan 3
if (SS3) {
// Ativa e desativa os cabelos
Cabelos [0].SetActive (false);
Cabelos [1].SetActive (false);
Cabelos [2].SetActive (false);
Cabelos [3].SetActive (true);
Cabelos [4].SetActive (false);
Cabelos [5].SetActive (false);
}
// Super Sayan 4
if (SS4) {
// Ativa e desativa os cabelos
Cabelos [0].SetActive (false);
Cabelos [1].SetActive (false);
Cabelos [2].SetActive (false);
Cabelos [3].SetActive (false);
Cabelos [4].SetActive (true);
Cabelos [5].SetActive (false);
// Modifica os materiais do corpo
MeshCorpo.materials [0] = MateriasSS4 [0];
MeshCorpo.materials [1] = MateriasSS4 [1];
MeshCorpo.materials [2] = MateriasSS4 [2];
MeshCorpo.materials [3] = MateriasSS4 [3];
MeshCorpo.materials [4] = MateriasSS4 [4];
MeshCorpo.materials [5] = MateriasSS4 [5];
MeshCorpo.materials [6] = MateriasSS4 [6];
MeshCorpo.materials [7] = MateriasSS4 [7];
Rabo.materials[0] = MateriaisRabo [0];
}
// Super Sayan 5
if (SS5) {
// Ativa e desativa os cabelos
Cabelos [0].SetActive (false);
Cabelos [1].SetActive (false);
Cabelos [2].SetActive (false);
Cabelos [3].SetActive (false);
Cabelos [4].SetActive (false);
Cabelos [5].SetActive (true);
// Modifica os materiais do corpo
MeshCorpo.materials [0] = MateriasSS5 [0];
MeshCorpo.materials [1] = MateriasSS5 [1];
MeshCorpo.materials [2] = MateriasSS5 [2];
MeshCorpo.materials [3] = MateriasSS5 [3];
MeshCorpo.materials [4] = MateriasSS5 [4];
MeshCorpo.materials [5] = MateriasSS5 [5];
MeshCorpo.materials [6] = MateriasSS5 [6];
MeshCorpo.materials [7] = MateriasSS5 [7];
}
}
}
}
Re: [Resolvido] Material nao quer setar
cara eu me perdi todo..mas blz
vamos ver se entendi algo
no If(ss1 (ou seja la qual for o numero))
nao deveria ter um == true/false?
tipo
if(ss1 == true){
acontece
}
entende?
pq pelo que vi...buguei
vamos ver se entendi algo
no If(ss1 (ou seja la qual for o numero))
nao deveria ter um == true/false?
tipo
if(ss1 == true){
acontece
}
entende?
pq pelo que vi...buguei
Re: [Resolvido] Material nao quer setar
kkkk cara nao é necessario colocar o true e o false, se vc colocar ao nome da variavel bool, ela significa true e se quiser negar se coloca o "!" na frente da variavel , serve o null tambem
Re: [Resolvido] Material nao quer setar
Use:
- Código:
MeshCorpo.materials = Materiais; //"Materiais" deve ser uma variavel do tipo array, e você deve modificar a variavel "Materiais" antes de joga-la dentro da Mesh, exemplo: Materiais[]{mat1, mat2, mat3};
//Tive problema com isso ontem. Acontece que se você não setar todos os materias de uma vez, eles não setam. Então deve ser setado dessa forma.
Re: [Resolvido] Material nao quer setar
Este tópico foi criado no local incorreto e foi movido. Vamos manter a organização do fórum.
JohnRambo- Moderador
- PONTOS : 5174
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Re: [Resolvido] Material nao quer setar
mas como assim foi postado em duvida pode me explicar onde deveria ser postado ?John Rambo escreveu:Este tópico foi criado no local incorreto e foi movido. Vamos manter a organização do fórum.
Re: [Resolvido] Material nao quer setar
setar todo o array de uma vez , entao tem que usar um for ?marcos4503 escreveu:Use:
- Código:
MeshCorpo.materials = Materiais; //"Materiais" deve ser uma variavel do tipo array, e você deve modificar a variavel "Materiais" antes de joga-la dentro da Mesh, exemplo: Materiais[]{mat1, mat2, mat3};
//Tive problema com isso ontem. Acontece que se você não setar todos os materias de uma vez, eles não setam. Então deve ser setado dessa forma.
Re: [Resolvido] Material nao quer setar
Não, For não funciona tambem, pra setar a Array toda de uma vez, é só fazer como eu disse..
Primeiro crie uma variavel do tipo "Material". Ela deve ser uma array.
Em seguida, edite a variavel armazenando os materiais que quer que ela armazene. Exemplo:
Primeiro crie uma variavel do tipo "Material". Ela deve ser uma array.
Em seguida, edite a variavel armazenando os materiais que quer que ela armazene. Exemplo:
- Código:
Material[] materiais = new Material[]{material1, material2, material3}
- Código:
MeshCorpo.materials = materiais
Re: [Resolvido] Material nao quer setar
Dom3000 escreveu:mas como assim foi postado em duvida pode me explicar onde deveria ser postado ?John Rambo escreveu:Este tópico foi criado no local incorreto e foi movido. Vamos manter a organização do fórum.
Eu encontrei este tópico em "Formação de equipe" amigo. Mas agora já está na área correta.
JohnRambo- Moderador
- PONTOS : 5174
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Re: [Resolvido] Material nao quer setar
cara entao tem algum bug, pois eu coloquei em duvida, sempre que posto vc me diz o mesmo kkk, mas eu marco o botanzinho como duvida e coo que vai como formaçao de equipe :arrow:
Tópicos semelhantes
» [RESOLVIDO] Mudar cor de um material
» [RESOLVIDO] Ajuda com material na UI
» [RESOLVIDO] Como setar parente
» [RESOLVIDO] como setar uma variável Int através do MouseScroll?
» [RESOLVIDO] Como setar um valor de um animator no script.
» [RESOLVIDO] Ajuda com material na UI
» [RESOLVIDO] Como setar parente
» [RESOLVIDO] como setar uma variável Int através do MouseScroll?
» [RESOLVIDO] Como setar um valor de um animator no script.
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos