Tekrar: Girdi Değişimi
Coddy'nin Unity Journey'sinin Gerçek Oyunlar Geliştirmek bölümünün bir parçası. Ders 47 / 56.
Görev
OrtaBu baloncuk çubuğu eski Input sınıfı için yazılmıştır. Both olarak ayarlanmış bir projede çalışır, ancak bu proje yeni bir Unity 6 projesi gibi yapılandırılmıştır (Active Input Handling: Input System Package): Play düğmesine basın; ilk Input çağrısı bir InvalidOperationException hatası verir. Yaptığı her şeyi koruyarak Input System'e taşıyın:
- Ok tuşları veya WASD, çubuğu çim üzerinde saniyede
speedbirim hızla hareket ettirir; çapraz giderken daha hızlı olmaz. - Jump tuşuna basmak, çubuğun 1.5 birim üzerinde bir baloncuk oluşturur. Jump basılı tutulurken baloncuk saniyede
growRatekadar büyür vemaxSizedeğerine kadar ulaşır. Tuşu bıraktığınızda boyutu, örneğinBubble: 0.8, günlüğe yazılır. - Sol tıklama tüm baloncukları patlatır ve sayılarını, örneğin
Popped 3, günlüğe yazar.
Projenin Move ve Jump eylemlerini ve Mouse.current öğesini kullanın; betikte hiçbir Input. çağrısı bırakmayın. Play düğmesine basıp deneyin, ardından Check düğmesine basın.
Kendin dene
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);
}
}
}
Gerçek Oyunlar Geliştirmek bölümündeki tüm dersler
1Ekrandaki Metinler
Canvas ve MetinSkoru GösterSayıları BiçimlendirGeri Sayım ZamanlayıcısıTekrar: Hız Göstergesi4Sahneler ve Bölümler
Bir Sahne YüklemeBölümü Yeniden BaşlatmaSonraki BölümSahneler Arasında SaklamaTekrar: Bölüm Seçimi10Proje: 3D Platform Oyunu
ParkurHareketli Platformlar2Düğmeler ve Ekranlar
Düğmeler ve onClickLambda İfadeleriInspector'da Bağlantı KurmaPanelleri Açma ve KapamaCan ÇubuklarıTekrar: Yükseltme Mağazası5PlayerPrefs ile Kaydetme
Bir Sayı KaydetmeVarsayılan Değerle YüklemeEn Yüksek SkorAyarları KaydetmeTekrar: Bankadaki Paralar3Oyun Yöneticisi
Oyunu Tek Bir Betik YönetiyorSingletonOyun DurumlarıDuruma Göre GeçişÖzet: Tur Yöneticisi9Yeni Girdi Sistemi
İki Girdi SistemiKlavye ve FareBu Karede BasıldıGirdi EylemleriTekrar: Girdi Değişimi