Tüm Rehberler

Fruit Ninja Klonu — Meyve Kesme Oyunu

Orta ⏱ 120 dk
BÖLÜM 4 / 10

Meyve Üretici (FruitSpawner) — Aşağıdan Fırlatma

Ekranın altından rastgele konumda meyveleri yukarı fırlatan FruitSpawner sistemini yazıyoruz.

Unity Editör Adımları

'+' > Create Empty → 'FruitSpawner', Y: -6
Script: 'FruitSpawner' ekle
Inspector'da fruitPrefabs dizisine Prefabları ata
csharp
using UnityEngine;

public class FruitSpawner : MonoBehaviour
{
    public GameObject[] fruitPrefabs;
    public float minInterval = 0.8f;
    public float maxInterval = 2f;
    private float timer, nextSpawnTime;

    void Start() => nextSpawnTime = Random.Range(minInterval, maxInterval);

    void Update()
    {
        if (!GameManager.Instance.IsPlaying()) return;
        timer += Time.deltaTime;
        if (timer >= nextSpawnTime)
        {
            timer = 0f;
            Spawn();
            nextSpawnTime = Random.Range(minInterval, maxInterval);
        }
    }

    void Spawn()
    {
        float x = Random.Range(-4f, 4f);
        GameObject fruit = Instantiate(fruitPrefabs[Random.Range(0, fruitPrefabs.Length)],
            new Vector3(x, transform.position.y, 0), Quaternion.identity);
        Rigidbody2D rb = fruit.GetComponent<Rigidbody2D>();
        if (rb)
        {
            rb.AddForce(new Vector2(Random.Range(-3f, 3f), Random.Range(10f, 14f)), ForceMode2D.Impulse);
            rb.angularVelocity = Random.Range(-200f, 200f);
        }
    }
}

angularVelocity meyveye dönme hareketi verir — Fruit Ninja hissinin büyük bölümü bu.

Önceki Bölüm Sonraki Bölüm