Повторение: модульная турель
Часть раздела Архитектура игр в Unity путешествия по Unity на Coddy. Урок 5 из 64.
Задание
ЛегкоСоздай оружие для Turret1. TurretControl и Cannon готовы.
- В
Ammoнапишиpublic bool Take(): используй снаряд и верниtrueили выведи в журналname + " is empty"и верниfalse. - Сделай
Weaponабстрактным классом с[RequireComponent(typeof(Ammo))], аFire()—protected abstractбез тела. Pull()ничего не делает во времяcooldown; иначе, еслиTake()возвращает true, перезапусти время перезарядки и вызовиFire().
Нажми «Играть» и стреляй, пока снаряды не закончатся. Затем нажми «Проверить».
Попробуйте сами
using UnityEngine;
// Что общего у всех орудий турели.
public class Weapon : MonoBehaviour
{
public GameObject shellPrefab;
public float cooldown = 1f;
public void Pull()
{
// дождаться окончания cooldown, взять снаряд из Ammo, затем выстрелить
}
// Каждое орудие стреляет по-своему.
protected virtual void Fire()
{
}
// Снаряд вылетает из этой точки относительно турели в направлении, куда она смотрит.
protected void Launch(Vector3 offset)
{
Instantiate(shellPrefab, transform.position + transform.rotation * offset, transform.rotation);
}
}
Все уроки раздела Архитектура игр в Unity
1Компоненты, а не иерархии
Небольшие компонентыБазовый скрипт врагаАбстрактные компонентыКомпоненты работают вместеПовторение: модульная турельПовторение: спаренная пушка4Сериализованные данные
Сериализуемые классыСписки в инспектореПеречисления в инспектореПовторение: таблица добычиПовторение: определяем добычу2Интерфейсы в Unity
IDamageableИнтерфейсы и TryGetComponentGetComponentsПовторение: клавиша взаимодействияПовторение: ближайший в пределах досягаемости5ScriptableObjects
Ресурсы данныхХарактеристики оружияОбщие настройкиСохраняем ветерВолны как данныеПовторение: база предметовПовторение: покупка в магазинеПотренируйтесь самостоятельно: Песочница Unity