Riepilogo: cambio di input
Fa parte della sezione Creare veri giochi del percorso Unity di Coddy. Lezione 47 di 56.
Sfida
MedioQuesta bacchetta per bolle è stata scritta per la vecchia classe Input. Funziona in un progetto impostato su Both, ma questo progetto è configurato come un nuovo progetto Unity 6 (Active Input Handling: Input System Package): premi Play e la prima chiamata a Input genera un'InvalidOperationException. Portala all'Input System, mantenendo tutto ciò che fa:
- Le frecce o WASD fanno camminare la bacchetta sul prato a
speedunità al secondo, senza andare più veloce in diagonale. - Premendo Jump si soffia una bolla a 1.5 unità sopra la bacchetta. Mentre Jump è tenuto premuto, la bolla cresce di
growRateal secondo, fino amaxSize. Rilasciando il tasto, viene registrata la sua dimensione, ad esempioBubble: 0.8. - Un clic sinistro fa scoppiare tutte le bolle e registra quante sono, ad esempio
Popped 3.
Usa le azioni Move e Jump del progetto e Mouse.current, e non lasciare alcuna chiamata Input. nello script. Premi Play e provalo, poi premi Check.
Provalo tu
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);
}
}
}
Tutte le lezioni di Creare veri giochi
1Testo sullo schermo
Canvas e testoMostra il punteggioFormattare i numeriUn timer per il conto alla rovesciaRiepilogo: tachimetro4Scene e livelli
Caricare una scenaRiavviare il livelloLivello successivoMantenere i dati tra le sceneRiepilogo: selezione del livello10Progetto: Platform 3D
Il percorsoPiattaforme mobili2Pulsanti e schermate
Pulsanti e onClickLambdaCollegare nell'InspectorPannelli attivi e disattiviBarre della saluteRiepilogo: negozio degli upgrade5Salvare con PlayerPrefs
Salvare un numeroCaricare con un valore predefinitoPunteggio massimoSalvare le impostazioniRiepilogo: monete in banca8Controller del personaggio
CharacterController.MoveGravità manualeSaltoSpingere gli oggettiMuoviti dove guardiRiepilogo: doppio salto3Il gestore del gioco
Uno script gestisce il giocoIl SingletonStati di giocoSelezionare lo statoRiepilogo: gestore del round6Progetto: Corsa infinita
Tre corsieOstacoli in arrivo9Il nuovo sistema di input
Due sistemi di inputTastiera e mousePremuto in questo frameAzioni di inputRiepilogo: cambio di input