diff --git a/.vsconfig b/.vsconfig new file mode 100644 index 00000000..f019fd0a --- /dev/null +++ b/.vsconfig @@ -0,0 +1,6 @@ +{ + "version": "1.0", + "components": [ + "Microsoft.VisualStudio.Workload.ManagedGame" + ] +} diff --git a/Assets/01_Scenes/_TestScenes/Test1.unity b/Assets/01_Scenes/_TestScenes/Test1.unity index 0dbed38b..b53cfdb0 100644 --- a/Assets/01_Scenes/_TestScenes/Test1.unity +++ b/Assets/01_Scenes/_TestScenes/Test1.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:84db3cded69e97a4aff3dc0f3fc3bbbeecc746a62f41df2403c6070d5cd74ac6 -size 37658 +oid sha256:50a42d497c35ce48cc3b9e98ebd2c9aa6245069b3847868c723ccf0caba1dfef +size 26491 diff --git a/Assets/02_Scripts/Managers/StoryComputerSystem.cs b/Assets/02_Scripts/Managers/StoryComputerSystem.cs new file mode 100644 index 00000000..1c2b8df4 --- /dev/null +++ b/Assets/02_Scripts/Managers/StoryComputerSystem.cs @@ -0,0 +1,144 @@ +using System.Text; +using UnityEngine; + +public class StoryComputerSystem : MonoBehaviour +{ + [Header("Computer State")] + [SerializeField] private bool isPowerOn = false; + + [Header("Affection Check Characters")] + [SerializeField] private CharacterData[] characters; + + public bool IsPowerOn => isPowerOn; + + public void TogglePower() + { + isPowerOn = !isPowerOn; + + Debug.Log(isPowerOn + ? "[StoryComputer] ÄÄÇ»ÅÍ Àü¿øÀÌ ÄÑÁ³½À´Ï´Ù." + : "[StoryComputer] ÄÄÇ»ÅÍ Àü¿øÀÌ ²¨Á³½À´Ï´Ù."); + + if (isPowerOn) + { + PrintCurrentState(); + } + } + + public void SaveFromComputer() + { + if (!CanUseComputer()) return; + + StoryManager.Instance.Save(); + Debug.Log("[StoryComputer] ÇöÀç ½ºÅ丮 »óŸ¦ ÀúÀåÇß½À´Ï´Ù."); + } + + public void LoadFromComputer() + { + if (!CanUseComputer()) return; + + bool success = StoryManager.Instance.Load(); + + if (success) + { + Debug.Log("[StoryComputer] ÀúÀåµÈ ½ºÅ丮 »óŸ¦ ºÒ·¯¿Ô½À´Ï´Ù."); + PrintCurrentState(); + } + else + { + Debug.LogWarning("[StoryComputer] ºÒ·¯¿Ã ÀúÀå ÆÄÀÏÀÌ ¾ø½À´Ï´Ù."); + } + } + + public void ResetStoryFromComputer() + { + if (!CanUseComputer()) return; + + StoryManager.Instance.ResetAll(); + Debug.Log("[StoryComputer] ½ºÅ丮 »óŸ¦ ÃʱâÈ­Çß½À´Ï´Ù."); + PrintCurrentState(); + } + + public void PrintCurrentState() + { + if (StoryManager.Instance == null) + { + Debug.LogWarning("[StoryComputer] StoryManager°¡ ¾ø½À´Ï´Ù."); + return; + } + + StringBuilder sb = new StringBuilder(); + + sb.AppendLine("========== ÇöÀç ½ºÅ丮 »óÅ =========="); + sb.AppendLine($"¸ÞÀÎ ÁøÇ൵: {StoryManager.Instance.MainProgress}"); + sb.AppendLine(); + + sb.AppendLine("°ø·æº° È£°¨µµ:"); + + if (characters == null || characters.Length == 0) + { + sb.AppendLine("- µî·ÏµÈ ij¸¯ÅÍ ¾øÀ½"); + } + else + { + foreach (CharacterData character in characters) + { + if (character == null) continue; + + int affection = StoryManager.Instance.GetAffection(character); + sb.AppendLine($"- {character.name}: {affection}"); + } + } + + sb.AppendLine("===================================="); + + Debug.Log(sb.ToString()); + } + + private bool CanUseComputer() + { + if (!isPowerOn) + { + Debug.LogWarning("[StoryComputer] ÄÄÇ»ÅÍ Àü¿øÀÌ ²¨Á® À־ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù."); + return false; + } + + if (StoryManager.Instance == null) + { + Debug.LogWarning("[StoryComputer] StoryManager°¡ ¾À¿¡ ¾ø½À´Ï´Ù."); + return false; + } + + return true; + } + + [ContextMenu("TEST / Power Toggle")] + private void TestPowerToggle() + { + TogglePower(); + } + + [ContextMenu("TEST / Save")] + private void TestSave() + { + SaveFromComputer(); + } + + [ContextMenu("TEST / Load")] + private void TestLoad() + { + LoadFromComputer(); + } + + [ContextMenu("TEST / Reset Story")] + private void TestReset() + { + ResetStoryFromComputer(); + } + + [ContextMenu("TEST / Print State")] + private void TestPrintState() + { + PrintCurrentState(); + } +} \ No newline at end of file diff --git a/Assets/02_Scripts/Managers/StoryComputerSystem.cs.meta b/Assets/02_Scripts/Managers/StoryComputerSystem.cs.meta new file mode 100644 index 00000000..befa80d5 --- /dev/null +++ b/Assets/02_Scripts/Managers/StoryComputerSystem.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 7169c9a1c5c96574584286a96ad2f880 \ No newline at end of file diff --git a/Assets/XR/Settings/OpenXRPackageSettings.asset b/Assets/XR/Settings/OpenXRPackageSettings.asset index 697de6f3..0c4f471b 100644 --- a/Assets/XR/Settings/OpenXRPackageSettings.asset +++ b/Assets/XR/Settings/OpenXRPackageSettings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:22f295dbc15d527a00800e8e9708eddaee30b485eea0f739cd29ee7b3724f7bc -size 127603 +oid sha256:6594e32af0421a76b81931b0ab4e1179d0e519dd9301df73aced8e30b4bef8e2 +size 115414