dinorun/Assets/Scripts/Spawner.cs
2025-07-29 15:15:49 +05:30

50 lines
1.0 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Spawner : MonoBehaviour
{
[System.Serializable]
public struct SpawnableObject
{
public GameObject prefab;
[Range(0f, 1f)]
public float spawnChance;
}
public SpawnableObject[] objects;
public float minSpawnRate = 1f;
public float maxSpawnrate = 2f;
private void OnEnable()
{
Invoke(nameof(Spawn), Random.Range(minSpawnRate, maxSpawnrate));
}
private void OnDisable()
{
CancelInvoke();
}
private void Spawn()
{
float spawnChance = Random.value;
foreach (var obj in objects)
{
if (spawnChance < obj.spawnChance)
{
GameObject obstacle = Instantiate(obj.prefab);
obstacle.transform.position += transform.position;
break;
}
spawnChance -= obj.spawnChance;
}
Invoke(nameof(Spawn), Random.Range(minSpawnRate, maxSpawnrate));
}
}