Fundamentos Esenciales de Unity para Desarrollo VR y AR

Clasificado en Informática

Escrito el en español con un tamaño de 9,36 KB

Conceptos Generales de Unity

  • Panel Hierarchy: Contiene todos los objetos (GameObjects) presentes en la escena actual.
  • Carpeta Assets: Directorio principal en un proyecto de Unity que almacena todos los recursos del juego, como modelos 3D, materiales, texturas, animaciones, scripts, sonidos, etc.
  • Objetos Nativos (Unity): Se pueden crear haciendo clic derecho en el panel Hierarchy y seleccionando el tipo de objeto deseado (e.g., 3D Object, Light, Camera).
  • GameObjects: En Unity, los GameObjects pueden organizarse jerárquicamente mediante relaciones Padre-Hijo, donde los hijos heredan las transformaciones de sus padres.
  • Prefab: Una copia reutilizable de un GameObject que se guarda en la carpeta Assets. Permite instanciar múltiples copias del mismo objeto con las mismas propiedades.
  • Crear Escena: Las escenas se crean y guardan típicamente dentro de una subcarpeta 'Scenes' ubicada dentro de la carpeta 'Assets'.
  • Cambiar Plataforma Destino en Unity: Se realiza accediendo a las 'Build Settings' (Configuración de Compilación) del proyecto.
  • Rect Tool: Herramienta en Unity utilizada para mover, redimensionar y rotar elementos de la interfaz de usuario (UI) o GameObjects 2D.

Animación y Físicas en Unity

  • Animator y Audio Source: Permiten añadir animaciones y sonidos a los GameObjects.
  • Añadir Animación al Player: Se logra añadiendo el componente Animator al GameObject del Player.
  • Animator Controller: Un asset que define el comportamiento de las animaciones y es necesario para que el componente Animator funcione correctamente.
  • Rigidbodies: Componentes que permiten a los GameObjects actuar bajo el control del motor de físicas de Unity, respondiendo a la gravedad, colisiones, fuerzas, etc.
  • Box Collider: Un componente de colisión con forma de cuboide rectangular, utilizado para crear límites de objetos, suelos o paredes.
  • Cylinder Collider: Componente de colisión que detecta objetos con forma cilíndrica o cónica.
  • Acceder a Parámetros de un Collider: Se puede acceder a los parámetros de un componente Collider utilizando GetComponent<Collider>() y manejar eventos de colisión con funciones como OnCollisionEnter().
  • Nav Mesh Agent: Componente que permite dotar de inteligencia artificial (IA) a un objeto para que navegue de forma autónoma. Requiere una malla de navegación (NavMesh) precalculada.
  • Crear Malla de Navegación (NavMesh): Para generarla, es necesario marcar como 'Static' los objetos del entorno que no vayan a moverse durante la ejecución.

Interfaz de Usuario (UI) en Unity

  • Slider: Elemento de interfaz de usuario (UI) que permite variar un valor numérico decimal entre un mínimo y un máximo predefinidos.
  • Crear Barra de Vida: Se implementa utilizando un elemento Slider como hijo del Canvas de la escena, desactivando su campo 'Interactable' para que no sea manipulable por el usuario.
  • Sprites en el Canvas: Objetos gráficos 2D utilizados para elementos de interfaz de usuario o gráficos en un Canvas.
  • Screen Space - Overlay: Un modo de renderizado para el Canvas en Unity que sitúa los elementos de la UI directamente en la pantalla, superponiéndolos a la escena 3D.

Programación y Scripting en Unity (C#)

  • Float: Tipo de dato numérico que permite almacenar números con decimales (coma flotante).
  • String: Tipo de dato que representa una secuencia de caracteres (texto).
  • Condicional If: Estructura de control que permite ejecutar o no una parte del código dependiendo de si se cumple o no una condición específica.
  • Foreach: Estructura de bucle que permite recorrer todos los elementos de una colección, lista o array de forma sencilla.
  • While: Estructura de bucle que ejecuta un bloque de código repetidamente mientras una condición específica sea verdadera.
  • Imprimir en Consola: Se utiliza el comando Debug.Log() en C# para mostrar mensajes, valores de variables o depurar información en la Consola de Unity.
  • Variables (C# en Unity): Si se declaran como 'private', solo se puede acceder a ellas desde el script donde están definidas, a menos que se utilicen atributos como [SerializeField].
  • Modificar Transformaciones por Código: Es posible modificar los valores de posición, rotación y escala de un GameObject directamente a través de scripts en C# (accediendo a su componente Transform).
  • Transform.Translate(): Método que permite aplicar traslaciones lineales (movimiento) a un GameObject en el espacio 3D.
  • Awake(): Función de ciclo de vida de un script en Unity que se invoca una vez cuando el script se carga, incluso antes de que la escena comience.
  • Funciones de Ciclo de Vida de Scripts (Unity): Las funciones más comunes en los scripts de Unity son Start() (se invoca una vez al inicio) y Update() (se invoca en cada frame).
  • Singleton: Patrón de diseño que asegura que una clase tenga una única instancia y proporciona un punto de acceso global a ella. En Unity, se usa para scripts que deben ser únicos en la escena.

Realidad Virtual (VR) en Unity

  • Crear un Sistema de Partículas: Clic derecho en el panel Hierarchy, luego Create > Effects > Particle System.
  • Prewarm: Propiedad de un sistema de partículas que permite que actúe desde el inicio de la escena, como si ya hubiera transcurrido tiempo.
  • VR Gaze: Generalmente, una imagen o punto de mira situado en el centro del Canvas, utilizado para la interacción en entornos de Realidad Virtual.
  • XR Rig GameObject: Un GameObject preconfigurado que especifica la plataforma XR, un objeto para la compensación del suelo y la cámara principal para experiencias de Realidad Extendida (XR).
  • Componentes para Usar Cámara Cardboard: Para configurar una cámara compatible con Google Cardboard, se suelen requerir componentes como 'Flare Layer', 'Audio Listener' y 'Tracked Pose Driver'.
  • Activar Entorno VR para Oculus: Requiere instalar el paquete 'XR Plugin Management' y configurar el proveedor de Oculus en las Project Settings.
  • Desarrollar Juego para Oculus: Para dispositivos Oculus Quest, el desarrollo y la compilación se realizan generalmente para la plataforma Android.
  • Movimiento del Player: A menudo se implementa de forma que el movimiento del personaje (Player) dependa del punto de vista de la cámara.

Realidad Aumentada (AR) en Unity

  • Vuforia: Herramienta o SDK ampliamente utilizado para crear aplicaciones de Realidad Aumentada (RA).
  • Crear Image Target en Vuforia: Implica crear una 'Database' (Base de Datos) en el portal de Vuforia, la cual se vincula a tu licencia de desarrollador.
  • Databases Tipo Device (Vuforia): Almacenan los 'Image Targets' directamente en el dispositivo, sin requerir conexión a internet para su reconocimiento.
  • Crear Database en Vuforia: Se realiza a través del 'Target Manager' en el portal de Vuforia, utilizando la opción 'Add Database'.
  • Default Trackable Event Handler (Vuforia): Un script que permite definir acciones personalizadas cuando un 'Image Target' (o cualquier 'Trackable') es detectado o pierde su rastro.
  • Vuforia: Plataforma de Realidad Aumentada que reconoce el mundo real basándose principalmente en el procesamiento visual (imágenes, objetos).
  • Realizar un Proyecto AR (Realidad Aumentada): Implica vincular un 'Image Target' (o cualquier otro tipo de Target) a los objetos virtuales que deseamos que sean 'trackeados' y mostrados en el espacio real.
  • Crear Player (en AR): En proyectos de Realidad Aumentada, el GameObject del Player (o el contenido 3D) a menudo se coloca como hijo del 'Image Target' para que se mueva con él.
  • ARCore: SDK de Google para construir experiencias de Realidad Aumentada en dispositivos móviles.
  • AR Foundation: Un framework de Unity que proporciona una interfaz unificada para desarrollar aplicaciones de Realidad Aumentada multiplataforma.
  • AR Session Origin: Componente esencial en AR Foundation que gestiona la transformación de entidades 'Trackables' (como superficies planas o puntos de características) en el espacio de la escena de Unity.
  • AR Session: Componente central en AR Foundation que controla el ciclo de vida de la experiencia de Realidad Aumentada, gestionando el seguimiento y la detección del entorno.

Entradas relacionadas: