Noticias

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

Temas recientes

coger y soltar objeto con una pinza tipo grua..

Iniciado por Chesterfield, Febrero 19, 2019, 05:53:59 PM

Tema anterior - Siguiente tema
Febrero 19, 2019, 05:53:59 PM Ultima modificación: Febrero 20, 2019, 01:45:56 AM por pioj
Hola estoy intentando coger un objeto de muchos..por su tag..con una grua que tiene en la punta una especie de pinza y dos sensores en cada lado..soy capar de cogerlo cuando los sensores estan activos los dos ..pero luego no soy capaz de soltar el objeto al abrir la pinza se queda siempre pegado esto estoy usando para coger el objeto:
 
me estoy volviendo loco de probar cosas pero no soy capaz joder.....
 

private void OnCollisionEnter(Collision micollision)
    {
        var colisioncon = micollision.contacts[0].otherCollider.name;// obtiene el nobre del objeto con el que choca
        
        Transform ignorepinzainferior = GameObject.Find("pinzaInferior").transform;
        Transform ignorepinzasuperior = GameObject.Find("pinzaSuperior").transform;
        Transform ignorecubocolision = GameObject.Find("cubocolision").transform;
        Transform ignorecubocolision2 = GameObject.Find("cubocolision2").transform;
        Physics.IgnoreCollision(ignorepinzainferior.GetComponent<Collider>(), ignorecubocolision.GetComponent<Collider>());
        Physics.IgnoreCollision(ignorepinzasuperior.GetComponent<Collider>(), ignorecubocolision.GetComponent<Collider>());
        Physics.IgnoreCollision(ignorecubocolision2.GetComponent<Collider>(), ignorecubocolision.GetComponent<Collider>());
        Transform cubocogido = GameObject.Find(colisioncon).transform;
        Transform cojo = GameObject.Find("pegamentoDumy").transform;
print("colision con: " + colisioncon);// pinta el nombre del objeto con el que choca
if (micollision.gameObject.CompareTag("cubo")) 
        {
        cogido = true;   
        }
       
        if ((cogido == true) && (coger2.cogido2 == true) && controlok.abriendopinza == false)
        {
            
            cubocogido.GetComponent<Rigidbody>().isKinematic = true;
            cubocogido.GetComponent<Rigidbody>().useGravity = false;
            cubocogido.SetParent(cojo,true);
            
            print("tengo " + cubocogido);
           
        }
 
  //*****************  esto para intentar soltar el cubo pero no sale******************
 if (controlok.abriendopinza == true)
            {
            
            cubocogido.parent = null;
            cubocogido.GetComponent<Rigidbody>().isKinematic = false;
            cubocogido.GetComponent<Rigidbody>().useGravity = true;
           
        }

 
 

Febrero 19, 2019, 09:46:29 PM #1 Ultima modificación: Febrero 20, 2019, 01:46:15 AM por pioj
Te sirve:
 



   
      Transform cubocogido = null; ?
   

[/quote]
 
Intenta hacer lo mismo que usaste para ponerlo en la punta de la grúa pero al revés, psdt: intenta que el objeto que intentas mover no pase a ser un hijo de tu grúa, podrías usar un empty vacío y poner que el objeto se mueva al igual que éste, y al tomarlo o soltarlo solo usas animaciones y igualas los transform (algo así como un enemigo que sigue al jugador)


Etiquetas: