Jump to content
Sign in to follow this  
sebasfreelance

Cambiar un prefab por otro, AYUDA!!!

Recommended Posts

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!

Share this post


Link to post
Share on other sites

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.
}

 

Share this post


Link to post
Share on other sites

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!

Share this post


Link to post
Share on other sites

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!

Edited by pioj
Usa el <> para pegar código...

Share this post


Link to post
Share on other sites
Sign in to follow this  

UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...