• Home
  • -
  • Unity : détecter les verticles

Unity : détecter les verticles

Pour Good morning fox, le personnage ne peut pivoter que lorsqu'il est au dessus d'un vertex de la sphére 3D qui représente le sol de la planéte. A chaque frame il faut donc détecter les verticles les plus proches

Vector3 GetNearestMeshVertice (Vector3 point) {

  float minDistanceSqr = Mathf.Infinity;
  Vector3 nearestVertex = new Vector3 (0, 0, 0);

  foreach (Vector3 vertex in PlanetVertices) {
      Vector3 diff = point - transform.TransformPoint (vertex);
      float distSqr = diff.sqrMagnitude;

      if (distSqr < minDistanceSqr) {
          minDistanceSqr = distSqr;
          nearestVertex = vertex;
      }
  }

  if (minDistanceSqr > rotateColliderMaxDistance)
      GameManager.overLimit ();

  return nearestVertex;

}