Unity Spain
Post Antiguos => General (Antiguo) => Mensaje iniciado 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!!
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 !