28 lines
1.4 KiB
C#
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.");
|
|
}
|
|
}
|