Scripting en Lua 5.4

Manual de Cramion

La lógica de juego de Cramion se escribe en Lua, con un modelo de componentes sencillo: cada script es una tabla, cada entidad con un componente Script recibe su propia instancia (self) y el motor llama a sus métodos durante el modo Play.

Empieza aquí

Tu primer script en tres pasos.

Primeros pasos

Cómo funciona un script y cómo se trabaja con él en el editor.

Referencia de la API

Todo lo que puedes usar desde Lua, por tema.

Gráficos

Tus propios shaders: el aspecto de las superficies en GLSL.

Ejemplos

Scripts completos listos para copiar a Assets/Scripts/.

Girar un objeto Aspas de molino, monedas, plataformas… El eje y la velocidad se ajustan en el Inspector. Cámara que sigue al jugador Se ejecuta en LateUpdate para moverse después de que el jugador ya se movió en su Update. Jugador con física Movimiento con WASD y salto con Espacio sobre un Rigidbody con CapsuleCollider. Detecta el suelo con un raycast y fija la velocidad horizontal para que el control sea preciso. Disparo con raycast Al hacer clic, lanza un rayo desde la cámara hacia delante y empuja lo que toque. Monedas y puntuación Cada moneda tiene un SphereCollider marcado como trigger y la etiqueta Moneda. El marcador es una entidad con un UIText llamada Marcador. Generador de enemigos Usa una entidad desactivada como plantilla (un "prefab" dentro de la escena) y la copia con Scene.instantiate cada cierto tiempo en un punto aleatorio. Conducir un vehículo En una entidad con Rigidbody, Vehicle y ruedas con WheelCollider. Muestra la velocidad en un UIText llamado Velocimetro. Menú, opciones y récord El método OnJugar se conecta al UIButton "Jugar", OnVolumen a un UISlider y OnSalir al botón "Salir". El volumen y el récord se guardan con Prefs. Animación de un personaje Alimenta los parámetros del controlador de animación a partir de la velocidad del Rigidbody. Scripts que se hablan entity:getScript() devuelve la instancia del script de otra entidad: puedes leer sus datos y llamar a sus métodos. Así, un gestor de nivel puede coordinar a los demás. IA: patrullar y perseguir Un guardia con NavAgent que patrulla por puntos al azar y persigue al jugador cuando lo ve (el raycast de la malla comprueba que no haya una pared en medio). Si lo pierde, vuelve a patrullar. Terreno procedural con colisión Script completo listo para copiar. Varios materiales y efectos Script completo listo para copiar. Olas: cambiar la malla cada frame Script completo listo para copiar.

La referencia completa del código está en CramionCore/include/CramionCore/scripting/Scripting.h. ¿Dudas? Pregunta en el Discord.