Skip to content

insidegamedevelopment.com

  • 9-Slicing Scalable Sprites Spieleprogrammierung
  • 2D Collider hinzufügen Spieleprogrammierung
  • Plattformspiel Teil 1: Hilfe! Meine Plattform verschwindet hinter dem Hintergrund Spieleprogrammierung
  • Totem Warriors – Musik für Spiele Spieleprogrammierung
  • Der Sprite-Editor Spieleprogrammierung
  • Steampunk-Workshop Spieleprogrammierung
  • Industrial Showroom – Asset-Set für VR Spieleprogrammierung
  • UI-Elemente in Unity Spieleprogrammierung

Gravitation in Unity

Posted on 4. September 202312. September 2023 By wagashikoechin Keine Kommentare zu Gravitation in Unity

Ziehe das Objekt in die Szene. Füge einem Objekt eine Komponente hinzu. Das Objekt sollte einen Collider und einen Rigidbody haben. Der Rigidbody sollte auf Kinematic gestellt sein. Das bedeutet, das Objekt bewegt sich nicht in der Physiksimulation, solange es nicht von einem Script bewegt wird.

Aktiviere Simulated und Use Full Kinematic Contacts.

Im Script wird die Basic-Klasse festgelegt und sorgen dafür, das die Gravitation funktioniert. Füge als Komponente „PhysicsObject“ hinzu. Wähle New Script und öffne dieses mit Creat and Add. Doppelklicke und öffne das Script im Visual Editor.

Weil es sich um Physics handelt, füge die FixedUpdate-Funktion hinzu:

void FixedUpdate()

Innerhalb der FixedUpdate-Funktion soll sich das Objekt mit jedem Frame nach unten bewegen, weil es von der Gravitation nach unten gezogen wird.

Deswegen benötigen wir eine Variable für Geschwindigkeit:

protected Vector2 velocity;

Andere Klassen greifen auf das Physikalische Objekt zurück. Sie sollen darauf zugreifen können, aber nicht von außerhalb der festgelegten Klasse.

Die Graviation kann beeinflusst werden: Dafür wird ein Graviationswert benötigt:

public float gravityModifier = 1f;

Der Gravitationswert wird im Physiksystem von Unity verwendet. Das ganze wird mit Time.deltaTime; multipliziet und gehört zu FixedUpdate:

velocity += gravityModifier * Physics2D.gravity * Time.deltaTime;

Jetzt wird definiert, wo sich das Objekt nach Auswirkung der Gravitation befindet:

vector2 deltaPosition = velocity * Time.deltaTime;

Die neue Position wird für die Bewegung verwendet:

Vector2 move = Vector2.up * deltaPosition.y;

Eine weitere Funktion wird definiert:

void Movement(Vector2 move)

Jetzt wird eine Ergänzung in FixedUpdate vorgenommen: Das Objekt soll sich auf Basis der kalkulierten Werte bewegen:

Movement ();

Dies soll auf Grundlage vom Rigidbody2D passieren:

protected Rigidbody2D rb2d;

Dazu kommt eine OnEnable();

rb2d = GetComponent<Rigidbody2D> ();

In der Movement-Funktion wird festglegte, das die Bewegung in jedem Frame erfolgt:

rb2d.position ) rb2d.position + move;

Das fertige Script für ein Objekt mit Gravitation sieht folgendermaßen aus:

Speicherst du das Script und gehst in Unity zurück, fällt das Objekt hinunter, wenn du auf Play drückst.

Spieleprogrammierung Tags:Unity

Beitragsnavigation

Previous Post: SYNK: Revolutioniere die Content-Erstellung mit Echtzeit-Technologie
Next Post: Unity Hub: Dein Tor zur Unity-Welt

Related Posts

  • Wie die Kamera dem Spieler folgt Spieleprogrammierung
  • Animator Controllers Spieleprogrammierung
  • Das Kreieren eines Arkanoid / Breakout-Paddles Spieleprogrammierung
  • Wie du ein Projekt in Unity anlegst Spieleprogrammierung
  • Ein Feuerwerk in Unity erstellen Spieleprogrammierung
  • Events im Visual Effect Graph Spieleprogrammierung

Schreibe einen Kommentar Antwort abbrechen

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

  • Benutzeroberfläche von Unity
    Die Benutzeroberfläche von Unity Spieleprogrammierung
  • Abysse Corp Spieleprogrammierung
  • Unity Logo
    Einführung in Unity Spieleprogrammierung
  • Unity Hub
    Unity Hub: Dein Tor zur Unity-Welt Uncategorized
  • Animaze Spieleprogrammierung
  • Was ist der Visual Effect Graph in Unity? Spieleprogrammierung
  • SYNK: Revolutioniere die Content-Erstellung mit Echtzeit-Technologie Spieleprogrammierung
  • Was ist ein Sprite Renderer? Spieleprogrammierung

Copyright © 2026 insidegamedevelopment.com.

Powered by PressBook News Dark theme