diff --git a/302/Assets/Scenes/DefaultGameScene.unity b/302/Assets/Scenes/DefaultGameScene.unity index 74b9451..edc6fac 100644 --- a/302/Assets/Scenes/DefaultGameScene.unity +++ b/302/Assets/Scenes/DefaultGameScene.unity @@ -43763,6 +43763,8 @@ MonoBehaviour: checkIntersect: 0 SpecificAnomalyNum: 11 currentAnomalyInstance: {fileID: 8678062959089499939, guid: 6aadfcd777444a24180cf51012c6e89c, type: 3} + isPresentationMode: 1 + presentationAnomalies: 0f00000007000000150000001e0000001a000000190000000700000008000000 --- !u!4 &1964216256 Transform: m_ObjectHideFlags: 0 diff --git a/302/Assets/Scripts/AnomalyManager.cs b/302/Assets/Scripts/AnomalyManager.cs index d83d523..a504b93 100644 --- a/302/Assets/Scripts/AnomalyManager.cs +++ b/302/Assets/Scripts/AnomalyManager.cs @@ -15,6 +15,9 @@ public class AnomalyManager : MonoBehaviour public int SpecificAnomalyNum; public GameObject currentAnomalyInstance; // 현재 활성화된 이상현상 인스턴스 // 하나의 AnomalyManager만 보장 + public bool isPresentationMode = false; + [SerializeField] + private int[] presentationAnomalies = new int[] { 15, 7, 21, 30, 26, 25, 7, 8 }; // Inspector에서 설정 가능 private void Awake() { if (Instance == null) @@ -37,6 +40,17 @@ private void Awake() private void GenerateAnomalyList() { anomalyList.Clear(); + + if (isPresentationMode) + { + // 프레젠테이션 모드일 때는 미리 정의된 배열 사용 + for (int i = 0; i < AnomalyCount; i++) + { + anomalyList.Add(presentationAnomalies[i % presentationAnomalies.Length]); + } + } + else + { HashSet uniqueNumbers = new HashSet(); bool hasHighAnomaly = false; @@ -70,6 +84,7 @@ private void GenerateAnomalyList() int highAnomaly = random.Next(21, 31); anomalyList[randomIndex] = highAnomaly; } + } Debug.Log($"[AnomalyManager] Generated Anomaly List: {string.Join(", ", anomalyList)}"); CheckAndInstantiateAnomaly(); } diff --git a/302/Assets/Scripts/PlayerController.cs b/302/Assets/Scripts/PlayerController.cs index 0c714f4..0274417 100644 --- a/302/Assets/Scripts/PlayerController.cs +++ b/302/Assets/Scripts/PlayerController.cs @@ -338,7 +338,7 @@ private IEnumerator WakeUpAnimation() public void GameOver() { - GameManager.Instance.SetStageNoClear(); + GameManager.Instance.SetStageClear(); if (!isAnimating) // isDead 체크 제거 { StartCoroutine(DeathAnimation()); diff --git a/302/Assets/Scripts/SpecificAnomalyManager/Anomaly7_Gun.cs b/302/Assets/Scripts/SpecificAnomalyManager/Anomaly7_Gun.cs index 5fe9406..3166f50 100644 --- a/302/Assets/Scripts/SpecificAnomalyManager/Anomaly7_Gun.cs +++ b/302/Assets/Scripts/SpecificAnomalyManager/Anomaly7_Gun.cs @@ -27,6 +27,7 @@ public class Anomaly7_Gun : InteractableObject private Transform playerCameraTransform; private PlayerController playerController; private Camera playerCamera; + private int gunValue = 1; // 플래시 효과 관련 변수 private Material flashMaterial; @@ -119,8 +120,8 @@ private IEnumerator RussianRouletteSequence() audioSource.PlayOneShot(chamberSpinSound); yield return new WaitForSeconds(1f); - bool survive = Random.value > 0.2f; - + bool survive = (gunValue==1); + gunValue = 0; if (!survive) { audioSource.PlayOneShot(gunShotSound);