优化
This commit is contained in:
@@ -46,6 +46,7 @@ namespace Ichni.Editor
|
||||
{
|
||||
UpdateUIScale();
|
||||
}
|
||||
|
||||
public void UpdateUIScale()
|
||||
{
|
||||
Canvas.ForceUpdateCanvases();
|
||||
@@ -59,7 +60,7 @@ namespace Ichni.Editor
|
||||
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 + 30, 0);
|
||||
hierarchy.addFolderButton.transform.position = new Vector3(hierarchy.addFolderButton.transform.position.x, HierarchyBottomLocatedPoint.transform.position.y + hierarchy.addFolderButton.GetComponent<RectTransform>().sizeDelta.y / 2f, 0);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -34,25 +34,25 @@ namespace Ichni.Editor
|
||||
|
||||
public ScrollRect scrollRect;
|
||||
public Vector2 vector2;
|
||||
public void FindTab(GameElement targetElement, bool findparent = false)
|
||||
public void FindTab(GameElement targetElement)
|
||||
{
|
||||
//targetElement.SetUpInspector();
|
||||
StartCoroutine(TryGetTab(targetElement));
|
||||
targetElement.ScanAndAddEnableTypes();
|
||||
if (!EditorManager.instance.ExpandWhileClick)
|
||||
{
|
||||
var tab = EditorManager.instance.uiManager.hierarchy.GenerateTab(targetElement, null);
|
||||
tab.SelectGameElement();
|
||||
Destroy(tab.gameObject);
|
||||
EditorManager.instance.uiManager.hierarchy.tabList.Remove(tab);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
StartCoroutine(TryGetTab(targetElement));
|
||||
}
|
||||
|
||||
}
|
||||
public IEnumerator TryGetTab(GameElement targetElement)
|
||||
{
|
||||
// targetElement.ScanAndAddEnableTypes();
|
||||
// if (!targetElement.GetChildrenByTypes().Contains(targetElement))
|
||||
// {
|
||||
// var tab = EditorManager.instance.uiManager.hierarchy.GenerateTab(targetElement, null);
|
||||
// tab.SelectGameElement();
|
||||
// Destroy(tab.gameObject);
|
||||
// EditorManager.instance.uiManager.hierarchy.tabList.Remove(tab);
|
||||
// yield break;
|
||||
// }
|
||||
// EditorManager.instance.uiManager.inspector.ClearInspector();
|
||||
// EditorManager.instance.uiManager.inspector.SetInspector(targetElement);
|
||||
//StandardInspectionElement.GenerateForLoading();
|
||||
// 1. 向上找到最近的有Tab的祖先
|
||||
Stack<GameElement> stack = new Stack<GameElement>();
|
||||
GameElement current = targetElement;
|
||||
@@ -74,11 +74,15 @@ namespace Ichni.Editor
|
||||
{
|
||||
elem.parentElement.connectedTab.ExpandOrFold(true);
|
||||
}
|
||||
else
|
||||
else if (elem.parentElement.connectedTab.ienumerator is null)
|
||||
{
|
||||
elem.parentElement.connectedTab.ExpandOrFold();
|
||||
elem.parentElement.connectedTab.ExpandOrFold(true);//合上再展开,这思路也是没谁了
|
||||
}
|
||||
else
|
||||
{
|
||||
//他就在展开了,等下就好了
|
||||
}
|
||||
yield return null;
|
||||
}
|
||||
// 等待当前elem的Tab生成
|
||||
@@ -122,5 +126,6 @@ namespace Ichni.Editor
|
||||
scrollRect.verticalNormalizedPosition = normalized;
|
||||
finalTab.SelectGameElement();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -125,7 +125,7 @@ namespace Ichni.Editor
|
||||
EditorManager.instance.uiManager.inspector.SetInspector(connectedGameElement);
|
||||
EditorManager.instance.timeline.SetTimeLine(connectedGameElement);
|
||||
}
|
||||
private IEnumerator ienumerator = null;
|
||||
public IEnumerator ienumerator = null;
|
||||
public void ExpandOrFold()
|
||||
{
|
||||
ExpandOrFold(false);
|
||||
@@ -182,12 +182,12 @@ namespace Ichni.Editor
|
||||
}
|
||||
private IEnumerator ExpandOverTime(List<GameElement> FixedList)//帧率过低的时候等一下再实例化
|
||||
{
|
||||
|
||||
float StrandTimeWhileStartUp = EditorManager.instance.CurrentFrameRate;
|
||||
float startTime = Time.realtimeSinceStartup;
|
||||
for (var index = 0; index < FixedList.Count; index++)
|
||||
{
|
||||
int hasYield = 0;
|
||||
while (Time.realtimeSinceStartup - startTime > 1f / EditorManager.instance.editorSettings.frameRate * 3f && hasYield <= 2)
|
||||
while (Time.realtimeSinceStartup - startTime > 1f / StrandTimeWhileStartUp * 3f && hasYield <= 2)
|
||||
{
|
||||
yield return null;
|
||||
hasYield += 1;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Ichni.Editor;
|
||||
using Ichni.RhythmGame.Beatmap;
|
||||
using Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse;
|
||||
@@ -94,6 +95,7 @@ namespace Ichni.RhythmGame
|
||||
{
|
||||
var container = inspector.GenerateContainer(effect.Key);
|
||||
var subcontainer = container.GenerateSubcontainer(3);
|
||||
//都有dictonary了想个办法做Dropdown
|
||||
var effectNameInputField = inspector.GenerateInputField(subcontainer, "Effect Name");
|
||||
var addEffectButton = inspector.GenerateButton(this, subcontainer, "Add Effect", () =>
|
||||
{
|
||||
@@ -325,13 +327,13 @@ namespace Ichni.RhythmGame
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 如果效果被打断(主要对于Holding Effect),则触发这个方法
|
||||
/// </summary>
|
||||
public virtual void Disrupt()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -225,7 +225,7 @@ namespace Ichni.RhythmGame
|
||||
// 只用反射方式生成enableTypes的UI
|
||||
if (enableTypes != null && enableTypes.Count > 0)
|
||||
{
|
||||
var elcontainer = inspector.GenerateContainer("Enable Children DisPlay");
|
||||
var elcontainer = inspector.GenerateContainer("Enable Children Display");
|
||||
var enableTypeContainer = elcontainer.GenerateSubcontainer(3);
|
||||
var type = enableTypes.GetType().GetGenericArguments()[0];
|
||||
int elcount = 0;
|
||||
|
||||
@@ -63,7 +63,7 @@ namespace Ichni.RhythmGame
|
||||
|
||||
public void ClosePath()
|
||||
{
|
||||
if (isClosed)
|
||||
if (isClosed && pathNodeList.Count > 2)
|
||||
{
|
||||
path.Close();
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ using Ichni.RhythmGame;
|
||||
using Ichni.RhythmGame.Beatmap;
|
||||
using Ichni.RhythmGame.ThemeBundles.Basic;
|
||||
using Sirenix.OdinInspector;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Ichni
|
||||
@@ -37,7 +38,8 @@ namespace Ichni
|
||||
public CommandScripts commandScripts;
|
||||
|
||||
public NoteBase.NoteJudgeType currentJudgeType;
|
||||
public bool useNotePrefab;
|
||||
public bool useNotePrefab = true;
|
||||
public bool ExpandWhileClick = false;
|
||||
public BasePrefabsCollection basePrefabs;
|
||||
public Dictionary<string, CustomPrefabsCollection> customPrefabs;
|
||||
public NoteAudioCollection noteAudioCollection;
|
||||
@@ -68,6 +70,8 @@ namespace Ichni
|
||||
|
||||
private void Start()
|
||||
{
|
||||
StartCoroutine(StartFrameRate());
|
||||
|
||||
this.elementName = "EditorManager";
|
||||
this.elementGuid = Guid.Empty;
|
||||
uiManager.hierarchy.GenerateTab(this, null);
|
||||
@@ -85,7 +89,23 @@ namespace Ichni
|
||||
|
||||
isLoaded = true;
|
||||
}
|
||||
|
||||
public float CurrentFrameRate;
|
||||
public TMP_Text FPStext;
|
||||
private IEnumerator StartFrameRate()
|
||||
{
|
||||
int frameCount = 0;
|
||||
while (true)
|
||||
{
|
||||
CurrentFrameRate = 1f / Time.deltaTime;
|
||||
if (frameCount == 2)
|
||||
{
|
||||
frameCount = 0;
|
||||
FPStext.text = string.Format("{0:N2}", CurrentFrameRate);
|
||||
}
|
||||
frameCount++;
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
private void Update()
|
||||
{
|
||||
if (isLoaded) projectManager.autoSaveManager.UpdateAutoSave();
|
||||
@@ -124,6 +144,9 @@ namespace Ichni
|
||||
var useNotePrefabToggle =
|
||||
inspector.GenerateToggle(this, inGameSettings, "Use Note Prefab", nameof(useNotePrefab));
|
||||
|
||||
var ExpandWhileClickToggle =
|
||||
inspector.GenerateToggle(this, inGameSettings, "Expand Tab While Click", nameof(ExpandWhileClick));
|
||||
|
||||
var generation = container.GenerateSubcontainer(3);
|
||||
var generateFolderButton =
|
||||
inspector.GenerateButton(this, generation, "Generate Folder",
|
||||
|
||||
Reference in New Issue
Block a user