Menu
CoddyTech

Dane wież

Lekcja 14 z 25 w kursie Gra w Unity: Obrona wieży w Coddy.

Nadchodzi druga wieża — armata z własnymi parametrami. Podobnie jak w przypadku przeciwników, parametry trafiają do zasobu TowerData, po jednym na każdy rodzaj: projekt zawiera ArrowData (koszt 50, obrażenia 2, zasięg 4.5, fireRate 1.5). Prefab określa wygląd wieży, a jej skrypt Tower wskazuje na jej zasób.

[CreateAssetMenu] umieszczone nad klasą ScriptableObject dodaje ją do menu Create w Unity, dzięki czemu nowe zasoby można tworzyć w edytorze. Zasób przeciwników ma taki atrybut:

[CreateAssetMenu(fileName = "NewEnemy", menuName = "Tower Defense/Enemy Data")]
public class EnemyData : ScriptableObject
challenge icon

Wyzwanie

Średni

Przenieś statystyki każdej wieży do zasobu TowerData.

  1. W pliku TowerData.cs dodaj [CreateAssetMenu] oraz publiczne pola towerName (typu string), cost i damage (typu int), range i fireRate (typu float).
  2. W klasie Tower zastąp te cztery pola deklaracją public TowerData data; i odczytuj wartości z data.range, data.damage i data.fireRate.
  3. W klasie BuildManager pobieraj opłatę towerPrefab.data.cost.

Naciśnij „Graj”: Arrow walczy tak jak wcześniej, ale teraz korzysta z ArrowData. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

using UnityEngine;

// Pojawi się później: statystyki jednego rodzaju wieży jako zasób.
public class TowerData : ScriptableObject
{
}

Wszystkie lekcje w sekcji Gra w Unity: Obrona wieży

Poćwicz samodzielnie: Edytor online Unity