Skip to content
Dieses Testat widmet sich nun der gegnerischen KI. Darüber hinaus sollen Sie erste Refactorings am vorhandenen Code vornehmen, sodass eine sinnvolle Architektur entsteht.

1. Da wir nun Anfangen uns mit KI zu befassen, brauchen wir Informationen über Einheiten, mit denen die KI arbeiten kann. Erstellen Sie eine Klasse „UnitData“, die Angriffs-, Geschwindigkeits-, Rüstungs- und Kosten-Werte einer Einheit enthält. Benutzen sie dafür eine Nicht-Mono-Behaviour Klasse mit einem SerializeField / Readonly Pattern.

Das MonoBehaviour auf der Einheit soll dann die UnitData als öffentliches Member-Feld implementieren. (6 Punkte)

2. Schreiben Sie eine KI-Klasse, die den Einheiten-Spawn des Gegners kontrolliert. Benutzen Sie einen Tick-Basierten Ansatz, um der KI Geld zukommen zu lassen. Jedes Mal, wenn die KI über genug Geld verfügt, soll sie eine Einheit spawnen. Das Geld, das für eine Einheit benötig wird, soll in der entsprechenden UnitData gespeichert sein und über den Editor einstellbar sein. Spieler-Einheiten sollen sich auf den Turm des Gegners zubewegen und umgekehrt.  Hinweis: Benutzen Sie Layers und die Kollisions-Matrix des Unity-Editor, um vorerst zu verhindern, dass Einheiten miteinander kollidieren. (16 Punkte)

3. Da es nun Einheiten zwei verschiedener Akteure gibt, müssen Sie die Einheiten diesen Akteuren zuordnen. Erstellen sie eine ActorData Klasse, die sie der KI und dem Spieler-Spawn-Skript zuweisen. Ein Akteur soll vorerst lediglich über einen Namen verfügen. Bei Erstellung einer Einheit, soll der Einheit eine Referenz auf den Akteur, der sie erstellt hat, übergeben werden. Benutzen sie diese Referenz, um zu garantieren, dass eigene Einheiten nicht durch den Turm ihres Akteurs zerstört werden. (10 Punkte)