using System.Collections; using System.Collections.Generic; using Ichni.RhythmGame; using Ichni.RhythmGame.Beatmap; using UnityEngine; namespace Ichni.Editor { public class CameraManager : MonoBehaviour, IBaseElement { public bool isSceneCameraActive; public SceneCamera sceneCamera; public float cameraMoveSpeed; public GameCamera gameCamera; private bool haveGameCamera => gameCamera != null; public BaseElement_BM matchedBM { get; set; } public void SwitchCamera() { if (!haveGameCamera) { throw new System.Exception("GameCamera is not assigned"); } 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, "Camera Move Speed", nameof(cameraMoveSpeed)); sceneCamera.SetUpInspector(); } } }