Noticias

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

Ayuda con el collider

Iniciado por telmiuse, Febrero 24, 2016, 05:12:38 PM

Tema anterior - Siguiente tema
Hola buenas, a ver si me explico bien...Tengo un tubo por el cual pasa una bola, el problema es que la bola no se me queda dentro del tubo, no entiendo muy bien como poner el collider, porque por lo que entiendo un objeto no puede estar dentro de el.... alguien tiene una idea de como hacer que la bola no salga del tubo? gracias de antemano!!

Para que choque con el interior necesitas un meshCollider con con las normales invertidas.Hace poco puse uno.
using UnityEngine;
using System.Collections;

public class SetMeshCollider : MonoBehaviour {

void Start(){
   SetCollider();
}
void SetCollider(){


   MeshFilter filter = GetComponent(typeof (MeshFilter)) as MeshFilter;
   if (filter != null)
   {
      Mesh meshCollider = new Mesh ();
         
      meshCollider.vertices = filter.mesh.vertices;
      meshCollider.normals = filter.mesh.normals;
      meshCollider.uv = filter.mesh.uv;
      meshCollider.triangles = filter.mesh.triangles;
      meshCollider.tangents = filter.mesh.tangents;
      meshCollider.Optimize ();

      Vector3[] normals = meshCollider.normals;
      for (int i=0;i<normals.Length;i++)
         normals = -normals;
      meshCollider.normals = normals;

      for (int m=0;m<meshCollider.subMeshCount;m++)
      {
         int[] triangles = meshCollider.GetTriangles(m);
         for (int i=0;i<triangles.Length;i+=3)
         {
            int temp = triangles[i + 0];
            triangles[i + 0] = triangles[i + 1];
            triangles[i + 1] = temp;
         }
         meshCollider.SetTriangles(triangles, m);
      }


      MeshCollider _collider = GetComponent<MeshCollider> ();
      if (_collider != null) {
         _collider.sharedMesh = meshCollider;
      } else
         gameObject.AddComponent<MeshCollider> ().sharedMesh = meshCollider;
   }      

}
}
 

Tenia el mesh, entiendo el scrip pero cuando le pongo el play, el tubo echa la bola fuera .... Gracias por responder amigo ! 

Etiquetas: