Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: 0c0de en Junio 17, 2015, 10:10:08 PM

Título: Problema con funcion OnCollisionEnter()
Publicado por: 0c0de en Junio 17, 2015, 10:10:08 PM
Solucionado
 

vereis el problema que tengo es que no me reconoce bien las colisiones de un gameobject o sea de un cubo primero lo hice con un el box collider que lleva de serie el cubo pero no funcionaba le asigne un rigidbody y si me funciona pero no a la misma vez el problema es que me las detecta solo si le doy en las esquinas o en la parte de abajo si le doy en el centro no pasa nada bueno pongo el codigo para que me podais decir en que me he equivocado

using UnityEngine;
using System.Collections;
public class DanoBala : MonoBehaviour {
private float vida;
private float dano;
// Use this for initialization
void Start () {
   vida = 100;
   dano = 20;
}

// Update is called once per frame
void Update () {

}
void OnCollisionEnter(Collision colision){
   if(colision.collider.tag == "enemigo"){
      Debug.Log (vida -= dano);
      Debug.Log ("Hay Contacto");
   }
   else{
      Debug.Log ("No hay contacto");
   }
}
}
Título: Problema con funcion OnCollisionEnter()
Publicado por: ramunda en Junio 18, 2015, 08:58:19 AM
Cita de: 0c0de date=1434571808 
vereis el problema que tengo es que no me reconoce bien las colisiones de un gameobject o sea de un cubo primero lo hice con un el box collider que lleva de serie el cubo pero no funcionaba le asigne un rigidbody y si me funciona pero no a la misma vez el problema es que me las detecta solo si le doy en las esquinas o en la parte de abajo si le doy en el centro no pasa nada bueno pongo el codigo para que me podais decir en que me he equivocado

using UnityEngine;
using System.Collections;
public class DanoBala : MonoBehaviour {
private float vida;
private float dano;
// Use this for initialization
void Start () {
   vida = 100;
   dano = 20;
}

// Update is called once per frame
void Update () {

}
void OnCollisionEnter(Collision colision){
   if(colision.collider.tag == "enemigo"){
      Debug.Log (vida -= dano);
      Debug.Log ("Hay Contacto");
   }
   else{
      Debug.Log ("No hay contacto");
   }
}
}

Buenos dias , has probado a poner  la pestaña is triger?? en el box colider me refiero,comentas que el cubo llevaba uno de serie, quilato asegúrate de que no queden 2 box coliders,  el rigid body si es un cubo lo unico que te va a dar son problemas( o no) pero no afecta realmente a la colision , asegúrate no obstante de que el rigid no lleva gravedad ni kinetic.
 
También se me ocurre si has dejado bastante espacio de box collider osea ensanchado el radio de el mismo y no haberlo dejado pegado al cubo.
 
P.D, el cubo es un cubo asesino parece ser no?, le quita vida al enemigo cunado cocha con el.
 
Espero que sea algo de esto...es lo que se me ocurre asi de primeras que aun estoy sin el cafe .
 
Ya nos contaras . Suerte
Título: Problema con funcion OnCollisionEnter()
Publicado por: mrpacogp en Junio 18, 2015, 10:13:52 AM
También comprueba la escala del objeto y del coliders ya que si opera por debajo de 0.5 pueden fallar las físicas.
Enviado desde mi SM-N910F mediante Tapatalk
Título: Problema con funcion OnCollisionEnter()
Publicado por: 0c0de en Junio 18, 2015, 08:49:32 PM
Nada no consigo hacer que funcione esto es una rayada de cabeza
Título: Problema con funcion OnCollisionEnter()
Publicado por: Mantis en Junio 18, 2015, 08:59:50 PM
Dices que funciona a veces.  Para disparar contra algo (usando una bala física) necesitas  la bala con (rigidbody y collider) y un objetivo con collider (no hace falta rigidbody).
 
A que velocidad se mueve la bala? si es muy alta pueden fallar las físicas. Gradúa la velocidad...También debes ponerle continuous dinamic e interpolate a la bala
Título: Problema con funcion OnCollisionEnter()
Publicado por: 0c0de en Junio 19, 2015, 06:11:56 PM
Ya lo he conseguido solucionar al final he hecho lo que menos queria hacer crear un nuevo proyecto pasarlo todo a ese nuevo proyecto y despues le he vuelto a poner los colliders y tambien he hecho lo que ha dicho el compañero mantis
 
Muchas gracias por intentarlo