2025-02-18 10:30:11 -05:00
using System.Collections ;
using System.Collections.Generic ;
using Ichni.RhythmGame ;
using Ichni.RhythmGame.Beatmap ;
using UnityEngine ;
2025-02-19 09:15:51 -05:00
using UnityEngine.Serialization ;
2025-02-18 10:30:11 -05:00
namespace Ichni.Editor
{
public class CameraManager : MonoBehaviour , IBaseElement
{
2025-02-19 09:15:51 -05:00
public Camera backgroundCamera ;
2025-02-18 10:30:11 -05:00
public bool isSceneCameraActive ;
public SceneCamera sceneCamera ;
2025-02-19 09:15:51 -05:00
public float sceneCameraMoveSpeed ;
2025-02-18 10:30:11 -05:00
public GameCamera gameCamera ;
2025-02-19 09:15:51 -05:00
public bool haveGameCamera = > gameCamera ! = null ;
2025-02-18 10:30:11 -05:00
public BaseElement_BM matchedBM { get ; set ; }
public void SwitchCamera ( )
{
if ( ! haveGameCamera )
2025-02-19 09:15:51 -05:00
{
LogWindow . Log ( "GameCamera is not assigned" , Color . red ) ;
return ;
2025-02-18 10:30:11 -05:00
}
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 ) ;
2025-02-19 09:15:51 -05:00
var cameraMoveSpeedField = EditorManager . instance . uiManager . inspector . GenerateInputField ( this , container , "Scene Camera Move Speed" , nameof ( sceneCameraMoveSpeed ) ) ;
2025-02-18 10:30:11 -05:00
sceneCamera . SetUpInspector ( ) ;
}
}
}