Repaso: torreta modular
Parte de la sección Arquitectura de juegos en Unity del Journey de Unity de Coddy. Lección 5 de 64.
Desafío
FácilConstruye el arma de Turret1. TurretControl y Cannon están listos.
- En
Ammo, escribepublic bool Take(): usa un proyectil y devuelvetrue, o registraname + " is empty"y devuelvefalse. - Haz que
Weaponsea abstracta con[RequireComponent(typeof(Ammo))], y queFire()seaprotected abstractsin cuerpo. Pull()no hace nada durantecooldown; de lo contrario, siTake()devuelve true, reinicia el tiempo de espera y llama aFire().
Pulsa «Jugar» y dispara hasta que se quede sin munición. Después, pulsa «Comprobar».
Pruébalo tú mismo
using UnityEngine;
// Lo que tienen en común todas las armas de torreta.
public class Weapon : MonoBehaviour
{
public GameObject shellPrefab;
public float cooldown = 1f;
public void Pull()
{
// espera a que termine el cooldown, toma un proyectil de Ammo y luego dispara
}
// Cada arma dispara a su manera.
protected virtual void Fire()
{
}
// Un proyectil lanzado desde este punto, visto desde la torreta, que vuela en la dirección hacia la que apunta la torreta.
protected void Launch(Vector3 offset)
{
Instantiate(shellPrefab, transform.position + transform.rotation * offset, transform.rotation);
}
}
Todas las lecciones de Arquitectura de juegos en Unity
1Componentes, no jerarquías
Componentes pequeñosUn script base para enemigosComponentes abstractosComponentes que trabajan juntosRepaso: torreta modularRepaso: cañón doble4Datos serializados
Clases serializablesListas en el InspectorEnumeraciones en el InspectorRepaso: tabla de botínRepaso: sortear el botín2Interfaces en Unity
IDamageableInterfaces y TryGetComponentGetComponentsRepaso: Tecla de interacciónRepaso: El más cercano al alcance5ScriptableObjects
Activos de datosEstadísticas de armasConfiguración compartidaGuardar el vientoOleadas como datosRepaso: base de datos de objetosRepaso: comprar en la tienda3Eventos
Eventos de C# en UnitySuscribirse en OnEnableCampos UnityEventLos eventos controlan la interfazRepaso: ventana emergente de logrosRepaso: temporizador de la ventana emergentePractica por tu cuenta: Playground de Unity