Tag Archives: interactable object

NavMesh OverWorld Map System para Unity 3D

This page now has a cute English translation, Welcome anglosaxon friends! Here we don´t discriminate no one, but since I don´t know any other languages, consider yourself lucky I know yours besides Spanish, LOL!

Para hacer funcionar el NavMesh OverWorld Map System, se requieren 4 componentes principales: Un Main Camera (camera), un Overworld Map (map), los Overworld Goals (goals) y el NavMesh Path, y finalmente, el NavMesh Agent o Playable Character (character).

La Camera está acompañada por un “look at objective”, el cual servirá como el punto de atención para el Character. Es el punto al que siempre deberá ver, ubicado justo al centro entre el Map y la Camera.

Los Goals estarán conformados del listado de objetivos a los cuales el Character deberá poder acceder durante el recorrido por el Path. Estos Goals serán el punto de acceso a niveles desbloqueados, tesoros ocultos, enemigos escondidos o lo que el juego demande. Se pueden colocar cuantos Goals se requieran, siempre teniendo cuidado de hacerlos consecutivos y que toquen en todo momento el Path.

Además, el Path necesita estar conformado por un modelo realizado en algún programa externo. Como puede verse en la imagen, es una figura 3d, yo la creé usando Blender, pero bien puede realizarse en cualquier otro programa 3d (3DS Max, Maya, etc). Debe poseer un grosor justo para que el character pueda caber en cada recoveco y giro de esquina que posea. Se puede fácilmente sustituir el ejemplo que posee el Asset y colocar el propio camino personalizado.

Para realizar el Map, sólo se requierá una imagen 2d, nada complejo, aunque también es posible que el mismo Path sirva como Map, añadiéndole un diseño para su aplicación en entornos 3d. En mi Asset, se emplea una imagen plana como fondo y se oculta la visualización (Mesh Renderer desactivado) del path, simplemente para simplificar el sistema.

El Character se compone de los Sprites izquierdo y derecho que compondrán al personaje que se estará desplazando libremente por la pantalla, puede ser el diseño que se requiera. En mi caso, empleé un Sprite Renderer para usar una imagen 2d, pero así mismo puede usarse un modelo 3d, dependiendo de la complejidad que se maneje en el juego.

Cuando se cambie el modelo para el Path, es importante notar que se requerirá volver a generar el NavMesh, el cual se realiza por medio del Window Navigation.

Una vez abierto, se necesitará seleccionar el GameObject con el modelo que se usará para hacer el Path, en este caso mi NavMesh Path. Se deberá establecer los parámetros del NavMesh Agent, como su Radius, Height, Slope, Step Height, todos ellos útiles para permitir una adecuada navegación del Character por el Path. Cuando se termine, bastará con oprimir el botón Bake, e instantáneamente se creará un área azul en todo el modelo del Path, debe cuidarse que el área azul sea completa y pase por cada rincón, si en algún momento corta y se descontinúa, será necesario reducir el Agent Radius o aumentar el grosor del modelo, de lo contrario, no se podrá crear el NavMesh Agent y no se completará la creación del NavMesh System.

Por último, es necesario crear el NavMesh Agent, colocando en el GameObject seleccionado el componente debido. Se deben establecer los parámetros que se establecieron en el Path, o viceversa.

Este mismo objeto poseerá los Scripts que vienen con el Asset Nav Mesh Move To y Eyes On Player, colocando en el lugar debido los GameObject que pertenecen ahí, en las casillas para Goal x se pondrá el goal seleccionado y si se requieren más o menos, se tendrá que modificar el Script para ello. En las casillas para Sprite Right y Left se pondrán los GameObjects que compongan el modelo del Character mirando hacia la dirección deseada, pudiendo hacer los cambios pertinentes que se requieran, como añadir más Characters, que sea modelo 3d, etc.

Finalmente, se puede Oprimir Play y ver qué pasa…
Diversión!!

No olvides ver el live Demo y link para descargar el Asset…

Live Demo NavMesh OverWorld Map System

*****************************

Si necesitas un Asset personalizado con todo y tutorial, pídelo aquí…

Asset Requests

Clickable Object System para Unity 3D

Esta es una serie de tutoriales que Mary D. Kidd va preparando conforme los visitantes le solicitan, los assets personalizables pueden descargarse desde el portal Itch.io de la autora.

Ir al Live Demo y la página de descarga Itch.Io…

Live demo Clickable object System

This page now has a cute English translation, Welcome anglosaxon friends! Here we don´t discriminate no one, but since I don´t know any other languages, consider yourself lucky I know yours besides Spanish, LOL!

Translated version…

Clickable object system for Unity 3D

——————————————————————

Este sistema de gameplay consiste en un Game Object con la capacidad de identificar cuando se posa el mouse sobre él, reaccionando al toque, y si se le da click, una acción se realizará inmediatamente.
El tutorial está pensado en que quien lo leerá está más allá del nivel no0b de aprendizaje en Unity 3D, por lo tanto, se asumirá que se conoce la terminología normal y el manejo de la interfaz del editor y cómo colocar objetos, componentes, etc.
Para comenzar, se requiere preparar un Game Object hecho con un modelo Mesh importado en Unity 3D, el formato .fbx, como lo puede exportar cualquier programa de Autodesk o con compatibilidad con este (Blender, Solid Works, Inventor, Zbrush, etc.)

Enlarge

1

Unity 3D

En este caso, se llamó Clickeable Object, se colocó frente a la cámara para que sea visible por el jugador. En este demo se manejó un sistema de cámara 2d, pero el objeto en sí es 3d al igual que su entorno.

Enlarge

2

Unity 3D

Encima del objeto se posicionó otro Game Object “Título”, compuesto por un 3d Text, el cual posee un Text Mesh Component y permite desplegar un texto flotante en un espacio 3d sin tener que emplear un Canvas GUI.

Enlarge

3

Unity 3D

Este texto funcionará como el título que se despliega del Clickeable Object, en cualquier caso, puede sustituirse por una instrucción que indica que se puede dar click al objeto, un ícono de interacción (diálogo, ayuda, información, acción) o cualquier otra cosa que el desarrollador crea conveniente y divertida (en contexto con el juego, obviamente, duh).
A continuación, se colocó el texto que se despliega “Contenido” cuando se da click al Clickeable Object. En este caso si se utilizó texto del GUI de Unity 3D, el cual requiere que se tenga en la escena un EventSystem y un Canvas.

Enlarge

4

Unity 3D

Todos los objetos GUI que se quieran desplegar deberán ir dentro del Canvas, inclusive pueden anclarse dentro del mismo para conservar el Aspect Ratio y las proporciones aunque la pantalla de despliegue del juego cambie.
Esta interfaz consiste de un objeto con Viewport Component, el cual está dentro de un objeto con Scroll Rect Component (Clickable Object GUI), que permite deslizar el contenido de un lado a otro (colocado ahí por diversión), y en su contenido (todo lo que se deslizará dentro del Scroll Rect), se encuentra el botón cerrar (cualquier botón normal del GUI), un objeto de texto GUI con el contenido a desplegar y un título (el mismo que el que se empleó en el 3D Text, esto puede emplearse para conversaciones con personajes, simplemente poniendo los nombres de NPC en el título, por ejemplo).
Como componente final para este sistema, se colocó un objeto “Fondo” que servirá de trasfondo al contenido desplegado con el click, esto con la intención de ocultar el resto del universo alrededor y que el texto del contenido sea totalmente visible, además de ocultar distractores y evitar que se de click a otro Clickable Object en la escena por accidente.
Sin embargo, el mismo componente Viewport se puede modificar para que cumpla esta función, inclusive poseyendo imágenes personalizadas por el desarrollador, dependiendo del uso que se le dará. Así mismo, se puede optar por anclar el objeto de trasfondo a la cámara, todo el tiempo estará oculto hasta que el jugador dé click a un Clickable Object, con lo cual no estorbará en el juego, pero le permitirá viajar con el jugador a donde vaya.

Enlarge

5

Unity 3D

Ya con todos estos objetos listos en la escena, se procederá a colocar el script C# “Menu Click On Object” proporcionado (cuyo funcionamiento se puede consultar dentro del mismo script), en el Game Object Clickable Object.

Enlarge

6

Unity 3D

En los espacios debidos se debe acomodar:
Advice- Objeto “Título”
Info spaces- Objeto “Contenido”
Blockage- Objeto “Fondo”
Y ya está, dale a Play y disfruta el juego.
Adicionalmente, se puede colocar un elemento GUI que evidencie que un objeto dado en la escena es un Clickable Object, en este ejemplo, se manejó una vil flecha con texto, pero se puede elaborar cualquier cosa que quede en contexto con el juego y la creatividad del desarrollador.

Enlarge

7

Unity 3D

Puedes descargar los archivos aqui…
https://1drv.ms/u/s!Ah0lXoEWsjyl4Egv1xxQeKh-T2Bk

No olvides visitar la página “Asset Requests” para pedir un asset personalizado a tus necesidades!

Visítanos en

para un contacto más personalizado.

Chaozz, ¡Feliz codificación!