Skip to content

Beta

  • Inhalt
  • Gamesübersicht
  • Games & Lyrik Podcast
  • Pressezentrum und Media-Kit
  • Jobs
  • Veröffentlichte E-Books
  • Impressum
    • Datenschutzerklärung
    • Disclaimer
  • Cookie-Richtlinie (EU)
  • Toggle search form
  • Batman Returns NES Cover
    Batman Returns Action
  • Aeon Drive: Ein Cyberpunk-Abenteuer Action
  • HoverGrease Games und Lyrik
  • B-Wings Cover
    B-Wings Games und Lyrik
  • 7th Dragon Cover
    7th Dragon Games und Lyrik
  • Die Siedler 3
    Die Siedler 3 Strategie
  • Games und Lyrik Logo
    Köder Lyrik
  • Der Zeuge
    Der Zeuge Lyrik

Unity – Wie du deine Gegner bewegst

Posted on 10/12/2020 By Claudia Wendt Keine Kommentare zu Unity – Wie du deine Gegner bewegst

Erstelle zuerst ein Objekt, das als Gegner fungiert. Gebe deinem Gegner den Tag Enemy.

Wenn Gegner und Figur kollidieren, ist ein Tag sinnvoll, da mit dem Script vermittelt werden kann, das nur Objekte mit dem Enemy-Tag als Gegner relevant sind.

Erstelle ein C#-Script mit dem Namen „Enemy“.

Öffne das Script in Visual Studio. Zuerst benötigt der Gegner eine Rigidbody-Componente:

private Rigidbody2D Rigidbody;

Jetzt benötigen wir die Awake-Funktion. Sie wird einige Zeit vor dem Start aktiv.

void Awake ( )

{

Rigidbody = GetComponent<Rigidbody2D>();

}

Jetzt füge dem Gegner eine Rigidbody2D-Komponente in Unity hinzu.

Ziehe jetzt das neue Script auf den Gegner.

Die Bewegung vom Gegner

Jetzt soll der Gegner sich basierend auf einer Geschwindigkeit in eine bestimmte Richtung bewegen:

Wir benötigen: private float speed

public void Move (Vector 2 direction)

{

body.velocity = new Vector2(direction.x * speed, body.velocity.y);

}

Damit das private float spped-Feld im Inspektor erscheint, setzt du davor: [SerializeField]

Die Richtung des Gegners soll wechseln:

Wir benötigen:

private Vector2 movementDirection;

Jetzt wird Folgendes festgelegt:

movementDirection = direction;

Die direction.x tauschst du durch movementDirection.x aus.

Für den Richtungswechseln benötigst du die Update-Funktion:

Move(movementDirection);

Nach einer Bewegung in eine Richtung, kehrt der Gegner in die andere Richtung zurück.

Die Kollision mit Gegnern

Weiterhin muss der Gegner eine „Kollision entdecken“.

private void OnCollisionEnter2D(Collision2D collision)

{

if (collision.gameObject.CompareTag(„Enemy“))

{

movementDirection *= -1f;

}

Als movementDirection in der Awake-Funktion gib folgendes an:

movementDirection = Vector2.right;

Weiterhin benötigt er einen Collider. Füge einen passenden 2D-Collider hinzu.

Füge einen 2. kleineren Collider am oberen Abschnitt des Gegners hinzu. Der 2. Collider soll zugleich ein Auslöser sein. Der Collider soll den Gegner beseitigen, wenn der Spieler daraufspringt.

Das Spawnen von Gegnern

Erstelle mit dem Rechtsklick im Hierarchiefenster ein leeres Objekt und benenne es als Spawner.

Die Gegner erscheinen, je nach Richtung des Spawners. Als nächstes benötigen wir ein SpawnerScript.

Darin definierst du das Erscheinen der Gegner.

Zuerst benötigen wir dafür:

[SerializeField]

Durch das SerializeField erschienen die Prefabs direkt beim Spawner.

private Enemy[ ] enemies;

Du brauchst außerdem die Variable:

[SerializeField]

private float spawnTimeDelay, startSpawnDelay;

Damit legen wir die Spawnzeit und die Abstände zwischen dem Spawning fest.

Außerdem benötigen wir:

public bool completed;

Es legt den letzten Gegner für den Spawner fest. Die „Aufsicht“ über die Spawner hat der GameManger. Der completed-Abschnitt legt fest, das der Level abgeschlossen ist, wenn keine Gegner mehr in der Szene laufen und die Spawner aller Gegner in den Level sandten.

Jetzt wird eine Coroutine benötigt, für das Spawnen der Gegner.

Die Gegner sollen sich außerdem in eine bestimmte Richtung bewegen.

Zuletzt soll überprüft werden, ob das Spawning abgeschlossen ist.

Für die Coroutine ist ein IEnumorator notwendig. Unity bearbeitet Coroutines im Hintergrund. Zudem finden sie in jedem Frame statt:

private IEnumerator Spawn( )

Jetzt wird dem System gesagt, das es eine bestimmte Anzahl an Sekunden warten soll, bis der Gegner erscheint:

yield return new WaitForSeconds ( );

Wir warten auf startSpawnDeley:

yield return new WaitForSeconds (startSpawnDelay);

Für die Zeitangabe benötigen wir:

for (int i = 0; i < lenght; i++)

Jeder Gegner soll eine bestimmte Anzahl, nach einer bestimmten Zeit respawnen.

Deswegen kommt dazu: enemies.Lenght:

for (int i = 0; i < enemies.Lenght; i++)

Jetzt muss ein Verweis zu dem Gegner erstellt werden:

Enemy enemyInstance = Instantiate(enemies[i], transform.position);

Transform.position sagt dem System, das der Gegner beim Spawner erscheinen soll.

Quaternion.identity bezieht sich auf die Rotation.

Enemy enemyInstance = Instantiate(enemies[i], transform.position, Quaternion.identity);

Die Bewegung des Gegners lässt sich näher definieren:

enemyInstance.Move(transform.right);

Wir fügen yield return new WaitforSeconds(SpawnTimeDelay); ein weiteres Mal hinzu, diesmal mit SpawnTimeDelay.

Das bedeutet, jedes Mal, wenn ein Gegner erscheint, wartet Unity diese spezielle Zeit, bis zum nächsten Spawning.

Zuletzt muss das System überprüfen, ob das Spawning abgeschlossen ist:

completed = i >=enemies.Lenght – 1;

Zuletzt muss die Coroutnie gestartet werden:

void Start()

{

 StartCoroutine(Spawn());

}

Das Endscript für das Spawning sollte folgendermaßen aussehen:

Im angehängten Spawnerscript kannst du die Spawnhäufigkeit jetzt einstellen:

Per Drag & Drop kannst du die Gegner jetzt ins Spawner-Script ziehen:

Games und Lyrik

Beitragsnavigation

Previous Post: Emma at the Farm
Next Post: Age of Empires 2: Age of Kings

Related Posts

  • Alpha Mission NES Front Cover
    Alpha Mission Games und Lyrik
  • Candycrush Saga Titel
    Candy Crush Saga – Drei Gewinnt in Kunterbunt! Games und Lyrik
  • Advanced Dungeons & Dragons - Heroes of the Lance2
    Advanced Dungeons and Dragons: Heroes of the Lance Games und Lyrik
  • Rage 2 Cover
    Rage 2 Games und Lyrik
  • Calorie Defenders Cover
    Calorie Defenders Games und Lyrik
  • This is the President Cover
    This is the President Games und Lyrik

Schreibe einen Kommentar Antwort abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Archives

  • November 2023
  • August 2023
  • Juli 2023
  • April 2023
  • März 2023
  • Februar 2023
  • Januar 2023
  • Dezember 2022
  • November 2022
  • Oktober 2022
  • September 2022
  • August 2022
  • Juli 2022
  • Juni 2022
  • Mai 2022
  • April 2022
  • März 2022
  • Februar 2022
  • Januar 2022
  • Dezember 2021
  • November 2021
  • Oktober 2021
  • September 2021
  • August 2021
  • Juli 2021
  • Juni 2021
  • Mai 2021
  • April 2021
  • Februar 2021
  • Januar 2021
  • Dezember 2020
  • November 2020
  • Oktober 2020
  • September 2020
  • August 2020
  • Juli 2020
  • Juni 2020

Categories

  • Action
  • Adventure
  • Adventure Escape
  • Brettspiele
  • Games und Lyrik
  • Geschicklichkeit
  • Hack and Slash
  • Horror
  • Kartenspiele
  • Liebe
  • Lyrik
  • Point-and-Click-Adventure
  • Puzzle
  • Rennspiele
  • Rogue-like
  • RPG
  • Shoot Em Up
  • Shooter
  • Simulation
  • Spieleentwickler
  • Spieleprogrammierung
  • Sport
  • Strategie
  • Survival
  • Textadventure
  • Tower-Defense
  • Uncategorized
  • Wimmelbild
  • Wirtschaftssimulation

Recent Posts

  • ProtoCorgi
  • Rosewater
  • Prim
  • Soccer Story
  • Application Systems Heidelberg

Recent Comments

  1. A WordPress Commenter zu Hello world!
  2. Rita zu Catch me!
  3. cvd zu Heart of Muriet
  4. cvd zu Heart of Muriet
  5. Gordon zu Jasper and the City of Lights
  • PRIM Cover
    Prim Adventure
  • Windmärchen Games und Lyrik
  • DE-EXIT Cover
    DE-EXIT – Eternal Matters Adventure
  • ehmprah Logo
    ehmprah Spieleentwickler
  • NBA 2K20 Games und Lyrik
  • Adventure Escape Dark Ruins
    Dark Ruins – Adventure Escape Adventure
  • Mah Jongg – Das Erbe des Morxius Games und Lyrik
  • Limbo Screenshot 2
    Limbo Adventure

Copyright © 2026 Beta.

Powered by PressBook News Dark theme