Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Abramelin en Octubre 04, 2015, 05:44:50 AM

Título: triggers y colision doble con otro objeto (solucionado)
Publicado por: Abramelin en Octubre 04, 2015, 05:44:50 AM
Tengo un problema con las colisiones y no consigo dar con el fallo. Pongo el codigo:
//script colliders
var colisionador1 : GameObject;
var colisionador2 : GameObject;

var player : GameObject;
var control : GameObject;
var puzle : GameObject;
var trigger : GameObject;

var desb : GameObject;
var animObj1 : GameObject;

var colw1 : boolean = false;
var colw2 : boolean = false;

var luz1 : GameObject;
var luz2 : GameObject;

function OnTriggerStay (Col : Collider){   

     if (Col.gameObject == colisionador1)
     {
     luz1.SetActive(true);
     colw1 = true;
     
     }
     if (Col.gameObject == colisionador2)
     {
     colw2 = true;
     luz2.SetActive(true);
     }
}



function OnTriggerExit (Col : Collider){   

     if (Col.gameObject == colisionador1)
     {
     
     luz1.SetActive(false);
     colw1 = false;
     }
     if (Col.gameObject == colisionador2)
     {
     colw2 = false;
     luz2.SetActive(false);
     }
     
}


function Update (){

if (colw1 == true){
   if (colw2 == true){
   
           desb.SetActive(true);
           trigger.SetActive(false);
           player.SetActive(true);
           control.SetActive(true);
           puzle.SetActive(false);
           animObj1.GetComponent.<Animation>().Play("animcilinsube");
           
           
   }
   
   }

}
Ni la variable colw1 se activa ni la cowl2, le he puesto 2 luces a modo chivato para que me indique cuando entra y sale de la colision, una para cada variable, y no hacen nada. No se si es por haber metido 2 colisiones (colisionador1 y colisionador2) con la misma variable Col. Dejo una imagen orientativa: //script girar
var puzle : GameObject;
var control : GameObject;

var obj1 : GameObject;
var obj2 : GameObject;
var obj3 : GameObject;

var girax : int = 0;
var giray : int = 0;
var giraz : int = 0;

var rueda : int = 1;


function Start()
{
Cursor.lockState = CursorLockMode.Locked;
Cursor.Visible(false);
}
   
function Update()
{

if (rueda < 1){
rueda = 3;
}

if (rueda > 3){
rueda = 1;
}

if(Input.GetButtonDown("L1")){
rueda -= 1;
}

if(Input.GetButtonDown("R1")){

rueda += 1;
}

if(Input.GetButtonDown("accion")){
           
         if (rueda == 1)  {
      obj1.transform.Rotate(girax, giray, giraz);
            }
           
          if (rueda == 2)  {
      obj2.transform.Rotate(girax, giray, giraz);
            }  
          if (rueda == 3)  {
      obj3.transform.Rotate(girax, giray, giraz);
            }  
}
if(Input.GetButtonDown("Jump")){
           
         if (rueda == 1)  {
      obj1.transform.Rotate(-girax, -giray, -giraz);
            }
           
          if (rueda == 2)  {
      obj2.transform.Rotate(-girax, -giray, -giraz);
            }  
          if (rueda == 3)  {
      obj3.transform.Rotate(-girax, -giray, -giraz);
            }  
}

if(Input.GetButtonDown("mapa")){
           
            control.SetActive(true);
           
            player.SetActive(true);
           
            puzle.SetActive(false);
           
}
}      
   Solucionado: Se me olvidaron los riggidbody, pido perdon por el retraso