Files
ichni_Creator_Studio/Assets/Scripts/DynamicUI/EditorUIManager.cs

101 lines
4.2 KiB
C#
Raw Normal View History

2025-02-09 23:47:42 -05:00
using System.Collections;
using System.Collections.Generic;
using System.Linq;
2025-06-07 15:09:22 +08:00
using Dreamteck.Splines.Primitives;
2025-02-09 23:47:42 -05:00
using UnityEngine;
2025-06-07 15:09:22 +08:00
using UnityEngine.InputSystem;
using UnityEngine.UI;
2025-02-09 23:47:42 -05:00
namespace Ichni.Editor
{
public class EditorUIManager : MonoBehaviour
{
public MainPage mainPage;
2025-02-09 23:47:42 -05:00
public Hierarchy hierarchy;
2025-02-11 22:58:56 -05:00
public Inspector inspector;
2025-02-14 22:04:21 -05:00
public Timeline timeline;
public Canvas WindowsCanvas;
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();
}
});
}
2025-06-07 15:09:22 +08:00
public Canvas[] scaleParts;
public GameObject HierarchyTopMark, InspectorTopMark, HierarchyBottomMark, InspectorBottomMark;
public GameObject HierarchyTopLocatedPoint, HierarchyBottomLocatedPoint,
InspectorTopLocatedPoint, InspectorBottomLocatedPoint;
public void Start()
{
UpdateUIScale();
}
2025-06-29 21:28:49 +08:00
2025-06-07 15:09:22 +08:00
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);
2025-06-29 21:28:49 +08:00
hierarchy.addFolderButton.transform.position = new Vector3(hierarchy.addFolderButton.transform.position.x, HierarchyBottomLocatedPoint.transform.position.y + hierarchy.addFolderButton.GetComponent<RectTransform>().sizeDelta.y / 2f, 0);
2025-06-07 15:09:22 +08:00
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();
}
}
2025-02-09 23:47:42 -05:00
}
}