diff --git a/Assets/Assets/Resources/Line/Default.mat b/Assets/Assets/Resources/Line/Default.mat index 48b1818..01cba66 100644 --- a/Assets/Assets/Resources/Line/Default.mat +++ b/Assets/Assets/Resources/Line/Default.mat @@ -12,6 +12,7 @@ Material: m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 m_ValidKeywords: + - _EMISSION - _SURFACE_TYPE_TRANSPARENT m_InvalidKeywords: - _FLIPBOOKBLENDING_OFF diff --git a/Assets/Scripts/Framework/GameContent/GameController.cs b/Assets/Scripts/Framework/GameContent/GameController.cs index 8b9011d..1a0d41e 100644 --- a/Assets/Scripts/Framework/GameContent/GameController.cs +++ b/Assets/Scripts/Framework/GameContent/GameController.cs @@ -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 diff --git a/Assets/Scripts/Framework/ScriptableObject.cs b/Assets/Scripts/Framework/ScriptableObject.cs index d6c2eb5..dc217c4 100644 --- a/Assets/Scripts/Framework/ScriptableObject.cs +++ b/Assets/Scripts/Framework/ScriptableObject.cs @@ -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 { /// @@ -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) diff --git a/Assets/Scripts/Framework/ScriptableObjectInstantiate/DefaultScriptableObjectInstantiate.cs b/Assets/Scripts/Framework/ScriptableObjectInstantiate/DefaultScriptableObjectInstantiate.cs index 76edb02..35b9e2d 100644 --- a/Assets/Scripts/Framework/ScriptableObjectInstantiate/DefaultScriptableObjectInstantiate.cs +++ b/Assets/Scripts/Framework/ScriptableObjectInstantiate/DefaultScriptableObjectInstantiate.cs @@ -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> JudgementInstantiate = new() diff --git a/Assets/Scripts/Framework/[RScript] b/Assets/Scripts/Framework/[RScript] index 2f24d94..88b0edf 160000 --- a/Assets/Scripts/Framework/[RScript] +++ b/Assets/Scripts/Framework/[RScript] @@ -1 +1 @@ -Subproject commit 2f24d94db2826691ca2e465a5f70ef4c3c9e437a +Subproject commit 88b0edfe6a9327d4545800e7c2321e181208863a diff --git a/Assets/Scripts/MoreSpline/BasicSplineRenderer.cs b/Assets/Scripts/MoreSpline/BasicSplineRenderer.cs index c2af084..db252ea 100644 --- a/Assets/Scripts/MoreSpline/BasicSplineRenderer.cs +++ b/Assets/Scripts/MoreSpline/BasicSplineRenderer.cs @@ -89,9 +89,9 @@ namespace Demo.Game /// /// 可取值为30种缓动曲线 [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(curveType)); + ManualAddEntry(time, new(from, to), curveType); } [Convention.RScript.Variable.Attr.Method]