Menu
CoddyTech

Rastgele Nesne Oluşturma

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

Random.Range(min, max) rastgele bir sayı seçer ve döndürebileceği değer, ona verdiğiniz sayıların türüne bağlıdır. Float değerlerde, her iki uç değer de dahil olmak üzere min ile max arasındaki herhangi bir değer dönebilir. Int değerlerde ise max dahil değildir. Bu nedenle zar atışı için 1 ile 7 arasını isteriz:

int roll = Random.Range(1, 7);   // 1, 2, 3, 4, 5 veya 6
Debug.Log("You rolled " + roll);

Int sürümünde max dahil edilmez; böylece Random.Range(0, names.Length) her zaman geçerli bir dizi indeksi olur. Bu aynı zamanda, sonucu bir float içinde saklasanız bile Random.Range(-5, 5) çağrısının yalnızca -5 ile 4 arasındaki tam sayıları verdiği anlamına gelir. Aradaki herhangi bir değer için Random.Range(-5f, 5f) yazın.

3D'deki noktalar ve yönler için Unity'nin kullanıma hazır iki rastgele vektörü vardır. Random.insideUnitSphere, (0, 0, 0) etrafındaki yarıçapı 1 olan bir kürenin içindeki rastgele bir noktadır. Random.onUnitSphere ise bu kürenin yüzeyindeki rastgele bir noktadır; bu da onu uzunluğu 1 olan rastgele bir yön hâline getirir. transform.position + Random.insideUnitSphere * 2f, yukarı ve aşağı yönler de dahil olmak üzere herhangi bir yönde en fazla 2 birim uzaktaki bir noktadır.

challenge icon

Görev

Orta

Her tıklama, zeminin üzerindeki rastgele bir noktadan bir kasa düşürür.

  1. Tıklama için kullanılan if bloğunun içinde float x = Random.Range(-4f, 4f); seç ve aynı şekilde float z ayarla.
  2. Instantiate(cratePrefab, new Vector3(x, 5, z), Quaternion.identity); çağrısını yap.

“Oyna” düğmesine bas ve birkaç kez tıkla: kasalar yeni noktalara düşer. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;

public class CrateDropper : MonoBehaviour
{
    public GameObject cratePrefab;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            // Rastgele bir konumdan bir kasa bırak: x ve z -4 ile 4 arasında, y = 5
        }
    }
}

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

Kendi başına pratik yap: Unity playground