como faço para transformar uma list em Array?
2 participantes
Página 1 de 1
como faço para transformar uma list em Array?
estou com u problema não consigo setar o seguinte
nao consigo setar o material Skinmesh.materials=MaterialAtual;
pois o material atual é uma list e o Skinmesh.materials é array; obg
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AdicionarMaterial : MonoBehaviour {
MeshRenderer Mesh;
SkinnedMeshRenderer SkinMesh;
[Tooltip("Os materiais que seram adicionados ao obj")]
public List<Material> MateriaisADD;
[Space(30)]
public bool AdicionarMat;
List<Material>MaterialOriginal;
List<Material> MaterialAtual;
void Start () {
SkinMesh = GetComponent<SkinnedMeshRenderer> ();
Mesh = GetComponent<MeshRenderer> ();
if(SkinMesh){
Material[] mats = SkinMesh.materials;
for (int e = 0; e < mats.Length; e++) {
if (!MaterialOriginal.Contains (mats [e])) {
MaterialOriginal.Add (mats [e]);
}
}
}
if(Mesh){
Material[] mats = Mesh.materials;
for (int e = 0; e < mats.Length; e++) {
if (!MaterialOriginal.Contains (mats [e])) {
MaterialOriginal.Add (mats [e]);
}
}
}
for (int e = 0; e < MaterialOriginal.Count; e++) {
if (!MaterialAtual.Contains (MaterialOriginal [e])) {
MaterialAtual.Add (MaterialOriginal [e]);
}
}
}
void Update () {
if (AdicionarMat) {
for (int e = 0; e < MateriaisADD.Count+MaterialOriginal.Count; e++) {
if (!MaterialAtual.Contains (MateriaisADD [e])) {
MaterialAtual.Add (MateriaisADD [e]);
}
}
} else {
for (int e = 0; e < MaterialAtual.Count; e++) {
if (!MaterialAtual.Contains (MateriaisADD [e])) {
MaterialAtual.Remove (MateriaisADD [e]);
}
}
}
if(SkinMesh){
SkinMesh.materials= MaterialAtual;
}
if(Mesh){
}
}
}
nao consigo setar o material Skinmesh.materials=MaterialAtual;
pois o material atual é uma list e o Skinmesh.materials é array; obg
Re: como faço para transformar uma list em Array?
Dom3000 escreveu:estou com u problema não consigo setar o seguinte
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AdicionarMaterial : MonoBehaviour {
MeshRenderer Mesh;
SkinnedMeshRenderer SkinMesh;
[Tooltip("Os materiais que seram adicionados ao obj")]
public List<Material> MateriaisADD;
[Space(30)]
public bool AdicionarMat;
List<Material>MaterialOriginal;
List<Material> MaterialAtual;
void Start () {
SkinMesh = GetComponent<SkinnedMeshRenderer> ();
Mesh = GetComponent<MeshRenderer> ();
if(SkinMesh){
Material[] mats = SkinMesh.materials;
for (int e = 0; e < mats.Length; e++) {
if (!MaterialOriginal.Contains (mats [e])) {
MaterialOriginal.Add (mats [e]);
}
}
}
if(Mesh){
Material[] mats = Mesh.materials;
for (int e = 0; e < mats.Length; e++) {
if (!MaterialOriginal.Contains (mats [e])) {
MaterialOriginal.Add (mats [e]);
}
}
}
for (int e = 0; e < MaterialOriginal.Count; e++) {
if (!MaterialAtual.Contains (MaterialOriginal [e])) {
MaterialAtual.Add (MaterialOriginal [e]);
}
}
}
void Update () {
if (AdicionarMat) {
for (int e = 0; e < MateriaisADD.Count+MaterialOriginal.Count; e++) {
if (!MaterialAtual.Contains (MateriaisADD [e])) {
MaterialAtual.Add (MateriaisADD [e]);
}
}
} else {
for (int e = 0; e < MaterialAtual.Count; e++) {
if (!MaterialAtual.Contains (MateriaisADD [e])) {
MaterialAtual.Remove (MateriaisADD [e]);
}
}
}
if(SkinMesh){
SkinMesh.materials= MaterialAtual;
}
if(Mesh){
}
}
}
nao consigo setar o material Skinmesh.materials=MaterialAtual;
pois o material atual é uma list e o Skinmesh.materials é array; obg
Public GameObject[] objec;
Public GameObject[] Objects.
List<GameObject> tmpObj = new List<GameObject>();
for (int i = 0; i < objec.Length; i++){ // pega todos os objetos de uma array;
tmpObj.Add(objec[i]); // adiciona todos os objetos da array para uma lista;
}
Objects = tmpObj.ToArray(); // retorna todos os objetos desta lista para dentro de uma nova array;
espero ter ajudado!
Tópicos semelhantes
» [RESOLVIDO] como eu faço para criar uma musica para meu jogo?
» Como faço para variável voltar para o valor inicial
» Como faço para criar Fisica Real para carros - Unity
» Como faço para mudar a posição de um objeto para perto de outro.
» Como Faço Para Meu Jogo Ir Para Area Jogos Do Forum?
» Como faço para variável voltar para o valor inicial
» Como faço para criar Fisica Real para carros - Unity
» Como faço para mudar a posição de um objeto para perto de outro.
» Como Faço Para Meu Jogo Ir Para Area Jogos Do Forum?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos