Files
ichni_Creator_Studio/Assets/Scripts/Manager/CameraManager.cs
2025-02-18 10:30:11 -05:00

42 lines
1.6 KiB
C#

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();
}
}
}