Skip to content
Versunken

Games und Lyrik

Von Spielen inspiriert

  • Inhalt
  • Über uns
  • Shop
    • Mein Konto
    • Kasse
    • Warenkorb
  • Games & Lyrik Podcast
  • Pressezentrum und Media-Kit
  • Jobs
  • Impressum
    • AGBs
    • Datenschutzerklärung
    • Disclaimer
  • 0 Artikel0,00 €
  • 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

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

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

Ziehe dann den Spieler in den Bereich PlayerBody.

Ein Script für ein Spiel aus der Egoperspektive schreiben

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

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

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

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

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

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

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

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

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

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

Zieh den GroundCheck in das jeweilige Feld vom PlayerScript.

Ein Script für ein Spiel aus der Egoperspektive schreiben

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

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

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

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

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

Beitragsnavigation

Previous Post: Eternights
Next Post: Theatre of War

Related Posts

  • NCAA Basketball Cover
    NCAA Basketball 10 Games und Lyrik
  • Lake
    Lake Games und Lyrik
  • Labyrinth City - Pierre the Maze Detective
    Labyrinth City – Pierre the Maze Detective Games und Lyrik
  • Dragon Skulle
    Dragon Skulle Games und Lyrik
  • Sorcerer King
    Sorcerer King Games und Lyrik
  • Zurück in die Zukunft II & III Cover
    Zurück in die Zukunft II & III 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.

Unsere Besucher

089618
Users Today : 5
Total views : 408792
Powered By WPS Visitor Counter
  • Games und Lyrik (2.720)
    • Action (83)
    • Adventure (460)
      • Point & Click-Adventure (16)
    • Ecke der verlorenen Spiele (17)
    • Horror (35)
    • Kinderfreundliche Games (5)
    • Partyspiele (9)
    • Puzzle (17)
    • Rollenspiele (115)
    • Shooter (346)
    • Simulation (30)
    • Sport (113)
      • Fußball (5)
      • Rennspiele (6)
    • Strategie (200)
    • Survival (9)
    • Wimmelbild (8)
  • Hardware (2)
  • Jump & Run (1)
  • Lyrik (112)
  • Spieleentwickler (432)
  • Spieleprogrammierung (48)

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

Cosplay-Schnittmuster

  • 371398df641af211c1e381b1e3a36538 Pokémon Card Welsar 100/192 Star Clash Of The Rebels 1,73 €
  • 9eadfc7b366e40761582282aade3ee22 10 Various Pokemonkarten With Kabu 055/073 re-Holo Road Des Champs 3,25 €
  • e7ec17523a51386f28a0c6c0da7e80f0 10 Various Pokemonkarten With Irokex 042/073 Holo Road Des Champs 3,25 €



Hier finden Sie mehr.

RSS Lets-Plays.de

  • Psychologische Tricks im Horror-Gaming
  • Fritzbox auf Werkseinstellungen setzen

Ezoic

RSS GameStar – News

  • PS5 - PlayStation-Preise: »Wenn das so weiter geht, kann ich meine PS5 teurer verkaufen als zum Launch«
  • The Eternal Life of Goldman: Das handgezeichnete Adventure kommt direkt zum Release in den Game Pass
  • Balkonkraftwerke - Große Studie zu Balkonkraftwerken: So schnell holt ihr die Kosten wieder herein, wenn ihr einen Fehler vermeidet
TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste
blogwolke.de - Das Blog-Verzeichnis
  • Heartworm – Survival-Horror mit Retro-Charme Horror
  • Battlefield 2042 Cover
    Battlefield 2042 Shooter
  • arcadegeddon-Cover
    Arcadegeddon – Arcade-Rebellion in Neonfarben Action
  • Omerta - City of Gangsters
    Omerta – City of Gangsters Games und Lyrik
  • Stray release date: Katzenabenteuer erscheint im Juli 2022
    Stray release date: Katzenabenteuer erscheint im Juli 2022 Adventure
  • Gamescom Logo
    Gamescom 2025 – Resident Evil-Schlangen und Devcom Games und Lyrik
  • Binary Land Cover
    Binary Land Games und Lyrik
  • Firefoot Studios Logo
    Die Firefoot Studios Spieleentwickler

Copyright © 2026 Games und Lyrik.

Powered by PressBook News Dark theme