Files
ichni_Creator_Studio/Assets/Scripts/DynamicUI/EditorUIManager.cs
2025-06-29 21:28:49 +08:00

98 lines
4.1 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Dreamteck.Splines.Primitives;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.UI;
namespace Ichni.Editor
{
public class EditorUIManager : MonoBehaviour
{
public MainPage mainPage;
public Hierarchy hierarchy;
public Inspector inspector;
public Timeline timeline;
public List<StaticWindow> staticWindows;
/// <summary>
/// 快捷设置所有静态窗口的激活状态
/// </summary>
public void SetAllStaticWindowsActive()
{
bool anyWindowActive = staticWindows.Any(window => window.gameObject.activeSelf);
staticWindows.ForEach(window =>
{
if (anyWindowActive)
{
window.DisableWindow();
}
else
{
window.EnableWindow();
}
});
}
public Canvas[] scaleParts;
public GameObject HierarchyTopMark, InspectorTopMark, HierarchyBottomMark, InspectorBottomMark;
public GameObject HierarchyTopLocatedPoint, HierarchyBottomLocatedPoint,
InspectorTopLocatedPoint, InspectorBottomLocatedPoint;
public void Start()
{
UpdateUIScale();
}
public void UpdateUIScale()
{
Canvas.ForceUpdateCanvases();
HierarchyTopLocatedPoint.transform.position = HierarchyTopMark.transform.position;
HierarchyBottomLocatedPoint.transform.position = HierarchyBottomMark.transform.position;
InspectorTopLocatedPoint.transform.position = InspectorTopMark.transform.position;
InspectorBottomLocatedPoint.transform.position = InspectorBottomMark.transform.position;
hierarchy.GetComponent<RectTransform>().sizeDelta = new Vector2(hierarchy.GetComponent<RectTransform>().sizeDelta.x,
HierarchyTopLocatedPoint.transform.localPosition.y - HierarchyBottomLocatedPoint.transform.localPosition.y);
hierarchy.transform.localPosition = new Vector3(hierarchy.transform.localPosition.x, HierarchyTopLocatedPoint.transform.localPosition.y - (hierarchy.GetComponent<RectTransform>().sizeDelta.y / 2f), 0);
hierarchy.addFolderButton.transform.position = new Vector3(hierarchy.addFolderButton.transform.position.x, HierarchyBottomLocatedPoint.transform.position.y + hierarchy.addFolderButton.GetComponent<RectTransform>().sizeDelta.y / 2f, 0);
inspector.GetComponent<RectTransform>().sizeDelta = new Vector2(inspector.GetComponent<RectTransform>().sizeDelta.x,
InspectorTopLocatedPoint.transform.localPosition.y - InspectorBottomLocatedPoint.transform.localPosition.y);
inspector.transform.localPosition = new Vector3(inspector.transform.localPosition.x, (InspectorTopLocatedPoint.transform.localPosition.y - (inspector.GetComponent<RectTransform>().sizeDelta.y / 2f)) / inspector.GetComponent<RectTransform>().localScale.y, 0);
}
private void Update()
{
if (Keyboard.current.leftCtrlKey.isPressed && Keyboard.current.upArrowKey.wasPressedThisFrame)
{
foreach (Canvas i in scaleParts)
{
var canvasScaler = i.GetComponent<CanvasScaler>();
canvasScaler.referenceResolution = new Vector2(canvasScaler.referenceResolution.x + 100, canvasScaler.referenceResolution.y);
}
UpdateUIScale();
}
else
if (Keyboard.current.leftCtrlKey.isPressed && Keyboard.current.downArrowKey.wasPressedThisFrame)
{
foreach (Canvas i in scaleParts)
{
var canvasScaler = i.GetComponent<CanvasScaler>();
canvasScaler.referenceResolution = new Vector2(canvasScaler.referenceResolution.x - 100, canvasScaler.referenceResolution.y);
}
UpdateUIScale();
}
}
}
}