using System.Collections; using System.Collections.Generic; using Ichni.RhythmGame; using Ichni.RhythmGame.Beatmap; using UnityEngine; using UnityEngine.Serialization; namespace Ichni.Editor { public class CameraManager : MonoBehaviour, IBaseElement { public Camera backgroundCamera; public bool isSceneCameraActive; public SceneCamera sceneCamera; public float sceneCameraMoveSpeed; public GameCamera gameCamera; public bool haveGameCamera => gameCamera != null; public BaseElement_BM matchedBM { get; set; } public void SwitchCamera() { if (!haveGameCamera) { LogWindow.Log("GameCamera is not assigned", Color.red); return; } isSceneCameraActive = !isSceneCameraActive; sceneCamera.camera.enabled = isSceneCameraActive; gameCamera.camera.enabled = !isSceneCameraActive; } public void SetUpInspector() { string ShowCameraType() => isSceneCameraActive ? "Scene Camera" : "Game Camera"; var container = EditorManager.instance.uiManager.inspector.GenerateContainer("Camera Manager"); var cameraTypeText = EditorManager.instance.uiManager.inspector.GenerateHintText(this, container, ShowCameraType); var switchCameraButton = EditorManager.instance.uiManager.inspector.GenerateButton(this, container, "Switch Camera", SwitchCamera); var cameraMoveSpeedField = EditorManager.instance.uiManager.inspector.GenerateInputField(this, container, "Scene Camera Move Speed", nameof(sceneCameraMoveSpeed)); sceneCamera.SetUpInspector(); } } }