Rückblick: Eingabewechsel
Teil des Abschnitts Echte Spiele entwickeln der Unity-Journey von Coddy. Lektion 48 von 60.
In diesem Kapitel hast du die Tastatur, die Maus und die Aktionen des Projekts mit dem Input System ausgelesen. Der Seifenblasenstab verwendet weiterhin die alte Klasse Input: Stelle ihn Aufruf für Aufruf um.
Aufgabe
MittelÜbertrage den Zauberstab auf das Input System; die alte Klasse Input verursacht hier einen Fehler.
- Füge
using UnityEngine.InputSystem;undInputAction-FeldermoveActionundjumpActionhinzu und weise ihnen inStart()mithilfe vonInputSystem.actions.FindActionWerte zu. - Bewege dich mit
moveAction.ReadValue<Vector2>(), wobei dessen y-Wert entlang der z-Achse verläuft. - Ersetze die Jump-Prüfungen durch
WasPressedThisFrame(),IsPressed()undWasReleasedThisFrame()und den Klick durchMouse.current.leftButton.wasPressedThisFrame.
Drücke „Spielen“, blase eine Blase auf und lasse sie platzen. Drücke dann „Prüfen“.
Probier es selbst
using UnityEngine;
public class Wand : MonoBehaviour
{
public float speed = 4f;
public float growRate = 1f;
public float maxSize = 1.5f;
public GameObject bubblePrefab;
private Transform bubble;
void Update()
{
Vector3 move = new Vector3(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical"));
transform.position += move.normalized * speed * Time.deltaTime;
if (Input.GetButtonDown("Jump"))
{
bubble = Instantiate(bubblePrefab, transform.position + Vector3.up * 1.5f, Quaternion.identity).transform;
}
if (Input.GetButton("Jump") && bubble != null)
{
float size = Mathf.Min(bubble.localScale.x + growRate * Time.deltaTime, maxSize);
bubble.localScale = Vector3.one * size;
}
if (Input.GetButtonUp("Jump") && bubble != null)
{
Debug.Log("Bubble: " + bubble.localScale.x.ToString("F1"));
bubble = null;
}
if (Input.GetMouseButtonDown(0))
{
GameObject[] bubbles = GameObject.FindGameObjectsWithTag("Bubble");
foreach (GameObject b in bubbles) Destroy(b);
Debug.Log("Popped " + bubbles.Length);
}
}
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Echte Spiele entwickeln
1Text auf dem Bildschirm
Canvas und TextPunktestand anzeigenZahlen formatierenEin Countdown-TimerRückblick: Tachometer2Buttons und Bildschirme
Buttons und onClickLambdasVerknüpfungen im InspectorPanels ein- und ausblendenGesundheitsbalkenRückblick: Upgrade-Shop5Speichern mit PlayerPrefs
Eine Zahl speichernMit einem Standardwert ladenHöchstpunktzahlEinstellungen speichernRückblick: Münzen auf der Bank3Der Spielmanager
Ein Skript steuert das SpielDas SingletonSpielzuständeZum Zustand wechselnRückblick: Rundenmanager6Projekt: Endlosläufer
Drei SpurenHindernisse voraus9Das neue Eingabesystem
Zwei EingabesystemeTastatur und MausIn diesem Frame gedrücktEingabeaktionenRückblick: EingabewechselÜbe selbstständig: Unity-Playground