重构inspector!

This commit is contained in:
SoulliesOfficial
2025-04-14 17:49:47 -04:00
parent bbca8b43fe
commit 11543b4997
81 changed files with 1037 additions and 903 deletions

View File

@@ -45,6 +45,7 @@ public class BasePrefabsCollection : SerializedScriptableObject
[Title("DynamicUI相关-Simple")]
public GameObject dynamicUIContainer;
public GameObject dynamicUISubcontainer;
public GameObject inputField;
public GameObject vector3InputField;
public GameObject parameterText;

View File

@@ -38,12 +38,17 @@ namespace Ichni.Editor
public void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
string ShowCameraType() => isSceneCameraActive ? "Scene Camera" : "Game Camera";
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("Camera Manager");
var cameraTypeText = inspector.GenerateHintText(this, container, ShowCameraType);
var switchCameraButton = inspector.GenerateButton(this, container, "Switch Camera", SwitchCamera);
var cameraMoveSpeedField = inspector.GenerateInputField(this, container, "Scene Camera Move Speed", nameof(sceneCameraMoveSpeed));
//切换摄像机,设置场景相机
var cameraSettings = container.GenerateSubcontainer(3);
var cameraTypeText = inspector.GenerateHintText(this, cameraSettings, ShowCameraType);
var switchCameraButton = inspector.GenerateButton(this, cameraSettings, "Switch Camera", SwitchCamera);
var cameraMoveSpeedField = inspector.GenerateInputField(this, cameraSettings, "Scene Camera Move Speed", nameof(sceneCameraMoveSpeed));
sceneCamera.SetUpInspector();
}
}

View File

@@ -101,28 +101,28 @@ namespace Ichni
IHaveInspection inspector = uiManager.inspector;
var container = inspector.GenerateContainer("Editor Manager");
var judgeTypeDropdown = inspector.GenerateDropdown(this, container, "Judge Type",
var inGameSettings = container.GenerateSubcontainer(3);
var judgeTypeDropdown = inspector.GenerateDropdown(this, inGameSettings, "Judge Type",
typeof(NoteBase.NoteJudgeType), nameof(currentJudgeType));
var useNotePrefabToggle =
inspector.GenerateToggle(this, inGameSettings, "Use Note Prefab", nameof(useNotePrefab));
var generation = container.GenerateSubcontainer(3);
var generateFolderButton =
inspector.GenerateButton(this, container, "Generate Folder",
inspector.GenerateButton(this, generation, "Generate Folder",
() => ElementFolder.GenerateElement("Folder", Guid.NewGuid(),
new List<string>(), true, null));
var generateBackgroundSetterButton =
inspector.GenerateButton(this, container, "Generate Background Setter",
inspector.GenerateButton(this, generation, "Generate Background Setter",
() => BackgroundSetter.GenerateElement("Background Setter", Guid.NewGuid(),
new List<string>(), true, null, false,
"basic", "Skybox", "Background"));
var generateVariablesContainerButton =
inspector.GenerateButton(this, container, "Generate Variables Container",
inspector.GenerateButton(this, generation, "Generate Variables Container",
() => VariablesContainer.GenerateElement("Variables Container", Guid.NewGuid(),
new List<string>(), true, null, new Dictionary<string, int>()));
var useNotePrefabToggle =
inspector.GenerateToggle(this, container, "Use Note Prefab", nameof(useNotePrefab));
projectInformation.SetUpInspector();
songInformation.SetUpInspector();
cameraManager.SetUpInspector();

View File

@@ -27,21 +27,27 @@ namespace Ichni.Editor
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("Scene Camera");
var viewTypeDropdown = inspector.GenerateDropdown(this, container, "View Type", typeof(GameCamera.CameraViewType), nameof(viewType));
var perspectiveAngleField = inspector.GenerateInputField(this, container, "Perspective Angle", nameof(perspectiveAngle));
var orthographicSizeField = inspector.GenerateInputField(this, container, "Orthographic Size", nameof(orthographicSize));
viewTypeDropdown.AddListenerFunction(() => sceneCamera.orthographic = viewType == GameCamera.CameraViewType.Orthographic);
perspectiveAngleField.AddListenerFunction(() => sceneCamera.fieldOfView = perspectiveAngle);
orthographicSizeField.AddListenerFunction(() => sceneCamera.orthographicSize = orthographicSize);
//摄像机参数设置
var cameraSettings = container.GenerateSubcontainer(3);
var viewTypeDropdown =
inspector.GenerateDropdown(this, cameraSettings, "View Type", typeof(GameCamera.CameraViewType), nameof(viewType))
.AddListenerFunction(() => sceneCamera.orthographic = viewType == GameCamera.CameraViewType.Orthographic);
var perspectiveAngleField =
inspector.GenerateInputField(this, cameraSettings, "Perspective Angle", nameof(perspectiveAngle))
.AddListenerFunction(() => sceneCamera.fieldOfView = perspectiveAngle);
var orthographicSizeField =
inspector.GenerateInputField(this, cameraSettings, "Orthographic Size", nameof(orthographicSize))
.AddListenerFunction(() => sceneCamera.orthographicSize = orthographicSize);
var positionInputFields = inspector.GenerateVector3InputField(this, container, "Position", nameof(cameraPosition), true);
positionInputFields.AddListenerFunction(() => sceneCamera.transform.position = cameraPosition);
var eulerAnglesInputFields = inspector.GenerateVector3InputField(this, container, "Euler Angles", nameof(cameraEulerAngles), true);
eulerAnglesInputFields.AddListenerFunction(() => sceneCamera.transform.eulerAngles = cameraEulerAngles);
container.SetDeviver(1);
//摄像机位置与旋转设置
var transformSettings = container.GenerateSubcontainer(3);
var positionInputFields =
inspector.GenerateVector3InputField(this, transformSettings, "Position", nameof(cameraPosition), true)
.AddListenerFunction(() => sceneCamera.transform.position = cameraPosition);
var eulerAnglesInputFields =
inspector.GenerateVector3InputField(this, transformSettings, "Euler Angles", nameof(cameraEulerAngles), true)
.AddListenerFunction(() => sceneCamera.transform.eulerAngles = cameraEulerAngles);
}
private void Update()