using UnityEngine; using UnityEditor; using UnityEditor.SceneManagement; // Tools -> Fix Camera & HUD: один раз исправить сцену и сохранить. // - HUD_Canvas -> Screen Space Overlay, отвязан от камеры // - с камеры убраны CameraZoom / CameraController / FlyCamera, добавлена CityCamera // - удалены компоненты с "Missing script" (скрипты, которых в проекте уже нет) public static class CameraHUDFixer { // [MenuItem("Tools/Fix Camera & HUD")] -- отключено, см. RestoreOldCamera public static void Fix() { int missing = 0; var hud = GameObject.Find("HUD_Canvas"); if (hud != null) missing += GameObjectUtility.RemoveMonoBehavioursWithMissingScript(hud); if (Camera.main != null) missing += GameObjectUtility.RemoveMonoBehavioursWithMissingScript(Camera.main.gameObject); int changes = HUDCameraSetup.Apply(true); if (hud != null) EditorSceneManager.MarkSceneDirty(hud.scene); else if (Camera.main != null) EditorSceneManager.MarkSceneDirty(Camera.main.gameObject.scene); Debug.Log("Камера и HUD исправлены: изменений " + changes + ", удалено пустых скриптов " + missing + ". Сохрани сцену (Ctrl+S). Границы карты камеры: компонент CityCamera на Main Camera."); } }