已经可以重新恢复运行, 成功提升到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_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0 m_ModifiedSerializedProperties: 0
m_ValidKeywords: m_ValidKeywords:
- _EMISSION
- _SURFACE_TYPE_TRANSPARENT - _SURFACE_TYPE_TRANSPARENT
m_InvalidKeywords: m_InvalidKeywords:
- _FLIPBOOKBLENDING_OFF - _FLIPBOOKBLENDING_OFF

View File

@@ -86,6 +86,7 @@ namespace Demo.Game
} }
if (string.IsNullOrEmpty(clipPath) == false) if (string.IsNullOrEmpty(clipPath) == false)
{ {
/*
IEnumerator Run() IEnumerator Run()
{ {
#if ENABLE_CLASS_Interaction #if ENABLE_CLASS_Interaction
@@ -106,6 +107,24 @@ namespace Demo.Game
} }
StartCoroutine(Run()); 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 else

View File

@@ -20,6 +20,46 @@ namespace Demo
#region ScriptableObject Inside #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 public partial class ScriptableObject : IScriptableObject
{ {
/// <summary> /// <summary>
@@ -394,17 +434,19 @@ namespace Demo
{ {
typeof(Mathf), typeof(Mathf),
typeof(UnityEngine.Random), typeof(UnityEngine.Random),
typeof(MathExtension.EaseCurveType)
}; };
RScriptVariables variables = new() RScriptVariables variables = new()
{ {
{ "this", new() { data = this, type = this.GetType() } }, { "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); return engine.RunAsync(script, importClass, variables);
} }
@@ -690,10 +732,17 @@ namespace Demo
public override IEnumerator UnloadScript() public override IEnumerator UnloadScript()
{ {
yield return base.UnloadScript(); yield return base.UnloadScript();
MyTimelineItem.RawButton.onClick.RemoveAllListeners(); // 这里的两处判空是因为如果抛出错误就会打断了逻辑, 所以这里需要判断
MyTimelineEntry.Release(); if (MyTimelineItem)
MyTimelineEntry = null; {
MyTimelineItem = null; MyTimelineItem.RawButton.onClick.RemoveAllListeners();
MyTimelineItem = null;
}
if (MyTimelineEntry != null)
{
MyTimelineEntry.Release();
MyTimelineEntry = null;
}
} }
public override void OnHierarchyItemClick(HierarchyItem item) public override void OnHierarchyItemClick(HierarchyItem item)

View File

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

View File

@@ -89,9 +89,9 @@ namespace Demo.Game
/// <param name="to"></param> /// <param name="to"></param>
/// <param name="curveType">可取值为30种缓动曲线</param> /// <param name="curveType">可取值为30种缓动曲线</param>
[Convention.RScript.Variable.Attr.Method] [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] [Convention.RScript.Variable.Attr.Method]