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 : ScriptableObjectAufgabe
MittelVerschiebe die Werte jedes Turms in ein TowerData-Asset.
- Füge in
TowerData.cs[CreateAssetMenu]und die öffentlichen FeldertowerName(einen String),costunddamage(Ints),rangeundfireRate(Floats) hinzu. - Ersetze in
Towerdiese vier Felder durchpublic TowerData data;und liesdata.range,data.damageunddata.fireRateaus. - Ziehe in
BuildManagertowerPrefab.data.costab.
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