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 53 / 67.

Random.Range(min, max) rastgele bir sayı seçer ve döndürebileceği değer, verdiğin sayıların türüne bağlıdır. Float değerlerde min ile max arasındaki tüm değerler, her iki uç da dahil olmak üzere döndürülebilir. Int değerlerde ise max değeri dahil edilmez. Bu nedenle zar atışı için 1 ile 7 arasını istemen gerekir:

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

Int sürümü max değerini dahil etmez; böylece Random.Range(0, names.Length) her zaman geçerli bir dizi indeksi olur. Bu aynı zamanda sonucu bir float değişkeninde saklasan bile Random.Range(-5, 5) ifadesinin 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.

3D'deki konumlar ve yönler için Unity'nin kullanıma hazır iki rastgele vektörü vardır. Random.insideUnitSphere, (0, 0, 0) etrafında 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 uzaklıktaki bir konumdur.

challenge icon

Görev

Orta

Her tıklama, zeminin üzerindeki rastgele bir noktadan bir kasa düşürmeli:

  • x ve z: her biri yalnızca tam sayılar değil, -4 ile 4 arasında herhangi bir değer olabilir;
  • y: 5, böylece kasa zemine düşer;
  • döndürme yok.

Play düğmesine basıp birkaç kez tıklayın, ardından Check düğmesine basın.

Kendin dene

using UnityEngine;

public class CrateDropper : MonoBehaviour
{
    public GameObject cratePrefab;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            // Rastgele bir konumdan bir sandık bırak: x ve z -4 ile 4 arasında, y = 5
        }
    }
}
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