Unity: Evitar duplicado de gizmos

mTr

Buenas tardes, venia a ver si alguien me podría resolver una duda. Mi problema deriva de usar varias cámaras con diferentes modos (persp., orthog.) o escalas ya que al intentar dibujar una linea, en este caso, para saber si el 'heroe' toca suelo, resulta que me muestra esta linea en ambas camaras.

Se que esto solo ocurre en el editor, y que no molestara una vez se exporte, pero es un poco molesto trabajar con ellos. Realmente mi código no se ejecuta mediante Gizmo, sino mediante Debug:

Debug.DrawRay(transform.position, -transform.up * 0.01f, ((tocaSuelo) ? Color.red : Color.cyan));

No se si puede deberse a eso. Aun así, no solo es esta linea la que se muestra duplicada, que es lo único que yo añadí respecto a gizmos, si no que al seleccionar los diferentes GameObjects, también muestra duplicados los gizmos de los colliders.

He googleado un buen rato, y he encontrado varios códigos para arreglar esto, pero se basan en OnDrawGizmos() y hay que poner este código en todas las clases. Creo que la comunidad ya ha pedido varias veces una layer para los gizmos, pero no se ve nada próximo esta feature... o algo me he perdido.

Hay alguna forma de asignar una cámara para todos los gizmos, o algo así ? Que trucos usáis para evitar este problema ?

Gracias de antemano, y felicidades por el nuevo subforo, muy interesante todo!

r2d2rigo

Y si en el OnDrawGizmos compruebas que Camera.active sea la que tu quieres y si es asi dibujos el gizmo no te funciona?

mTr

Si, esa es la solución temporal que encontré, pero solo valida para mis gizmos, los de los componentes de unity parece que no tengo forma de controlarlos, como los colliders como dije arriba. Si tengo que poner eso en cada clase, no me parece mal, pero era por saber si había otra forma de resolver esto.

Usuarios habituales

  • mTr
  • r2d2rigo