Skip to content
Versunken

Games und Lyrik

Von Spielen inspiriert

  • Inhalt
  • Gamesübersicht
  • Games & Lyrik Podcast
  • Pressezentrum und Media-Kit
  • Jobs
  • Shops
    • E-Books
    • Cosplay
  • Impressum
    • Cookie-Richtlinie (EU)
    • Datenschutzerklärung
    • Disclaimer
  • Kasse
  • Toggle search form
Ein Script für ein Spiel aus der Egoperspektive schreiben

Ein Script für ein Spiel aus der Egoperspektive schreiben

Posted on 29. Juli 202330. Juli 2023 By Claudia Wendt Keine Kommentare zu Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben

Zuerst benötigst du einen Spieler, der sich in der Umgebung umsehen kann.

Du kannst dafür beispelsweise ein leeres Objekt erstellen. Wähle im Hierarchiefenster mit der rechten Maustaste Createn –> Empty. Benenne das Objekt als First Person Player. Ziehe es ins Zentrum deiner Szene. Füge eine Character Controller-Componente hinzu.

Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben 26

Zentriere den Charakter mit F und achte darauf, dass die Gizmos aktiviert sind. Dann sind die Begrenzungen des Charakters erkennbar. Erstelle als nächstes eine Grafik, damit das Objekt besser zu erkennen ist. Gehe mit der rechten Maustaste auf das GameObject, wähle Create –> 3D–>Cylinder. Entferne dann den Capsule Collider, da der Character Controller als Collider agiert. Wähle Create–>Material, um deinem Charakter ein Material zuzuweisen. Ziehe das Material auf den Spieler.

Werbung

Hast du noch keine Kamera im Spiel, kannst du sie mit der rechten Maustaste auf das GameObject kreieren oder du ziehst die MainCamera zu deinem GameObject, das als Spieler fungieren soll.

Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben 27

Wähle die Camera, setze die Transformkomponente auf Reset und ziehe sie nach oben in den Kopfbereich des Spielers. Die Kamera sollte nicht ganz nach oben, da die Kamera nicht durch die Decke gehen soll, wenn deine Spielfigur springt.

Du benötigst ein Script, dass dir ermöglicht, dich umzusehen. Alles wird mit der Maus bewegt und diese bewegt sich auf zwei Achsen (x und y). Bewegst du die Maus zur Seite, soll der Spieler sich auf der y-Achse rotieren. Bewegst du die Maus hoch oder runter, soll sich nicht deine Spielfigur bewegen, sondern nur die Kamera auf der x-Achse.

Die Kamerarotation sollte auf 180° beschränkt werden, damit sie nicht hinter den Spieler geht. Dieser Vorgang wird als Clamping bezeichnet. Wähle die Kamera und füge eine neue Componente hinzu: MouseLook

In der Update-Funktion des Scripts soll eine Inputfunktion für die Mausbewegung eingefügt werden.

Erstelle:

Werbung

float mouseX = Input.GetAxis(„Mouse X“)

Dabei handelt es sich um einen Programmzugang innerhalb von Unity für die Mausrotation.

Dasselbe machst du für die Y-Achse:

float mouseY = Input.GetAxis(„Mouse Y“);

Jetzt möchtest du die Geschwindigkeit der Maus kontrollieren.

Deswegen erstelle unter public class:

public float mouseSensitivity = 100f;

Das Input wird mit der mouseSensitivity multipliziert.

Inhaltsverzeichnis

Toggle
  • Ein Script für ein Spiel aus der Egoperspektive schreiben

Ein Script für ein Spiel aus der Egoperspektive schreiben

Zuerst benötigst du einen Spieler, der sich in der Umgebung umsehen kann.

Du kannst dafür beispelsweise ein leeres Objekt erstellen. Wähle im Hierarchiefenster mit der rechten Maustaste Createn –> Empty. Benenne das Objekt als First Person Player. Ziehe es ins Zentrum deiner Szene. Füge eine Character Controller-Componente hinzu.

Dieses Bild hat ein leeres Alt-Attribut. Der Dateiname ist grafik-52.png

Zentriere den Charakter mit F und achte darauf, dass die Gizmos aktiviert sind. Dann sind die Begrenzungen des Charakters erkennbar. Erstelle als nächstes eine Grafik, damit das Objekt besser zu erkennen ist. Gehe mit der rechten Maustaste auf das GameObject, wähle Create –> 3D–>Cylinder. Entferne dann den Capsule Collider, da der Character Controller als Collider agiert. Wähle Create–>Material, um deinem Charakter ein Material zuzuweisen. Ziehe das Material auf den Spieler.

Hast du noch keine Kamera im Spiel, kannst du sie mit der rechten Maustaste auf das GameObject kreieren oder du ziehst die MainCamera zu deinem GameObject, das als Spieler fungieren soll.

Dieses Bild hat ein leeres Alt-Attribut. Der Dateiname ist grafik-53.png

Wähle die Camera, setze die Transformkomponente auf Reset und ziehe sie nach oben in den Kopfbereich des Spielers. Die Kamera sollte nicht ganz nach oben, da die Kamera nicht durch die Decke gehen soll, wenn deine Spielfigur springt.

Du benötigst ein Script, dass dir ermöglicht, dich umzusehen. Alles wird mit der Maus bewegt und diese bewegt sich auf zwei Achsen (x und y). Bewegst du die Maus zur Seite, soll der Spieler sich auf der y-Achse rotieren. Bewegst du die Maus hoch oder runter, soll sich nicht deine Spielfigur bewegen, sondern nur die Kamera auf der x-Achse.

Die Kamerarotation sollte auf 180° beschränkt werden, damit sie nicht hinter den Spieler geht. Dieser Vorgang wird als Clamping bezeichnet. Wähle die Kamera und füge eine neue Componente hinzu: MouseLook

In der Update-Funktion des Scripts soll eine Inputfunktion für die Mausbewegung eingefügt werden.

Erstelle:

float mouseX = Input.GetAxis(„Mouse X“)

Dabei handelt es sich um einen Programmzugang innerhalb von Unity für die Mausrotation.

Dasselbe machst du für die Y-Achse:

float mouseY = Input.GetAxis(„Mouse Y“);

Jetzt möchtest du die Geschwindigkeit der Maus kontrollieren.

Deswegen erstelle unter public class:

public float mouseSensitivity = 100f;

Das Input wird mit der mouseSensitivity multipliziert. Außerdem soll die Bewegung unabhängig von der Framerate erfolgen. Multipliziere deine Funktion zusätzlich mit Time.deltaTime;

Das Gleiche machst du mit der Y-Achse. Damit passt sich die Rotationsgeschwindigkeit an die Framerate an.

Dieses Bild hat ein leeres Alt-Attribut. Der Dateiname ist grafik-54.png

Jetzt soll sich auch der Körper des Spielers bewegen. Dafür ist eine Referenz von der Hauptkamera zum 1st-Person Objekt notwendig.

Erstelle dafür: public Transform playerBody;

Im UpdateBereich greife auf den PlayerBody zu.

playerBody.Rotate(Vector3.up * mouseX)

Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben 28

Ziehe dann den Spieler in den Bereich PlayerBody.

Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben 29

Jetzt geht es darum, hoch und runter zu schauen. Dafür muss die Maus um die X-Achse rotieren.

Erstelle dafür eine private Variable:

float xRotation = 0f

Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben 30

Im Updatebereich füge hinzu:

xRotation -=mouseY;

Jetzt wird die Rotation hinzugefügt:

transform.localRotation = Quaternion.Euler()

Quaternion ist in Unity verantwortlich für die Rotation in Unity. Dazu kommen der x-, der y- und der z-Wert.

transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f);

Für diese Rotation muss jetzt das „Clamping“ hinzugefügt werden.

Dafür benötigst du:

xRotation = Mathf.Clamp(xRotation, -90f, 90f)

Damit wird die Kamerabewegung auf -90f und 90f eingegrenzt. So gehst du auf Nummer sicher, dass die Kamera nicht hinter den Spieler überrotiert.

Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben 31

In der Startfunktion fehlt noch ein Code, den Cursor auf das Bildschirmzentrum als Ausgangspunkt festlegt.

Cursor.lockState = CursorLockMode.Locked;

Das Script sieht jetzt folgendermaßen aus:

Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben 32

Als nächstes folgt die Spielerbewegung. Für die Spielerbewegung sind Eingaben notwendig. Die Eingaben sind für die horizontale und vertikale Achse nötig. Die Bewegungstasten, die in Unity vordefiniert sind, befinden sich auf der Tastatur und sind W, A, S und D.

Für W ist Vertical = 1

S -> Vertical = -1

Das gleiche gilt für Horizontal:

A -> -1

D -> 1

Diese Einstellungen funktionieren zeitgleich für den Controller.

Entlang der x-Achse bewegt sich der Spieler zur Seite und entlang der z-Achse nach vorne und zurück.

Die Bewegung muss immer relativ zu der Richtung erfolgen, in welche der Spieler guckt.

Wir benötigen dafür das PlayerMovement Script, dass in Visual Studio geschrieben wird. Füge dieses zum FirstPersonPlayer hinzu.

Erstelle unter void Update:

float x = Input.GetAxis(„Horizontal“);

float z = Input.GetAxis(„Vertical“);

Jetzt wird der Input in die Richtung verwandelt, in die der Spieler sich bewegen soll.

Verctor3 move = transform.right * x + transform.forard * z;

Damit hast du eine Richtung erstellt, die auf der Spielerbewegung und die jeweilige x- und z-Bewegung basiert. Dadurch bewegt sich die Spielfigur immer auf Basis der Richtung, in der er blickt.

Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben 33

Zusätzlich wird ein Verweis auf den Character Controller benötigt.

Erstelle jetzt als public den CharacterController:

public CharacterController controller;

Entferne die Start-Nachricht.

Füge jetzt unter Vector3 move ein:

controller.Move(move);

Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben 34

Zusätzlich soll die Geschwindigkeit der Bewegung kontrolliert werden können:

public float speed = 12f;

Multipliziere deswegen die Controllerbewegungen mit der Geschwindigkeit:

controller.Move(move * speed);

Dazu kommt noch „* Time.deltaTime“);

da es sich im UpdateBereich befindet.

controller.Move(move * speed * Time.deltaTime);

Damit wird die Framerate unabhängig gemacht.

Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben 35

Anschließend wird der CharacterController ins Feld gezogen. Bewegt sich die Kamera, bewegt sich auch die Richtung, in die sich der Spieler bewegt.

Um beispielsweise Treppen steigen zu können, ist es notwendig, den StepOffset des CharacterControllers zu steigern, wie z. B. auf 0.7

Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben 36

Step Offset definiert, wie hoch die Stufen sind, die du erklimmen kannst. Unter Slope Limit definierst du den Winkel, den dein Charakter klettern kann.

Als nächstes benötigst du Gravitation, damit dein Charakter nicht in der Luft hängen bleibt, wenn er beispielsweise Treppen hochgesteigen ist.

Die Gravitation definiert sich als Kraft, die sich innerhalb einer bestimmten Zeit auswirkt. Damit steigert sich die Geschwindigkeit, wenn sie Wirkung zeigt. Es wird eine Geschwindigkeitsvariable benötigt.

Du benötigst:

Vector 3 velocity;

Die Geschwindigkeit bezüglich der y-Achse wird mit einer Gravitationskonstante eingestellt.

velocity.y +=

Erstelle außerdem: public float gravity = -9,81f;

Anschließend fügst du die Gravitation zur Geschwindigkeit hinzu.

velocity.y += gravity * Time.deltaTime;

Um die Geschwindigkeit hinzuzufügen setzt du dazu:

controller.Move(velocity * Time.deltaTime)

Delta y ergibt sich aus der Hälfte der Gravitation mulitpliziert mit Zeit zum Quadrat.

Aus diesem Grund wird die Geschwindigkeit nocheinmal mit Time.deltaTime multipliziert.

Das fertige Script sieht folgendermaßen aus:

Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben 37

Jetzt hat Graviation Auswirkungen auf den Spieler.

Erstelle ein leeres Objekt und ziehe es bei deinem Spieler nach unten und nenne es GroundCheck. Dieses Objekt nimmt einen Physikcheck vor, ob der Spieler auf dem Boden steht. Damit das Objekt diesen Check vornehmen kann, muss eine Verbindung im Script hergestellt werden.

Füge hinzu:

public Transform groundCheck;

public float groundDistance = 0.4f;

Dazu kommt eine

public LayerMask groundMask;

Weiterhin benötigst du eine Variable, die feststellt, ob der Spieler sich auf dem Boden befindet:

bool isGrounded;

Jetzt kommt der Zusatz zur updateFunktion:

isGrounded = Physics.CheckSphere(groundCheck.position, groundDistance, groundMask);

Damit wird anhand der Physik überprüft, ob die Figur am Boden ist. Sie ist dies, wenn das Objekt bzw. die Sphere die Position, Entfernung und die Mask am Boden sind.

Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben 38

Erstellt wird beim neuen GameObject eine kleine unsichtbare Sphäre an einem festgelegten Punkt. Wenn sie mit etwas kollidiert, das sich in der GroundMask befindet ist der Spieler auf dem Boden. Ansonsten, ist es der Spieler nicht.

Dazu kommt:

if(isGrounded && velocity.y <0)

{

velocity.y = 2f;

}

Damit zwingst du den Spieler auf den Boden.

Das Script sieht jetzt folgendermaßen aus:

Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben 39

Zieh den GroundCheck in das jeweilige Feld vom PlayerScript.

Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben 40

Füge bei der Ground Mask die Ebene bzw. für Layer ein. Du kannst auch neue Layers rechts oben neu definieren.

Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben 41
Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben 42

Umwelt, die als Boden agieren soll, musst du auf die jeweilige Layer umstellen.

Fällt die Spielfigur zu langsam, kannst du die Gravitation erhöhen.

Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben 43
Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben 44

Für das Springen definiert sich die Geschwindigkeit aus der Sprunghöhe:

Geschwindigkeit = Wurzel aus (Sprunghöhe * -2 * Gravitation)

Du benötigst dafür:

if(Input.GetButtonDown(„Jump“) && isGrounded)

{

velocity.y=Mathf.Sqrt()

}

Jetzt fügst du noch eine öffentliche Variable für die Sprunghöhe ein:

public float jumpHeight = 3f;

Anschließend lässt du aus: jumpHeight * -2f * gravity die Wurzel ziehen.

velocity.y=Mathf.Sqrt(jumpHeight * -2f * gravity)

Das fertige Script sieht folgendermaßen aus:

Ein Script für ein Spiel aus der Egoperspektive schreiben
Ein Script für ein Spiel aus der Egoperspektive schreiben 45

Damit das Springen funktioniert, sollte der Boden dem Layer Ground zugeordnet sein. Sonst funktioniert das Script mit dem Springen nicht.

Post Views: 1.377
Weitersagen:
Games und Lyrik Tags:Unity

Beitrags-Navigation

Previous Post: Eternights
Next Post: Theatre of War

Related Posts

  • Prime Matter Label
    Prime Matter Line Up (Koch Media) Games und Lyrik
  • Schnee mit dem Visual Effect Graph Games und Lyrik
  • 64 Oozumou Cover
    64 Oozumou – Ab in den Sumoring Games und Lyrik
  • Jackbox Party Pack 8
    Jackbox Party Pack 8 Games und Lyrik
  • The Tenants Cover
    The Tenants Games und Lyrik
  • Angriff der Bücher Cover
    Gedichtband „Angriff der Bücher“ Games und Lyrik

Schreibe einen Kommentar Antwort abbrechen

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden.

  • Games und Lyrik (2.685)
    • Action (79)
    • Adventure (450)
      • Point & Click-Adventure (16)
    • Ecke der verlorenen Spiele (13)
    • Horror (34)
    • Kinderfreundliche Games (3)
    • Partyspiele (9)
    • Puzzle (13)
    • Rollenspiele (111)
    • Shooter (346)
    • Simulation (29)
    • Sport (111)
      • Fußball (4)
      • Rennspiele (5)
    • Strategie (200)
    • Survival (8)
    • Wimmelbild (8)
  • Hardware (2)
  • Jump & Run (1)
  • Lyrik (112)
  • Spieleentwickler (414)
  • Spieleprogrammierung (31)
Werbung

Action Adventure Capcom Daedalic Deck 13 Devcom 2020 Ecke der verlorenen Spiele Gamescom 2019 Gamescom 2020 Gamescom 2021 Gamescom 2023 Games from Spain GB GBA GBC Horror Indie Arena Booth 2022 Jump & Run Kalypso Media Mega Man N64 NDS NES Nintendo Switch PC PS1 PS2 PS3 PS4 PS5 PSP Rareware Rennspiel Sega Shooter SNES State of Play Strategie Switch Unity Visual Novel VR Windows Xbox XBox One

0 Artikel - 0,00€

Unsere Besucher

087312
Users Today : 0
Total views : 399783
Powered By WPS Visitor Counter

RSS Lets-Plays.de

  • Games als soziales Lagerfeuer
  • Top 10 Strategiespiel Downloads 2026

Ezoic

RSS GameStar – News

  • Der Herr der Ringe - Kämpfe mit Explosionsgefahr: Wusstet ihr, dass Teile der Filme in einem echten Minenfeld gedreht wurden?
  • Endspurt beim Winter Sale - 7 coole Spieleschnäppchen haben einen historischen Tiefstpreis bei Steam
  • Der Herr der Ringe - Obwohl alles getan wurde, um es zu verheimlichen, könnt ihr Arwen in Die zwei Türme für 2 Sekunden in Helms Klamm kämpfen sehen
TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste
blogwolke.de - Das Blog-Verzeichnis

Unsere Besucher

087312
Users Today : 0
Total views : 399783
Powered By WPS Visitor Counter
  • Wreckfest Cover1
    Wreckfest Sport
  • In sound mind
    In sound mind Games und Lyrik
  • The Pirate Queen Cover
    The Pirate Queen – A Forgotten Legend Adventure
  • We are Screwed
    We are screwed! Games und Lyrik
  • Cronos - The New Dawn
    Cronos: The New Dawn – Überleben in einer verdrehten Zukunft Horror
  • Die Handschuhe Lyrik
  • Angriff der Bücher Cover
    Gedichtband „Angriff der Bücher“ Games und Lyrik
  • Versunken
    SNES-Spiele Games und Lyrik

Copyright © 2026 Games und Lyrik.

Powered by PressBook News Dark theme