Unity3D KI/AI Tutorial: #3 – Questgeber programmieren – Aufgaben übertragen
Weitere Tutorials zum Thema Künstliche Intelligenz in Unity findet Ihr in der Übersicht dieser Unity3D KI/AI Tutorial Serie.
Im vorherigen KI-Tutorial hatten wir bereits angefangen einen Dialog mit einem NPC in Unity3D zu erstellen.
In diesem Teil will ich nun dort anknüpfen und aus diesem NPC einen Questgeber machen.
Tutorial-Inhalt
Es gibt ja bekanntlich viele Wege nach Rom. Und so gibt es sie auch beim Programmieren eines NPCs, der dem Spieler eine Aufgabe überträgt, einen sogenannten Questgeber.
Ich will hier nun eine Möglichkeit zeigen, wie man so eine Künstliche Intelligenz umsetzen kann und dies anhand eines kleiner Game-Szene demonstrieren. Natürlich wird dies kein ganzes Questgegber-System werden, dass verschiedenste Aufgaben verwalten kann, die vielleicht sogar aufeinander aufbauen, aber das muss es auch nicht. Schließlich geht es hier um das Prinzip und worauf dabei zu achten ist, wenn Ihr solch eine KI entwickelt.
Video-Tutorial
Wie im vorherigen Teil wir auch hier wieder in C# programmiert. Aber ich werde auf die einzelnen Besonderheiten eingehen, um die Javascript-Programmierer nicht im Regen stehen zu lassen 🙂 Viel Spaß!
Hat Euch das Tutorial gefallen? Ist etwas unklar geblieben, was Unity3D angeht? Dann habt Ihr nun unten die Möglichkeit wieder Fragen bezüglich des Videos zu stellen! Ich werde versuchen, sie zu beantworten 🙂
Download
Wegen der großen Nachfrage hab ich Euch das c#-Skript für den KI Questger hier noch einem als kostenloser Download online gestellt. Viel Spaß! – Ach ja, wenn Ihr es nutzt, würde ich mich über einen Link / Hinweis / Tweet/ etc. natürlich immer freuen 😉
Hier ist der Download für das Skript: AIDialog.cs
Das Kapitel Questgeber haben wir mit dieser Folgen nun erstmal abgeschlossen. Als nächstes will ich mit Euch einen sich bewegenden Non Player Character entwickeln. In meinem Beispiel wird dies zunächst ein freundlich gesonnener Nicht-Spieler sein. Aber die KI-Elemente könnt Ihr natürlich genauso auch für Gegner nutzen, die Euch z.B. angreifen.
Hoffentlich findet Ihr dann das nächste Kapitel genauso interessant wie dieses hier und schaut auch dort mal rein:)
Hier geht es zum nächsten Unity3D KI/AI Tutorial: #4 – NPC Follower / Begleiter – Ausrichtung mit Quaternion
Und wieder mal echt toll erklärt!
Wenn ich jetzt aber ein Desktopspiel programmiert habe und der Spieler sein aktuellen Spielstand speichern möchte, dann muss ja irgendwo eine Datei erstellt werden, da die Variablen sofort den definierten Wert verlieren, sobald das Spiel geschlossen wird. Wie würdest Du soetwas realisieren? Gibt es dafür extra Funktionen in Unity?
Gruß Kevin.
Dafür gibt es die PlayerPrefs-Klasse. Ich hab mal ein Tutorial dazu gedreht. Schau mal hier: http://www.der-softwareentwickler-blog.de/2010/09/13/unity-3d-tutorial-27-mit-playerprefs-daten-speichern-und-laden/
Super Tutorial!
Es hat alles auf Anhieb geklappt, und jetzt habe ich auch noch diesen Wilhelm hinzugefügt. Ich möchte jetzt, dass er sich bedankt, wenn ich ihm die Nachricht überbringe. Wilhelm hat ein eigenes Skript, und in dem muss ich dann abfragen, ob die Variable Quest, die bei Manfred erstellt wurde, true ist. Mein Problem: Wie greife ich auf diese Variable zu? Wie es in Javascript funktioniert weiß ich, aber nicht, wie man es in C# machen muss.
Für Hilfe wäre ich dankbar!
MfG
Jimboom
Ich bins nochmal,
erstmal Entschuldigung für den Doppelpost, aber ich wollte nur sagen, dass ich das Problem gelöst habe:
public static int[] Quest = new int[100];
Und dann kann man von anderen Skripten über Scriptname.Quest[1] darauf zugreifen.
Tolles Tutorial! Freue mich schon auf die weiteren Tutorials 😉