Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: telmiuse en Febrero 24, 2016, 05:12:38 PM

Título: Ayuda con el collider
Publicado por: telmiuse en Febrero 24, 2016, 05:12:38 PM
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!!
Título: Ayuda con el collider
Publicado por: hammer en Febrero 24, 2016, 05:31:59 PM
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;
   }      

}
}
 
Título: Ayuda con el collider
Publicado por: telmiuse en Febrero 24, 2016, 05:46:13 PM
Tenia el mesh, entiendo el scrip pero cuando le pongo el play, el tubo echa la bola fuera .... Gracias por responder amigo !