Separar funcionabilidad de controladores y el rayo de interacción en Unity XR
Al crear un objeto XR Origin en las anteriores lecturas, este contenía lo básico para interactuar con nuestros controladores y casco, en la mayoría de casos nos gustaría separar la funcionabilidad del rayo de interacción que esta implementado dentro de los controladores para poder darle alguna función especial y no se mezcle entre los dos medios, por lo cual es mejor separarlos y crear distintos objetos con sus respectivas propiedades y scripts para que funcionen de manera normal pero mejor organizado.
Nuestro ejemplo inicialmente se encontraría como la siguiente imagen.
Ahora, primero debemos duplicar los objetos de los controladores y asignarle los nombres correspondientes que definirán que se trabaja en cada objeto.
Al trabajar con los controladores, eliminamos los objetos y agregamos los siguientes según la imagen, aquí quitamos los scripts encargados de la creación del rayo de interacción del controlador, agregamos un colider para poder interactuar con otros objetos y cambiamos el método de interacción con XR Direct Interactor, finalmente para poder activar cuando presionemos algún botón nuestro rayo de interacción agregar un script ‘On Button Press’ el cual está dentro de los script del paquete XR y solo nos queda arrastrar nuestros rayos de interacción del siguiente paso y cargar las funciones de activación para que se pueda ver solo cuando presionemos el botón principal, aquí debemos tener en cuenta la parte de ‘Action’ que son los botones de nuestros controladores encargados de activar esta acción, hacemos el mismo procedimiento en el otro controlador derecho.
Recomendado por LinkedIn
Ahora para ‘LeftHand Ray y RighttHand Ray’, trabajaran con el rayo de interacción que usaremos en cada controlador, por lo cual primero revisemos XR-Controller, en el cual solo debemos de eliminar el prefab de mano en ‘Model Prefab’ y agregar un Toggle Ray en el cual tendremos que indicar desde que controlador se hará el seguimiento, aquí solo arrastramos el objeto creado antes dependiendo de la orientación izq/der.
Podemos interactuar con los objetos tanto con el controlador y con el rayo (solo cuando presionamos el botón asignado para su funcionamiento).