Noticias

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

problemas para arrastrar una caja

Iniciado por R3N3, Agosto 05, 2017, 03:54:48 AM

Tema anterior - Siguiente tema
Hola amigos tengo un problema, tengo un personaje con character controller , necesito mover cajas en el escenario (es un juego sencillo de celular de tipo puzzle) , por ahora lo hago de la siguiente manera , con un trigers stay al presionar un botón , hago a la caja hijo del personaje , por lo que puedo moverlo a cualquier lado , pero cuando ejerso fuerza contra una pared, la caja , el collider, entra un poco en el collider de la pared , y sale disparada la caja

Agosto 05, 2017, 01:20:41 PM #1 Ultima modificación: Agosto 06, 2017, 10:40:01 PM por pioj
El problema puede ser el rigidbody, si la caja tiene rigidbody puedes poner en el fragmento del script donde haces a la caja hija del personaje
 

miCaja.rigidbody.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY;

 
O sino en update:
 



   
      miCaja.rigidbody.velocity = Vector3.zero;
   

[/quote]
 
La primera impide que rigidbody añada fuerzas(force) de movimiento al objeto cuando "choca" con algo, la segunda detiene el movimiento por fuerzas del rigidbody
 
Sino, lo que puedes hacer es colocar manualmente la caja, primero en la posicion/rotamiento del player y luego moverla adelante 
 



   
       
   
   
      miCaja.transfor.position = miPersonaje.transform.position;
   
   
      miCaja.transform.rotation = miPersonaje.transform.rotation;
   
   
      miCaja.transform.position += miCaja.transform.forward * distancia;
   
   
       
   

[/quote]
 
Si aun asi sigue moviendose la caja al chocar con algo(que no deveria) puedes meter el codigo en lateUpdate para asegurarte de que la colocas en su sitio despues de que Phisics haga lo que sea que haga, ya que lateUpdate se ejecuta despues, aunque esto es una chapuza, porque no solucion el problema sino que lo "sobreescribe", deberias poder solucionarlo con lo del rigidbody que te he dicho al principio, pero recuerda al "soltar" la caja cambiar otra vez las constraints del rigidbody

Etiquetas: