2017-03-22 4 views
0

Ich habe einige Fragen bezüglich der Spielprogrammierung mit Unity und ich bin sehr neu in der Spieleprogrammierung.Game Logic Programmierung in Unity

Eine meiner Fragen: Wie programmiere ich die "Spiellogik" in Untiy? Ich benutze Visual Studio mit C#, Unity und Blender für Models. Ich nahm an, dass ich etwas wie "Haupt" -Methode haben würde, wo mein komplettes Spiel beginnt und wo ich Animationen/Charaktere/Karten etc. lade und auch Logik wie wann man Menüs, Zwischensequenzen, Intros, was würde was passieren würde Punkt des Spiels, etc.

Aber alles, was ich in Tutorials sah, ist einige .cs-Skripte, die die Animation einiger GameObject steuert. Aber wie verwalte ich die komplette Spiellogik (wie oben beschrieben) mit allem, was zu einem kompletten Videospiel gehört?

Was fehlt mir?

Und ich nehme an, dass ich so etwas wie eine Datenbank/Dateien haben werde, um gespeicherte Spiele, Konfigurationen, Highscores usw. zu speichern. Wie kann ich das schaffen?

Danke!

+0

Werfen Sie einen Blick auf [dieses Tutorial] (https://unity3d.com/learn/tutorials/projects/roll-ball-tutorial), es wird Ihnen helfen, loszulegen. – CNuts

+0

Das Unity-Modell unterscheidet sich ein wenig von dem, was Sie erwarten - es gibt keine einzige Main() - Methode, die Sie implementieren können. Stattdessen können Sie die Methode Awake() oder Start() in einer beliebigen MonoBehaviour-Klasse implementieren. Der Großteil der Ressourcenverwaltung wird automatisch erledigt. Normalerweise werden Objekte einfach in eine Szene eingefügt und dann geladen. Ich ermutige Sie, nach ein paar Tutorials zu suchen (die [Videos] (https://unity3d.com/learn/tutorials) auf der Unity-Site sind ein ziemlich anständiges Intro - schauen Sie nach dem Scripting-Bereich). – apk

+0

Lesen Sie die Dokumentation, Sie werden viele nützliche Informationen erhalten: [Erstellen von Gameplay] (https://docs.unity3d.com/Manual/CreatingGameplay.html) + [Erstellen und Verwenden von Skripten] (https: //docs.unity3d. com/Handbuch/CreatingAndUsingScripts.html). Unity verwendet eine [komponentenbasierte Architektur] (https://en.wikipedia.org/wiki/Component-based_software_engineering) – Hellium

Antwort

0

Ich habe ziemlich viel mit Einheit gearbeitet, obwohl ich nie wirklich Spiele damit gemacht habe. Ich werde immer noch versuchen, dich in die richtige Richtung zu weisen.

Eine Sache, die ich als sehr nützlich empfand, als ich lernte, mit Einheit zu arbeiten, war die Verwendung von "Managern". Das sind einige Singleton-Komponenten. Ich glaube, dass Ihre Spiellogik von solch einer Komponente gehandhabt werden könnte. Es müsste in der Tat mit einer Datei oder einer Datenbank kommunizieren, um Informationen über den Spielzustand zu speichern.

Viel Glück! Antoine

0

Jedes Unity-Skript kann nur ausgeführt werden, wenn es an ein Spielobjekt angehängt ist. gibt es keine Hauptmethode, weil sie bereits von Unity selbst gehandhabt wird.

Der Ansatz, den Sie haben können, ist wie ein Spiel Objekt Gamecontroller erstellen, das Skript mit dem Namen hat GameController.cs

Die GameController.cs hat Verfahren wie Awake, Start, aktualisieren Sie Ihre Spielregel erstellen, Spiellogik, etc, dass Klasse.

Andere Skript wie PlayerController.cs, die auf Spieler Spielobjekt angebracht ist, wird die Gamecontroller Zugriff auf seine Punktzahl zu setzen, und andere Dinge

Im PlayerController.cs Skript

GameController gameController = GameObject.findGameObjectWithTag("GameController"); 

gameController.score++ 

haben wird, ist dieses gerade Beispiel des einfachen Arbeitsablaufs

0

Sie können GameObject nicht zerstören, indem Sie Ihr "Haupt" -Skript anhängen.