已经可以重新恢复运行, 成功提升到RScript版本
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user