Files
WildRoot/Assets/Script/GameStep.cs
T
jongjae0305 ed1e24be1d [Update] 로직 변경 및 회전 문제 해결 등
1. 회전 시 펜스가 사라지거나 남았던 현상 해결
   - 펜스의 LOD가 여러개여서 필요한것만 남기고 삭제

2. 실드 ui 조정
   - 별도의 스크립트와 핸들러를 이용해 빈 오브젝트(앵커)에 소속하게 변경
   - pc에서는 화면 우측 상단으로 이동
   - 모바일에서는 버튼 안으로 이동

3. 폰트 변경
2026-04-22 13:56:03 +09:00

91 lines
2.1 KiB
C#

using UnityEngine;
public class NewMonoBehaviourScript : MonoBehaviour
{
public GameObject[] spawners;
public Rotator rotator;
private GameManager gameManager;
private int currentStep = 0;
void Start()
{
gameManager = FindFirstObjectByType<GameManager>();
InitializeDifficulty();
}
void Update()
{
if (gameManager == null) return;
float currentTime = gameManager.GetSurviveTime();
int targetStep = 1;
if (currentTime > 30f) targetStep = 4;
else if (currentTime > 20f) targetStep = 3;
else if (currentTime > 10f) targetStep = 2;
else targetStep = 1;
if (currentStep != targetStep)
{
UpdateStep(targetStep);
}
}
void InitializeDifficulty()
{
foreach (var s in spawners) s.SetActive(false);
if (rotator != null) rotator.enabled = false;
UpdateStep(1);
}
void UpdateStep(int step)
{
currentStep = step;
switch (step)
{
case 1:
SetSpawnersActive(2);
if (rotator != null) rotator.enabled = false;
break;
case 2:
SetSpawnersActive(4);
if (rotator != null) rotator.enabled = false;
break;
case 3:
SetSpawnersActive(4);
if (rotator != null) rotator.enabled = true;
break;
case 4:
SetSpawnersActive(4);
if (rotator != null) rotator.enabled = true;
UpgradeBullSpeed(12f);
break;
}
}
void SetSpawnersActive(int count)
{
for(int i = 0; i < spawners.Length; i++)
{
spawners[i].SetActive(i < count);
}
}
void UpgradeBullSpeed(float newSpeed)
{
foreach (var obj in spawners)
{
if (obj == null) continue;
BulletSpawner spawner = obj.GetComponent<BulletSpawner>();
if (spawner != null) spawner.bulletSpeed = newSpeed;
}
}
}