From 5d2e128ae62e5a86aed603167ff9425cad9556e3 Mon Sep 17 00:00:00 2001 From: marcin Date: Thu, 10 Apr 2025 10:28:46 +0200 Subject: [PATCH] added debug script to disable enemies --- Assets/Scripts/Characters/EnemySpawner.cs | 6 ++ Assets/Scripts/Debug/DebugDisableEnemies.cs | 92 +++++++++++++++++++ .../Scripts/Debug/DebugDisableEnemies.cs.meta | 2 + 3 files changed, 100 insertions(+) create mode 100644 Assets/Scripts/Debug/DebugDisableEnemies.cs create mode 100644 Assets/Scripts/Debug/DebugDisableEnemies.cs.meta diff --git a/Assets/Scripts/Characters/EnemySpawner.cs b/Assets/Scripts/Characters/EnemySpawner.cs index 39902eafd..4ff676223 100644 --- a/Assets/Scripts/Characters/EnemySpawner.cs +++ b/Assets/Scripts/Characters/EnemySpawner.cs @@ -31,6 +31,10 @@ namespace Beyond public override void Awake() { + #if ENEMIES_DISABLED && UNITY_EDITOR + enabled = false; + return; + #endif base.Awake(); //m_spawned = false; m_spawnData = new SaveData(); @@ -54,6 +58,7 @@ namespace Beyond public override void Start() { + base.Start(); if (Player.Instance != null) m_distanceFrom = Player.Instance.transform; @@ -111,6 +116,7 @@ namespace Beyond { if (m_prefab == null) return; + Vector3 pos; const float RAY_OFFSET = 30f; const float Y_OFFSET = .1f; diff --git a/Assets/Scripts/Debug/DebugDisableEnemies.cs b/Assets/Scripts/Debug/DebugDisableEnemies.cs new file mode 100644 index 000000000..f7e7bdea1 --- /dev/null +++ b/Assets/Scripts/Debug/DebugDisableEnemies.cs @@ -0,0 +1,92 @@ +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +namespace Beyond { +public class DebugDisableEnemies +{ + [MenuItem("Debug/Enemies/Enable")] + private static void Enable() + { + SetDefineSymbol("ENEMIES_DISABLED", false); + EditorUtility.DisplayDialog("Enemies Debug", "Enemies have been enabled.", "OK"); + } + + [MenuItem("Debug/Enemies/Enable", true)] + private static bool EnableValidate() + { + return IsDefineSymbolSet("ENEMIES_DISABLED"); + } + + [MenuItem("Debug/Enemies/Disable")] + private static void Disable() + { + SetDefineSymbol("ENEMIES_DISABLED", true); + EditorUtility.DisplayDialog("Enemies Debug", "Enemies have been disabled.", "OK"); + } + + [MenuItem("Debug/Enemies/Disable", true)] + private static bool DisableValidate() + { + return !IsDefineSymbolSet("ENEMIES_DISABLED"); + } + + private static void SetDefineSymbol(string defineName, bool enable) + { + BuildTargetGroup[] buildTargetGroups = new BuildTargetGroup[] + { + BuildTargetGroup.Standalone, + BuildTargetGroup.Android, + BuildTargetGroup.iOS + }; + + foreach (var group in buildTargetGroups) + { + var defines = GetDefinesList(group); + if (enable) + { + if (!defines.Contains(defineName)) + { + defines.Add(defineName); + } + } + else + { + if (defines.Contains(defineName)) + { + defines.Remove(defineName); + } + } + + string definesString = string.Join(";", defines.ToArray()); + PlayerSettings.SetScriptingDefineSymbolsForGroup(group, definesString); + } + } + + private static List GetDefinesList(BuildTargetGroup group) + { + return new List(PlayerSettings.GetScriptingDefineSymbolsForGroup(group).Split(';')); + } + + private static bool IsDefineSymbolSet(string defineName) + { + BuildTargetGroup[] buildTargetGroups = new BuildTargetGroup[] + { + BuildTargetGroup.Standalone, + BuildTargetGroup.Android, + BuildTargetGroup.iOS + }; + + foreach (var group in buildTargetGroups) + { + var defines = GetDefinesList(group); + if (defines.Contains(defineName)) + { + return true; + } + } + + return false; + } +} +} diff --git a/Assets/Scripts/Debug/DebugDisableEnemies.cs.meta b/Assets/Scripts/Debug/DebugDisableEnemies.cs.meta new file mode 100644 index 000000000..289866495 --- /dev/null +++ b/Assets/Scripts/Debug/DebugDisableEnemies.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 2e4b2c5ead19e4e6c9ba19e35882a2de \ No newline at end of file