1.修复一些错误2.准备专门提供基于距离的spline3.tracydll存在崩溃问题

This commit is contained in:
2025-11-28 17:35:24 +08:00
parent 2a6bc6edf8
commit ee7bd2d800
22 changed files with 1376 additions and 507 deletions

View File

@@ -2,6 +2,7 @@ using Convention;
using Convention.WindowsUI;
using Convention.WindowsUI.Variant;
using Demo.Game;
using Dreamteck.Splines;
using System;
using System.Collections;
using System.Collections.Generic;
@@ -12,6 +13,7 @@ using UnityEngine.SceneManagement;
namespace Demo.Editor
{
[DefaultExecutionOrder(-9999)]
public class EditorController : MonoSingleton<EditorController>
{
/// <summary>
@@ -43,6 +45,7 @@ namespace Demo.Editor
/// TODO: 替换为Dict<Tex>纹理组,这将用来支持更高的精度
/// </summary>
private Texture2D SpectrumRenderTexture;
private bool IsEnableUpdateSpectrumRenderTexture = false;
private Color backgroundColor = new(0, 0, 0, 0);
private Color waveformColor = new(1, 1, 1, 1);
@@ -150,8 +153,10 @@ namespace Demo.Editor
SpectrumRawImage.texture = SpectrumRenderTexture;
}
}
using (Profiler.BeginZone(nameof(UpdateSpectrumRenderTexture)))
UpdateSpectrumRenderTexture();
if (IsEnableUpdateSpectrumRenderTexture)
using (Profiler.BeginZone(nameof(UpdateSpectrumRenderTexture)))
UpdateSpectrumRenderTexture();
}
private void InjectSongLoadOverCallback(BasicAudioSystem audio)
@@ -370,37 +375,41 @@ namespace Demo.Editor
}));
}
private void RegisterVariableGenerater()
{
// Generate Framework
var generaters = DefaultInstantiate.GetScriptableObjectInstantiate();
foreach (var asm in AppDomain.CurrentDomain.GetAssemblies())
{
foreach (var type in asm.GetTypes())
{
string filename = Convention.RScript.Variable.CStyle.CScriptRScriptVariableGenerater.GetTypename(type);
if (Convention.RScript.Variable.RScriptInjectVariableGenerater.AllRScriptInjectVariables.ContainsKey(filename))
continue;
if (generaters.TryGetValue(filename, out var generater))
{
new Convention.RScript.Variable.CStyle.CScriptRScriptVariableGenerater(type, () => generater(), null, filename).Register();
}
else if (typeof(ScriptableObject).IsAssignableFrom(type))
{
new Convention.RScript.Variable.CStyle.CScriptRScriptVariableGenerater(type, null, null, filename).Register();
}
}
}
new Convention.RScript.Variable.CStyle.CScriptRScriptVariableGenerater(typeof(MathExtension.EaseCurveType), null, null,
Convention.RScript.Variable.CStyle.CScriptRScriptVariableGenerater.GetTypename(typeof(MathExtension.EaseCurveType))).Register();
new Convention.RScript.Variable.CStyle.CScriptRScriptVariableGenerater(typeof(SplineComputer.SampleMode), null, null,
Convention.RScript.Variable.CStyle.CScriptRScriptVariableGenerater.GetTypename(typeof(SplineComputer.SampleMode))).Register();
new Convention.RScript.Variable.CStyle.CScriptRScriptVariableGenerater(typeof(Spline.Type), null, null,
Convention.RScript.Variable.CStyle.CScriptRScriptVariableGenerater.GetTypename(typeof(Spline.Type))).Register();
}
private void Start()
{
Profiler.AppInfo(Application.productName);
GlobalConfig.ConstConfigFile = "config.easysave";
// Generate Framework
{
var generaters = DefaultInstantiate.GetScriptableObjectInstantiate();
foreach (var asm in AppDomain.CurrentDomain.GetAssemblies())
{
foreach (var type in asm.GetTypes())
{
string filename = Convention.RScript.Variable.CStyle.CScriptRScriptVariableGenerater.GetTypename(type);
if (Convention.RScript.Variable.RScriptInjectVariableGenerater.AllRScriptInjectVariables.ContainsKey(filename))
continue;
if (generaters.TryGetValue(filename, out var generater))
{
new Convention.RScript.Variable.CStyle.CScriptRScriptVariableGenerater(type, () => generater(), null, filename).Register();
Debug.Log($"{filename} register");
}
else if (typeof(ScriptableObject).IsAssignableFrom(type))
{
new Convention.RScript.Variable.CStyle.CScriptRScriptVariableGenerater(type, null, null, filename).Register();
Debug.Log($"{filename} register");
}
}
}
new Convention.RScript.Variable.CStyle.CScriptRScriptVariableGenerater(
typeof(MathExtension.EaseCurveType), null, null, nameof(MathExtension.EaseCurveType) + "Getter").Register();
Debug.Log($"{typeof(MathExtension.EaseCurveType)} register");
}
RegisterVariableGenerater();
// Helper Files
ToolFile helperHeaderDir = new ToolFile(PersistentHelperPath);
@@ -450,6 +459,10 @@ namespace Demo.Editor
{
IsLowPerformance = true;
}
else if (arg == "-UpdateSpectrumRenderTexture")
{
IsEnableUpdateSpectrumRenderTexture = true;
}
}
}