MiniGames/Assets/Scripts/CubeClash/CubeClash_HazardManager.cs

70 lines
1.7 KiB
C#
Raw Normal View History

2025-09-01 05:03:00 +05:00
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, 3);
2025-09-01 05:03:00 +05:00
switch (roll)
{
case 0: Instantiate(windGustPrefab); break;
case 1: Instantiate(birdPrefab); break;
case 2: Instantiate(butterflyPrefab); break;
// case 3: Instantiate(shockZonePrefab, GetRandomPos(), Quaternion.identity); break;
2025-09-01 05:03:00 +05:00
}
}
void SpawnItem()
{
int roll = Random.Range(0, 2);
switch (roll)
{
case 0: if(blueberryPrefab!=null) Instantiate(blueberryPrefab, GetRandomPos(), Quaternion.identity); break;
case 1: if (timeBombPrefab != null) Instantiate(timeBombPrefab, GetRandomPos(), Quaternion.identity); break;
2025-09-01 05:03:00 +05:00
}
}
Vector3 GetRandomPos()
{
return new Vector3(Random.Range(-3f, 3f), 1f, Random.Range(-3f, 3f));
}
}