Menu
CoddyTech

Karaya Çık ya da Iskalama

Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 85 / 85.

Bu meydan okuma kule oyununu ve kursun ilk bölümünü tamamlar: Mathf.Abs ile bir vinç, düşen bir blok ve iniş testi.

challenge icon

Görev

Zor

Her bloğun yığının üzerine inmesini ya da aşağı düşmesini sağla.

  1. Düşen blok top'un y + 1 değerine indiğinde ve x değeri top'un x değerine 1 birimden daha yakın olduğunda, y değerini tam olarak buna ayarla, bloğu top yap, falling'i boşalt ve "Stack: " + count kaydını yazdır.
  2. Aksi takdirde, y = -3 değerinin altına indiğinde bloğu yok et, falling'i boşalt ve Missed! kaydını yazdır.

“Oyna” düğmesine bas ve blokları üst üste diz: her iniş yüksekliği kaydeder. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;

public class Crane : MonoBehaviour
{
    [SerializeField] private GameObject blockPrefab;
    [SerializeField] private Transform top;
    [SerializeField] private float craneSpeed = 3f;
    [SerializeField] private float craneEdge = 4f;
    [SerializeField] private float fallSpeed = 7f;

    private float direction = 1f;
    private Transform falling;
    private int stack;

    void Update()
    {
        transform.position += new Vector3(direction * craneSpeed * Time.deltaTime, 0f, 0f);
        if (transform.position.x > craneEdge) direction = -1f;
        if (transform.position.x < -craneEdge) direction = 1f;

        bool drop = Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0);
        if (drop && falling == null)
        {
            Vector3 spot = new Vector3(transform.position.x, transform.position.y - 1f, 0f);
            falling = Instantiate(blockPrefab, spot, Quaternion.identity).transform;
        }

        if (falling != null)
        {
            falling.position += Vector3.down * fallSpeed * Time.deltaTime;
            // Yığının üzerine iniş: sonraki ders.
        }
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Unity'de Script Yazmanın Temelleri bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground