Files
Studio/Assets/Editor/RTG/RTCameraInspector.cs

70 lines
2.7 KiB
C#
Raw Normal View History

2025-02-19 17:24:26 +09:00
using UnityEngine;
using UnityEditor;
namespace RTG.Editor
{
[CustomEditor(typeof(RTFocusCamera))]
public class RTCameraInspector : UnityEditor.Editor
{
private RTFocusCamera _camera;
public override void OnInspectorGUI()
{
Camera newCamera;
var content = new GUIContent();
content.text = "Target camera";
content.tooltip = "Allows you to specify the camera object which will be controlled by the RTFocusCamera script. Note: Prefabs are not allowed. Only scene cameras can be used.";
newCamera = EditorGUILayout.ObjectField(content, _camera.TargetCamera, typeof(Camera), true) as Camera;
if (newCamera != _camera.TargetCamera)
{
EditorUndoEx.Record(_camera);
_camera.SetTargetCamera(newCamera);
}
_camera.Settings.RenderEditorGUI(_camera);
EditorGUILayout.Separator();
_camera.MoveSettings.UsesFoldout = true;
_camera.MoveSettings.FoldoutLabel = "Move settings";
_camera.MoveSettings.RenderEditorGUI(_camera);
_camera.PanSettings.UsesFoldout = true;
_camera.PanSettings.FoldoutLabel = "Pan settings";
_camera.PanSettings.RenderEditorGUI(_camera);
_camera.LookAroundSettings.UsesFoldout = true;
_camera.LookAroundSettings.FoldoutLabel = "Look around settings";
_camera.LookAroundSettings.RenderEditorGUI(_camera);
_camera.OrbitSettings.UsesFoldout = true;
_camera.OrbitSettings.FoldoutLabel = "Orbit settings";
_camera.OrbitSettings.RenderEditorGUI(_camera);
_camera.ZoomSettings.UsesFoldout = true;
_camera.ZoomSettings.FoldoutLabel = "Zoom settings";
_camera.ZoomSettings.RenderEditorGUI(_camera);
_camera.FocusSettings.UsesFoldout = true;
_camera.FocusSettings.FoldoutLabel = "Focus settings";
_camera.FocusSettings.RenderEditorGUI(_camera);
_camera.RotationSwitchSettings.UsesFoldout = true;
_camera.RotationSwitchSettings.FoldoutLabel = "Rotation switch settings";
_camera.RotationSwitchSettings.RenderEditorGUI(_camera);
_camera.ProjectionSwitchSettings.UsesFoldout = true;
_camera.ProjectionSwitchSettings.FoldoutLabel = "Projection switch settings";
_camera.ProjectionSwitchSettings.RenderEditorGUI(_camera);
_camera.Hotkeys.UsesFoldout = true;
_camera.Hotkeys.FoldoutLabel = "Hotkeys";
_camera.Hotkeys.RenderEditorGUI(_camera);
}
private void OnEnable()
{
_camera = target as RTFocusCamera;
}
}
}