Unity Spain

Mesa de ayuda => Unity3D => Scripting => Mensaje iniciado por: Alex en Noviembre 24, 2019, 04:31:50 PM

Título: Detectar objetos sin Collider
Publicado por: Alex en Noviembre 24, 2019, 04:31:50 PM
Hay alguna manera de detectar un objeto sin necesidad de agregarle un Collider? En mi proyecto constantemente voy a usar objetos y no quiero agregar a cada uno un mesh Collider ya que algunas veces la cantidad de objetos será enorme y no quisiera que la escena se tilde al agregar todos esos collider por código a cada objeto. Tengo un script que selecciona con ayuda de Raycast, pero éste solo funciona si el objeto tiene un collider. Algo referente sucede al usar el editor de Unity, puedes seleccionar cualquier objeto en la escena y estos muchas veces hasta solo contienen un transform y mesh.
Título: Detectar objetos sin Collider
Publicado por: iRobb en Noviembre 24, 2019, 06:16:46 PM
Si utilizas colliders sencillos como un box collider no creo que tengas problemas. De todos modos y ya que lo haces por código, pruébalo.
Título: Detectar objetos sin Collider
Publicado por: pioj en Noviembre 24, 2019, 06:23:33 PM
Por poder, puedes hacerlo por pase de coordenadas, si sabes dónde está cada objeto y lo que mide en pantalla...
Título: Detectar objetos sin Collider
Publicado por: Alex en Noviembre 24, 2019, 10:55:22 PM
Gracias por las respuestas @pioj creo que estaría difícil saber las coordenadas de los objetos, porque estos serán importados por el usuario y no se sabrá con exactitud que objetos son los que importarán. Creo que veo conveniente usar mesh Collider, porque si uso box, los colisionadores sobresaldrán de el mesh original y eso hará que al usar Raycast para seleccionar un objeto, no sea preciso. Entonces, como mencioné anteriormente, los usuarios importarán sus modelos 3d y no se puede saber si éste modelo será de pocos objetos o muchos, en caso de que sean muchos, cada uno tendrá que llevar su Collider para poder ser seleccionado con el Raycast, y como es Collider de tipo mesh puede que cause lentitud en la escena mientras se añaden a los objetos. Como podría hacer que esta carga sea fluida?
 
•Se me acaba de ocurrir que antes de instanciar la escena,  podría haber un panel de carga y que en este momento todos los meshcollider sean agregados, así el usuario no verá el lag en su escena, si no un panel. Es una buena idea? O mejor que todo sea hecho mientras el usuario interactúa con la escena?
Título: Detectar objetos sin Collider
Publicado por: iRobb en Noviembre 24, 2019, 10:57:29 PM
Yo entendía que tu problema era por tener tantos mesh con collider, no con la carga previa. Evidentemente cargarlos antes y utilizar colliders simples.
Título: Detectar objetos sin Collider
Publicado por: Alex en Noviembre 24, 2019, 11:03:58 PM
@iRobb inicialmente pensaba en hacer la llamada de importe sea en la misma escena, pero pensando a futuro cuando alguien intente importar un archivo grande, pues sí suena obvio cargarlos antes, de igual forma, sus respuestas me ayudaron a encontrar una solución clara
Título: Detectar objetos sin Collider
Publicado por: iRobb en Noviembre 24, 2019, 11:12:02 PM
Me alegro. A ver cómo te sale 
 
 
Título: Detectar objetos sin Collider
Publicado por: zelleGames en Noviembre 24, 2019, 11:27:39 PM
Tambien puedes ponerle una misma etiqueta a los objetos  y buscarlos por esa etiqueta.