Unity 5d Wellen von Gegner und Waffen erstellen?

...komplette Frage anzeigen

3 Antworten

Der Wie erstelle ich eine Welle von Gegnern?

Mit einer Coroutine kannst du eine bestimmt Zeit warten, um dann Code auszuführen.

bool spawnen = true;
void Start(){
     StartCoroutine(WellenSpawnen(30, 10));
}
IEnumerator WellenSpawnen(float WellenDauer, float PausenDauer) {
    while(true){
        yield return new WaitForSeconds(WellenDauer);
        spawnen = false;
        yield return new WaitForSeconds(PausenDauer);
        spawnen = true;
   }
}

Der Code ist jetzt ungetestet aber im Prinzip startet der Skript am Anfang die Methode "WellenSpawnen". Die schaltet dann ohne ende alle 30 sekunden den bool spawnen auf false und wartet dann 10 sekunden bis Sie ihn wieder auf true setzt. So musst du nur noch in der Update die Gegner in einem bestimmten Inverval spawnen wenn spawnen auf true gesetzt ist. Dafür kannst du Time.time ganz gut gebrauchen. 

Wie erstelle ich Waffen mit unterschiedlichen Stärken?


Du erstellst zuerst eine Waffe mit einem Skript der die Stärke als public float Variable enthält. Die Waffe ziehst du dann vom der Szenen View in die Projekt View sprich in den Assets Ordner. Dann hast du einen Prefab den du als Basiswaffe nimmst. Jetzt kannst du wenn du die Waffe in der Hierarchy sprich in der Liste mit dem Spielenobjekten markiert hast mit "STRG + D" dublizieren. Bei der Kopie jetzt nur noch die Stärke verstellen und anschließen die Kopie in die Assets reinkopieren. Jetzt hast du zwei Waffen Prefabs mit verschiedenen Stärken.

Ist es kritisch wenn ich jetzt C# und Java vermische?

Nein. Unity ist sogar extra dafür ausgelegt das man verschiedene Sprachen gleichzeitig verwenden kann. 

Antwort bewerten Vielen Dank für Deine Bewertung
BryanS321 07.06.2016, 23:30

Hey, Danke für die Antwort!

Also bin recht neu bei Unity dabei und hab nur wenig erfahrung. Müsste ich jetzt da die Variablen deklarieren? Und wo müsste ich jetzt eingeben das Gegner gespawnt werden? (Habe da schon Vermutungen^^)

Wenn du Zeit hättest und Lust würde ich dich adden, wenn du mir ein bissien helfen könntest :)

0
Berny96 07.06.2016, 23:37
@BryanS321

Die Gegner werden in der Update() Methode gespawnt die du aber noch erstellen musst. Die wird pro Frame einmal aufgerufen. Die Deklarierst du neben den Boolean. Komponente jedoch solltest du in der Startmethode erst holen. Sprich außerhalb definieren und in der Start() erst referenzieren.

0

Programmieren ist nunmal englisch. Du wirst fast nichts auf deutsch finden bis auf paar tuts auf yt.
Unity verwendet nunmal c# also musst das lernen.

Für wellen erstellst du einfach ein actor (wie auch immer die bei unity heißen) welche immer neue gegner spawnt. Mit einem counter verfolgst du ob alle tot sind, wenn dann wird der spawner erhöht das er halt mehr spawned.
Die projektile mit einem timer versehen der nach einer zeit diese löscht. So bekommst du verschiedene reichweiten. Stärke ist fast dasselbe.

Antwort bewerten Vielen Dank für Deine Bewertung
BryanS321 07.06.2016, 23:14

Mit Welchem Programm programmierst du? bzw. hast?

Und ist es sehr schlimm wenn ich jetzt Java Scripts mit C# vermische?

Jo mein Englisch ich nicht gerade so schlecht gucke mir ein bissien rein

0
Hammingdon 07.06.2016, 23:21

Ach du meinst javascript, ist ein großer Unterschied. ich finde c# leichter und hst mehr funktionale als js, hab aber keine erfahrung in unity. ich verwende nur unreal engine.

0

Unity 5D? Du meinst sicher Unity 3D oder Unity 5. Programmieren ist nun mal nur auf Englisch. Aber hier ein deutsches Community Forum http://forum.unity-community.de

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?