Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: sebasfreelance en Marzo 25, 2017, 07:12:57 PM

Título: Cambiar un prefab por otro, AYUDA!!!
Publicado por: sebasfreelance en Marzo 25, 2017, 07:12:57 PM
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!
Título: Cambiar un prefab por otro, AYUDA!!!
Publicado por: francoe1 en Marzo 25, 2017, 09:57:04 PM
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.
}

 
 
Título: Cambiar un prefab por otro, AYUDA!!!
Publicado por: sebasfreelance en Marzo 26, 2017, 11:37:24 AM
Gracias francoe1, no ofendes, dices la verdad, no tengo ni idea de programación ;), soy animador http://animo3d.com (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!
Título: Cambiar un prefab por otro, AYUDA!!!
Publicado por: sebasfreelance en Marzo 26, 2017, 07:18:03 PM
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!