Author Topic: Error al obtener surface.name de ColissionInfo  (Read 355 times)

Andrés Laurito   «   on: January 06, 2015, 08:54:40 AM »
Holaa !, estoy teniendo un problema con la superficie devuelta en el  CollisionInfo del evento MouseEvent3D. El error ocurre en la siguiente situacion :

Tengo una escena con un Mesh3D la cual tiene 9 superficies, nombradas estas con numeros del 30 al 38. A este Mesh3D le agrego un listener para escuchar al evento MouseEvent3D.click, mi objetivo es detectar la superficie seleccionada para poder resaltarla.

El problema es que en distintas situaciones CollisionInfo.surface.name es igual a 0, lo cual no deberia suceder ya que esta superficie no existe en el objeto!

Mi pregunta es en que situaciones esto podria suceder. Puede ser que, cuando por algun motivo flare no detecta la superficie en la que se hizo click, el nombre por defecto sea 0 ?.

Para obtener el nombre de la superficie seleccionada del ClissionInfo estoy usando el siguiente código:

Code: [Select]

//click es del tipo MouseEvent3D

o.mesh = click.currentTarget;
o.surfaceName = click.info.surface.name; // Devuelve 0 en algunos casos !

Graciias desde yaa !



Ariel Nehmad   «   Reply #1 on: January 07, 2015, 04:40:58 PM »
Hola Andres, el nombre de las surfaces puede variar al orden de exportacion...no necesariamente llevan el nombre del mesh.
Cuando se cargan, estas tambien pueden variar...por ejemplo, si una superficie es muy grande, se debera dividir para que pueda subirse a la GPU correctaente.

No obstante, lo que si siempre se mantiene es el nombre de los meshes.

Otra posibilidad podria ser renombrar las superficies por codigo una vez cargado para asegurarte de que tengan los nombres correctos, pero puede ser un poco molesto.

Tags: