Noticias

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

Cambiar un prefab por otro, AYUDA!!!

Iniciado por sebasfreelance, Marzo 25, 2017, 07:12:57 PM

Tema anterior - Siguiente tema
Saludos, alguien me puede echar una mano plis, necesito un script (estoy harto de buscar y no encuentro nada), que cuando apunte con la cámara a un objeto (prefab), supongo que sera a través de raycast, pueda cambiar dicho prefab por otro pulsando una tecla,  no se como hacerlo, no soy programador, necesito ayuda con esto, por que estoy superatascado con un proyecto que estoy haciendo por entretenerme y jugar con unity.
 
muchas gracias!

Entretienete aprendiendo conceptos primero.
 
Prefabs: Objecto que no se encuentra dentro de una escena, si no más bien como asset un inactivo.

GameObject: Object que se encuentra dentro de una escena, por lo general cuentan con el componente Transform
 
La pregunta seria. ¿Cómo puedo reemplazar un GameObject por otro?
 
Ahora explicar esto que es sumamente simple puede ser complicado si no entiendes nada de programacion, y  por la complejidad de la pregunta deduzco que no sabes absolutamente nada (Sin ofender).
 
Te dejo un poco de código para que investigues y trates de hacerlo por tus medios.
 

public GameObject MisPrefab;
private void OnRayCast()
{
//Lanzar rayoo
//Detectar Colision
OnReplaceObject(colision.gameObject, MisPrefab)
}
private void OnReplaceObject(GameObject a, GameObject to)
{
//Mantener en variable todos los valores de interes del Objeto a.
DestroyInmediate(a);
Instantiate(b)
//Setear todos los valores que anterioirmente tomamos en el objecto b.
}

 
 

Gracias francoe1, no ofendes, dices la verdad, no tengo ni idea de programación ;), soy animador http://animo3d.com y llevo poco tiempo con unity, pero me parece una pasada las posibilidades que brinda Unity, pero que es un prefab ahí llego :), por eso necesito que sea un prefab, no un objeto que este cargado en la scene, dándole vueltas a lo que quiero hacer a lo mejor es tan fácil como desactivar el rigidbody del GameObject, pero voy a investigar lo que has comentado, de nuevo gracias por tu ayuda, un saludo!

Marzo 26, 2017, 07:18:03 PM #3 Ultima modificación: Marzo 26, 2017, 07:37:55 PM por pioj
Bueno, no se si es la manera más correcta de hacerlo, pero funciona...
 

function Update(){
    if (Input.GetMouseButtonDown()){ 
        var hit: RaycastHit;
        var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        if (Physics.Raycast(ray, hit)){
        
        Destroy(hit.transform.GetComponent.<Rigidbody>());
        }
    }
  
}

 
con esto consigo lo que estaba buscando!
 
un saludo!

Etiquetas: