MiniGames/Assets/Scripts/CubeClash/CubeClash_HazardManager.cs
2025-09-01 05:03:00 +05:00

70 lines
1.8 KiB
C#

using UnityEngine;
public class CubeClash_HazardManager : MonoBehaviour
{
[Header("Hazards")]
public GameObject windGustPrefab;
public GameObject birdPrefab;
public GameObject butterflyPrefab;
public GameObject cubeLidPrefab;
public GameObject shockZonePrefab;
[Header("Items")]
public GameObject blueberryPrefab;
public GameObject timeBombPrefab;
[Header("Timing")]
public float hazardInterval = 5f;
public float itemInterval = 8f;
private float hazardTimer;
private float itemTimer;
void Update()
{
hazardTimer += Time.deltaTime;
itemTimer += Time.deltaTime;
if (hazardTimer >= hazardInterval)
{
SpawnHazard();
hazardTimer = 0f;
}
if (itemTimer >= itemInterval)
{
SpawnItem();
itemTimer = 0f;
}
}
void SpawnHazard()
{
int roll = Random.Range(0, 4);
switch (roll)
{
case 0: Instantiate(windGustPrefab, GetRandomPos(), Quaternion.identity); break;
case 1: Instantiate(birdPrefab, GetRandomPos(), Quaternion.identity); break;
case 2: Instantiate(butterflyPrefab, GetRandomPos(), Quaternion.identity); break;
case 3: Instantiate(shockZonePrefab, GetRandomPos(), Quaternion.identity); break;
}
}
void SpawnItem()
{
int roll = Random.Range(0, 2);
switch (roll)
{
case 0: Instantiate(blueberryPrefab, GetRandomPos(), Quaternion.identity); break;
case 1: Instantiate(timeBombPrefab, GetRandomPos(), Quaternion.identity); break;
}
}
Vector3 GetRandomPos()
{
return new Vector3(Random.Range(-3f, 3f), 1f, Random.Range(-3f, 3f));
}
}