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 staticWindows; /// /// 快捷设置所有静态窗口的激活状态 /// 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().sizeDelta = new Vector2(hierarchy.GetComponent().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().sizeDelta.y / 2f), 0); hierarchy.addFolderButton.transform.position = new Vector3(hierarchy.addFolderButton.transform.position.x, HierarchyBottomLocatedPoint.transform.position.y + hierarchy.addFolderButton.GetComponent().sizeDelta.y / 2f, 0); inspector.GetComponent().sizeDelta = new Vector2(inspector.GetComponent().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().sizeDelta.y / 2f)) / inspector.GetComponent().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.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.referenceResolution = new Vector2(canvasScaler.referenceResolution.x - 100, canvasScaler.referenceResolution.y); } UpdateUIScale(); } } } }