Menu
CoddyTech

Turmdaten

Lektion 14 von 25 im Kurs Unity-Spiel: Tower Defense von Coddy.

Ein zweiter Turm kommt hinzu: die Kanone, mit eigenen Werten. Wie bei den Gegnern werden die Werte in ein Asset ausgelagert, TowerData, eines pro Typ: Das Projekt enthält ArrowData (Kosten 50, Schaden 2, Reichweite 4.5, fireRate 1.5). Das Prefab bestimmt weiterhin das Aussehen des Turms, und sein Tower-Skript verweist auf das zugehörige Asset.

[CreateAssetMenu] oberhalb einer ScriptableObject-Klasse fügt sie zum Create-Menü von Unity hinzu, sodass im Editor neue Assets erstellt werden können. Das Asset der Gegner hat diesen Eintrag:

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

Aufgabe

Mittel

Verschiebe die Werte jedes Turms in ein TowerData-Asset.

  1. Füge in TowerData.cs [CreateAssetMenu] und die öffentlichen Felder towerName (einen String), cost und damage (Ints), range und fireRate (Floats) hinzu.
  2. Ersetze in Tower diese vier Felder durch public TowerData data; und lies data.range, data.damage und data.fireRate aus.
  3. Ziehe in BuildManager towerPrefab.data.cost ab.

Drücke „Spielen“: Der Arrow kämpft wie zuvor, jetzt mit ArrowData. Drücke dann „Prüfen“.

Probier es selbst

using UnityEngine;

// Kommt später: die Werte eines Turmtyps als Asset.
public class TowerData : ScriptableObject
{
}

Alle Lektionen in Unity-Spiel: Tower Defense

Übe selbstständig: Unity-Playground