This commit is contained in:
2025-06-29 21:28:49 +08:00
parent b85e29c540
commit 0f77ad6ad3
12 changed files with 16156 additions and 16017 deletions

View File

@@ -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);

View File

@@ -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();
}
}
}

View File

@@ -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;

View File

@@ -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>

View File

@@ -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;

View File

@@ -63,7 +63,7 @@ namespace Ichni.RhythmGame
public void ClosePath()
{
if (isClosed)
if (isClosed && pathNodeList.Count > 2)
{
path.Close();
}

View File

@@ -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",