GameLogic actúa como el gestor central de la lógica del juego. Todos los eventos se pasan a GameLogic, que los distribuye a los componentes correspondientes, reduciendo el acoplamiento del código.BoxCollider, su componente Transponder pasa un evento de "jugador cercano" al componente GameLogic. El componente UIFactory instancia un panel de UI para introducir el prompt.InputDialog, que escuchará la entrada del teclado del jugador. Cuando el jugador presione Enter, activará el campo de entrada y tomará el control del teclado. Una vez que el jugador haya terminado de escribir, si presiona Enter nuevamente, los datos de entrada del jugador se pasarán a GameLogic como un evento.GameLogic reciba el prompt del jugador, lo pasará al componente TripoClient (se requiere introducir la TripoAPIKey).TripoClient llamará al componente TripoAPI para pasar el prompt al servidor de Tripo. En este momento, TripoAPI completará el ensamblaje de la solicitud, el envío de la solicitud y el sondeo de la respuesta del servidor. En caso de respuesta exitosa, el servidor devolverá el TaskID del modelo. Una vez que el modelo esté generado, TripoAPI pasará el TaskID del modelo nuevamente al servidor de Tripo para generar el esqueleto.TripoAPI pasará la URL del modelo al componente TripoClient. TripoClient cargará y analizará el modelo en formato GLB utilizando el plugin GLTFfast.RuntimeHumanoidAvatarBuilder al modelo. Este componente mapeará el esqueleto del modelo en formato GLB al sistema UnityAvator para lograr la redirección de animaciones.TripoClient instanciará el modelo en la escena. En este punto, los desarrolladores pueden usar los recursos de animación humanoides existentes para animar el modelo.GameLogic escuchará la entrada del teclado del jugador, intercambiando la prioridad de la cámara entre el modelo y el jugador, así como el objetivo de respuesta del ThirdPersonController. Cuando el jugador presione la tecla F, podrá controlar el modelo. Si presiona F nuevamente, el jugador abandonará el modelo. En cuanto al juego, el modelo puede ser muy grande o muy pequeño para que el jugador atraviese diferentes obstáculos, y también puede servir como sustituto de la apariencia, implementando sistemas similares de creación de personajes o skins a bajo costo.
Lógica general del código:
GameObjects principales
Pasos de implementación específicos:
1. Crear un nuevo proyecto
Abre Unity, haz clic en New Project (Nuevo Proyecto).
Selecciona la pipeline URP (Universal Render Pipeline), nómbralo TripoRuntimeTutorial y haz clic en Create (Crear).
2. Importar paquetes de recursos
Abre tu navegador, busca Unity Asset Store. En Unity Asset Store, busca y descarga los siguientes recursos (todos gratuitos), también puedes encontrarlos en el proyecto que hemos proporcionado:
Starter Assets - ThirdPerson Producido oficialmente por Unity, proporciona control básico de personajes en tercera persona (si al importarlo por primera vez se te pide reiniciar, simplemente sigue las instrucciones y vuelve a importarlo).
Military FREE - Low Poly 3D Models Pack Proporciona recursos de utilería para la escena.
LowPoly Environment Pack Establece la base para una escena desértica.
Añádelos a Mis Recursos y, en la ventana emergente posterior, haz clic en "Abrir en Unity" y descárgalos.
Una vez descargados, en el menú superior de Unity, haz clic en Assets > Import Package > Custom Package, importa los paquetes de recursos mencionados uno por uno, y haz clic en Import (Importar) en todos ellos.
3. Convertir a materiales URP
Filtra todos los archivos Material, o selecciona todos los modelos rosados anómalos en la escena, y en Editor - Rendering - Materials - Convert to URP Materials, convierte los materiales a materiales URP.
4. Descargar la librería de dependencia glTFast (para analizar modelos GLB)
Método uno: Descargar a través de Git (requiere tener Git instalado localmente)
Haz clic en el menú superior Window > Package Manager, en la ventana emergente haz clic en + > Add package from git URL. Introduce la URL: https://github.com/atteneder/glTFast.git y haz clic en Add (Añadir), espera a que se importe el plugin glTFast.
Método dos: Descargar el plugin de Unity desde la web oficial de Tripo, que incluye el plugin glTFast
En la sección de recursos de la página principal de la web oficial, busca el plugin de Unity. Descárgalo y, siguiendo el video tutorial incluido en el paquete, impórtalo en Unity.
5. Abrir la escena base
En la lista de archivos de la izquierda de Unity, busca la ruta Assets > LowPoly Environment Pack > Demo > Demo1 y haz doble clic para abrir esa escena. Arrastra algunos modelos (como tanques, piedras) desde la carpeta Assets > ithappy a la escena para configurar un entorno simple.
1. Añadir prefabs relacionados con el jugador
En la lista de archivos de la izquierda de Unity, busca la ruta Assets > StarterAsset > ThirdPersonController > Prefabs. Arrastra los siguientes tres prefabs a la escena:
MainCamera (Cámara Principal)
PlayerFollowCamera (Cámara de Seguimiento del Jugador)
PlayerArmature (Modelo del Personaje del Jugador)
2. Configurar parámetros de la cámara
Selecciona PlayerFollowCamera en la escena, en el panel de propiedades de la derecha (Inspector), busca el componente CinemachineVirtualCamera. Configura los campos Follow y Look At en PlayerCameraRoot, que se encuentra bajo PlayerArmature (puedes encontrarlo en los objetos hijos de PlayerArmature).
Estos son los scripts de control en tercera persona proporcionados oficialmente por Unity. Ahora, haz clic en el botón Play (Reproducir) de la barra de herramientas de Unity, usa las teclas WASD para mover el personaje, y el personaje y la cámara deberían poder seguir el movimiento normalmente.
1. Crear un área de activación
En Assets-ithappy-Military FREE-perfab, selecciona un modelo (como un tanque), haz clic derecho en el modelo > Create Empty Child (Crear hijo vacío), nómbralo Trigger.
Selecciona Trigger, en el panel de propiedades de la derecha, haz clic en Add Component > Box Collider para añadir un collider.
Marca la opción Is Trigger (Activador), haz clic en Edit Collider, y arrastra los controladores del collider en la escena para que su tamaño sea el doble del modelo (cubriendo el área alrededor del modelo).
2. Escribir el script del evento de activación
Haz clic derecho en la lista de archivos de Unity a la izquierda, Assets > Create > C# Script, nómbralo Transponder, y ábrelo con Cursor. El efecto que queremos lograr es que, cuando el jugador entre o salga del collider, se pasen mensajes a nuestro componente GameLogic. En Cursor, selecciona el modelo e introduce nuestro prompt de referencia:
Por favor, genera un script C# de Unity que implemente eventos cuando el jugador entre/salga de un collider.
Requisitos: El nombre del componente es Transponder. Cuando un GameObject con la etiqueta Player entre en el collider, se activará el evento OnPlayerEnter. Cuando el jugador salga, se activará el evento OnPlayerExit.
Después de guardar el script, arrastra el script Transponder al objeto Trigger.
3. Crear el gestor de lógica del juego
En la escena, haz clic derecho > Create Empty, nómbralo GameLogicManager, como contenedor de los componentes lógicos.
Bajo GameLogicManager, crea un objeto hijo vacío, nómbralo GameManager.
Crea un segundo script, nómbralo GameManager, para manejar la lógica principal del juego.
Hacemos referencia al componente Transponder y luego escuchamos los eventos de entrada y salida del jugador. El prompt de referencia es el siguiente:
Por favor, genera un script C# de Unity, el nombre del componente es GameManager.
Requisitos: Escuchar los eventos OnPlayerEnter y OnPlayerExit del Transponder. Cuando se active OnPlayerEnter, llamar al script UIFactory para instanciar el prefab de UI del prompt. Cuando se active OnPlayerExit, destruir este prefab de UI.
Después de guardar el script, arrastra el script GameManager al objeto GameManager y el componente Transponder al campo Transponder. Con esto se completa la escucha de los eventos de entrada y salida del jugador.
4. Crear prefab del panel de UI
Haz clic derecho en el panel Hierarchy (lista de objetos de la escena) > UI > Panel, para crear un panel de UI.
Bajo el panel, crea dos objetos hijos: Text (Texto de indicación) y InputField (Campo de entrada), ajusta su posición y tamaño (puedes previsualizarlo en la ventana Game).
Selecciona todo el panel, arrástralo a la carpeta Assets en la lista de archivos de la izquierda de Unity para generar un prefab (nómbralo InputDialogPrefab).
Nota: Si usas Unity TextMeshPro, necesitarás generar un asset de fuente que admita caracteres chinos; de lo contrario, los caracteres chinos se mostrarán como cuadrados. También puedes usar directamente nuestro asset NotoSansSC SDF proporcionado y simplemente cambiar la fuente en el componente Text a NotoSansSC SDF.
5. Escribir el script InputDialog: inicialización del panel de UI y escucha de la entrada del teclado del jugador
Crea el script InputDialog, e introduce el prompt de referencia en Cursor:
Por favor, genera un script C# de Unity, el nombre del componente es InputDialog.
Requisitos: Crear un sistema de diálogo con un campo de entrada TMP, que contenga un TMP_Text para mostrar el prompt y un TMP_InputField para recibir la entrada.
Cambiar entre dos modos con la tecla Enter:
Primer Enter: Activar el campo de entrada y deshabilitar el controlador de movimiento del jugador (como ThirdPersonController).
Segundo Enter: Enviar el contenido introdu
moving at the speed of creativity, achieving the depths of imagination.