Files
MVP1/Assets/Editor/CameraHUDFixer.cs

28 lines
1.4 KiB
C#

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.");
}
}