Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Scrip para cambiar un GameObject por otro

Iniciado por Centauro5legs, Julio 11, 2015, 03:04:17 AM

Tema anterior - Siguiente tema
Julio 11, 2015, 03:04:17 AM Ultima modificación: Mayo 30, 2016, 05:02:16 AM por pioj
Tengo un arreglo de gameObject y quiero cambiar un GameObject que tengo en mi codigo, por uno de mi lista. Mi función esta más o menos así;
 

using UnityEngine;
using System.Collections;
         public class EditPlayer: MonoBehaviour {
 
         public gameObject [] Objetos;
 
         public void cambiarobject (int indice){
 
                 Objeto = gameObject.Find("modelo");
                 Objeto = Objetos [indice];
         }
}

 
 
 
Pero obviamente no me funciona, alguien me puede decir porque? (% el arreglo de gameObject's lo cargo en la interfaz gráfica del Unity)

Que quieres cambiar o instanciar un gameObject?
Porque ahi estas asignando valores a Objeto dos veces.

El chiste es que quiero que mi personaje se cambia la armadura, en este caso tengo una lista de GameObject's con todos los Modelos con los que cuenta mi juego, este Scrip es para cambiarlos

Entonces ese no es el camino, primeramente deberias destruir/ocultar el objeto que quieres remplazar y luego instanciar/mostrar el objeto que quieras poner.
En youtube hay muchos tutoriales de esto, echale una visita

Te lo escribo en PseudoCodigo varias cosillas sueltas como dice @GSG3D

variable ArmaduraActual = Crear(ArmaduraInicial...)
funcion cambiarArmadura(Armadura){
Destruir(ArmaduraActual);
ArmaduraActual = Crear(Armadura);
}

Visita http://www.programacionwh.com encontraras tutoriales y muchas cosas .


Tambien puedes visitar mi canal de YouTube https://www.youtube.com/channel/UClSCTn0wPN1iFjED0yaoJUA



Julio 12, 2015, 01:26:36 AM #5 Ultima modificación: Mayo 30, 2016, 05:01:32 AM por pioj
De hecho si pude, un amigo del trabajo me ayudo con el código y quedo así;
 

using UnityEngine;
using System.Collections;
         public class EditPlayer: MonoBehaviour {
 
         public gameObject [] Mayas;
         public gameObject Maya;
         public string Objeto;
 
         public void ChangedModel (int indice)
         {
                  Maya = GameObject.Find (Objeto);
                  Maya = (GameObject)Instantiate (Mayas [indice], transform.position, transform.rotation);
                  Maya.transform.parent = GameObject.Find ("Body").transform;
                  Maya.transform.localPosition = Mayas [indice].transform.localPosition;
                  Maya.transform.localRotation = Mayas [indice].transform.localRotation;
                  Maya.transform.localScale = Mayas [indice].transform.localScale;
                  Destroy (GameObject.Find (Objeto));
                  Maya.name = Objeto;
         }
}  

 
               

Etiquetas: