Noticias

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

Acceder a Otro RigidBody

Iniciado por manux, Marzo 26, 2017, 12:30:17 PM

Tema anterior - Siguiente tema
Marzo 26, 2017, 12:30:17 PM Ultima modificación: Marzo 26, 2017, 12:34:15 PM por manux
Buenas a todos, estoy intentando acceder un RigidBody a otro Script para que cuando detecte un OnMouseDown el RigidBody haga algo.
 
Os dejo lo que intento hacer:
 

public Rigidbody rigi;
void Awake(){
rigi = GetComponent<Rigidbody>();
}
     
void OnMouseDown(){
// Accion para ese RigidBody
}

 
Recordar, que lo que intento es acceder al un RigidBody que no tiene el script asignado, el script esta en el que intento hacer el OnMouseDown.
 
Saludos.

Si lo que quieres hacer es acceder al rigidbody de otro GameObject lo puedes hacer asi
 

//Método 1 - Buscando el GameObject por nombre
private Rigidboyd rigid;
private void Awake () {
rigid = GameObject.Find("nombreDelOtroGameObject").GetComponent<Rigidbody>();
}
private void OnMouseDown () {
    //Accion del rigidbody
}
//Método 2 - Asignando el GameObject en una variable
public GameObject target;
private Rigidbody rigid;
private void Awake () {
    rigid = target.GetComponent<Rigidbody>();
}
private void OnMouseDown () {
//Accion del rigidbody
}

 
 
 
Si no querias eso no he entendido tu pregunta

Marzo 26, 2017, 02:51:17 PM #2 Ultima modificación: Marzo 26, 2017, 03:05:22 PM por manux
Me lo reconoce perfectamente así, lo que necesito cogerlo desde otro script, si lo pongo publico y se lo añado manualmente a la hora de iniciar el juego me los elimina y tengo que volverlos a insertar manualmente, cosa que eso hace que juego no funcione ya que se inicia sin el script.
 
Osea ese rigidbody lo intento cojer de otro script.
 
EDITO:
 
Vale ahora si me ha funcionado, lo que me faltaba es también acceder al script:
 

private ControladorPersonaje controlador;
private Rigidbody personaje;
void Awake(){
  controlador = GameObject.Find("Personaje").GetComponent<ControladorPersonaje>();
  personaje = GameObject.Find("Personaje").GetComponent<Rigidbody>();
}

 
Gracias @Jose134 por tu aporte :D

Etiquetas: