Menu
CoddyTech

Pemunculan Acak

Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 68 dari 85.

Random.Range(min, max) memilih angka acak, dan nilai yang dapat dikembalikannya bergantung pada tipe angka yang kamu berikan. Untuk float, nilai apa pun dari min hingga max dapat muncul, termasuk kedua batasnya. Untuk int, max tidak disertakan. Jadi, lemparan dadu meminta angka dari 1 hingga 7:

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

Versi int tidak menyertakan max agar Random.Range(0, names.Length) selalu menjadi indeks array yang valid. Ini juga berarti Random.Range(-5, 5) hanya memberikan bilangan bulat dari -5 hingga 4, bahkan saat kamu menyimpan hasilnya dalam float. Tulis Random.Range(-5f, 5f) untuk mendapatkan nilai apa pun di antaranya.

Untuk titik dan arah dalam 3D, Unity menyediakan dua vektor acak siap pakai. Random.insideUnitSphere adalah titik acak di dalam bola berjari-jari 1 yang berpusat di (0, 0, 0). Random.onUnitSphere adalah titik acak pada permukaan bola tersebut, sehingga menghasilkan arah acak dengan panjang 1. transform.position + Random.insideUnitSphere * 2f adalah titik yang berjarak hingga 2 unit ke segala arah, termasuk ke atas dan ke bawah.

challenge icon

Tantangan

Sedang

Setiap klik menjatuhkan peti dari titik acak di atas lantai.

  1. Di dalam if untuk klik, pilih float x = Random.Range(-4f, 4f); dan float z dengan cara yang sama.
  2. Panggil Instantiate(cratePrefab, new Vector3(x, 5, z), Quaternion.identity);.

Tekan tombol “Main” dan klik beberapa kali: peti jatuh di tempat yang berbeda. Lalu tekan tombol “Periksa”.

Coba sendiri

using UnityEngine;

public class CrateDropper : MonoBehaviour
{
    public GameObject cratePrefab;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            // Jatuhkan peti dari posisi acak: x dan z dari -4 hingga 4, y = 5
        }
    }
}

Semua pelajaran di Dasar-Dasar Scripting Unity

Latihan sendiri: Playground Unity