已经可以重新恢复运行, 成功提升到RScript版本

This commit is contained in:
2025-11-26 17:59:18 +08:00
parent a0347dcfe6
commit 19175b72b3
6 changed files with 83 additions and 14 deletions

View File

@@ -12,6 +12,7 @@ Material:
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _EMISSION
- _SURFACE_TYPE_TRANSPARENT
m_InvalidKeywords:
- _FLIPBOOKBLENDING_OFF

View File

@@ -86,6 +86,7 @@ namespace Demo.Game
}
if (string.IsNullOrEmpty(clipPath) == false)
{
/*
IEnumerator Run()
{
#if ENABLE_CLASS_Interaction
@@ -106,6 +107,24 @@ namespace Demo.Game
}
StartCoroutine(Run());
*/
#if ENABLE_CLASS_Interaction
var clipFile = new Interaction(clipPath);
#else
var clipFile = new ToolFile(clipPath);
#endif
if (clipFile.Exists() == false)
clipFile = new(MainConfig.GetFile(clipPath).GetFullPath());
if (clipFile.Exists() == false)
{
Debug.LogError($"Cannt load {clipPath}", this);
yield break;
}
yield return MainAudio.LoadAudio(clipFile, audioType);
content.SongLoadOverCallback(MainAudio);
StartCoroutine(GameAudioSystemInit());
}
}
else

View File

@@ -20,6 +20,46 @@ namespace Demo
#region ScriptableObject Inside
namespace PrivateType
{
public class EaseCurveTypeInstance
{
public static EaseCurveTypeInstance instance = new();
public MathExtension.EaseCurveType Linear => MathExtension.EaseCurveType.Linear;
public MathExtension.EaseCurveType InQuad => MathExtension.EaseCurveType.InQuad;
public MathExtension.EaseCurveType OutQuad => MathExtension.EaseCurveType.OutQuad;
public MathExtension.EaseCurveType InOutQuad => MathExtension.EaseCurveType.InOutQuad;
public MathExtension.EaseCurveType InCubic => MathExtension.EaseCurveType.InCubic;
public MathExtension.EaseCurveType OutCubic => MathExtension.EaseCurveType.OutCubic;
public MathExtension.EaseCurveType InOutCubic => MathExtension.EaseCurveType.InOutCubic;
public MathExtension.EaseCurveType InQuart => MathExtension.EaseCurveType.InQuart;
public MathExtension.EaseCurveType OutQuart => MathExtension.EaseCurveType.OutQuart;
public MathExtension.EaseCurveType InOutQuart => MathExtension.EaseCurveType.InOutQuart;
public MathExtension.EaseCurveType InQuint => MathExtension.EaseCurveType.InQuint;
public MathExtension.EaseCurveType OutQuint => MathExtension.EaseCurveType.OutQuint;
public MathExtension.EaseCurveType InOutQuint => MathExtension.EaseCurveType.InOutQuint;
public MathExtension.EaseCurveType InSine => MathExtension.EaseCurveType.InSine;
public MathExtension.EaseCurveType OutSine => MathExtension.EaseCurveType.OutSine;
public MathExtension.EaseCurveType InOutSine => MathExtension.EaseCurveType.InOutSine;
public MathExtension.EaseCurveType InExpo => MathExtension.EaseCurveType.InExpo;
public MathExtension.EaseCurveType OutExpo => MathExtension.EaseCurveType.OutExpo;
public MathExtension.EaseCurveType InOutExpo => MathExtension.EaseCurveType.InOutExpo;
public MathExtension.EaseCurveType InCirc => MathExtension.EaseCurveType.InCirc;
public MathExtension.EaseCurveType OutCirc => MathExtension.EaseCurveType.OutCirc;
public MathExtension.EaseCurveType InOutCirc => MathExtension.EaseCurveType.InOutCirc;
public MathExtension.EaseCurveType InBounce => MathExtension.EaseCurveType.InBounce;
public MathExtension.EaseCurveType OutBounce => MathExtension.EaseCurveType.OutBounce;
public MathExtension.EaseCurveType InOutBounce => MathExtension.EaseCurveType.InOutBounce;
public MathExtension.EaseCurveType InElastic => MathExtension.EaseCurveType.InElastic;
public MathExtension.EaseCurveType OutElastic => MathExtension.EaseCurveType.OutElastic;
public MathExtension.EaseCurveType InOutElastic => MathExtension.EaseCurveType.InOutElastic;
public MathExtension.EaseCurveType InBack => MathExtension.EaseCurveType.InBack;
public MathExtension.EaseCurveType OutBack => MathExtension.EaseCurveType.OutBack;
public MathExtension.EaseCurveType InOutBack => MathExtension.EaseCurveType.InOutBack;
public MathExtension.EaseCurveType Custom => MathExtension.EaseCurveType.Custom;
}
}
public partial class ScriptableObject : IScriptableObject
{
/// <summary>
@@ -394,17 +434,19 @@ namespace Demo
{
typeof(Mathf),
typeof(UnityEngine.Random),
typeof(MathExtension.EaseCurveType)
};
RScriptVariables variables = new()
{
{ "this", new() { data = this, type = this.GetType() } },
{ "self", new() { data = this, type = this.GetType() } }
{ "self", new() { data = this, type = this.GetType() } },
{ nameof(MathExtension.EaseCurveType),new(){ data = PrivateType.EaseCurveTypeInstance.instance, type = typeof(PrivateType.EaseCurveTypeInstance) } }
};
foreach (var type in DefaultInstantiate.GetScriptableObjectInstantiate().Keys)
{
variables.Add(type, new(type.GetType(), type));
}
// 预设变量会导致问题(当前变量类型在不同命名空间中无法更改)
// foreach (var type in DefaultInstantiate.GetScriptableObjectInstantiate().Keys)
// {
// variables.Add(type, new(type.GetType(), type));
// }
return engine.RunAsync(script, importClass, variables);
}
@@ -690,10 +732,17 @@ namespace Demo
public override IEnumerator UnloadScript()
{
yield return base.UnloadScript();
MyTimelineItem.RawButton.onClick.RemoveAllListeners();
MyTimelineEntry.Release();
MyTimelineEntry = null;
MyTimelineItem = null;
// 这里的两处判空是因为如果抛出错误就会打断了逻辑, 所以这里需要判断
if (MyTimelineItem)
{
MyTimelineItem.RawButton.onClick.RemoveAllListeners();
MyTimelineItem = null;
}
if (MyTimelineEntry != null)
{
MyTimelineEntry.Release();
MyTimelineEntry = null;
}
}
public override void OnHierarchyItemClick(HierarchyItem item)

View File

@@ -55,7 +55,7 @@ namespace Demo.Game
{ $"{nameof(SplinePointerObject)}",SplinePointerObject.Make},
{ $"{nameof(SplineTrackRenderer)}",SplineTrackRenderer.Make},
{ $"{nameof(SplineTubeRenderer)}",SplineTubeRenderer.Make},
{ $"{nameof(SplineSurfaceRenderer)}",SplineTubeRenderer.Make},
{ $"{nameof(SplineSurfaceRenderer)}",SplineSurfaceRenderer.Make},
};
public static Dictionary<string, Func<ScriptableObject>> JudgementInstantiate = new()

View File

@@ -89,9 +89,9 @@ namespace Demo.Game
/// <param name="to"></param>
/// <param name="curveType">可取值为30种缓动曲线</param>
[Convention.RScript.Variable.Attr.Method]
public void Add(float time, float from, float to, string curveType)
public void Add(float time, float from, float to, MathExtension.EaseCurveType curveType)
{
ManualAddEntry(time, new(from, to), Enum.Parse<MathExtension.EaseCurveType>(curveType));
ManualAddEntry(time, new(from, to), curveType);
}
[Convention.RScript.Variable.Attr.Method]