101 lines
4.2 KiB
C#
101 lines
4.2 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 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();
|
|
}
|
|
});
|
|
}
|
|
|
|
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();
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
} |