using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; using Convention; using Convention.WindowsUI.Variant; using Dreamteck.Splines; using UnityEngine; namespace Demo.Game { public static class DefaultInstantiate { public static Dictionary> GameObjectInstantiate = new() { { $"{nameof(Anchor)}",Anchor.Make}, // Camera { $"{nameof(CameraObject)}",CameraObject.MakeCameraObject}, // Global Env { $"{nameof(PrefabRootObject)}",PrefabRootObject.Make }, { $"{nameof(SkyUpdatement)}",SkyUpdatement.Make}, // Sub World { $"{nameof(SubWorld)}",SubWorld.Make}, }; public static Dictionary> DDTInstantiate = new() { { $"{nameof(DDT)}",DDT.Make} }; public static Dictionary> TickUpdatementInstantiate = new () { { $"{nameof(LookAtAnchor)}",LookAtAnchor.Make}, { $"{nameof(TickMovement)}",TickMovement.Make}, { $"{nameof(TickRotation)}",TickRotation.Make}, { $"{nameof(TickScaling)}",TickScaling.Make}, }; public static Dictionary> MaterialUpdatementInstantiate = new() { { $"{nameof(MaterialUpdatement)}",MaterialUpdatement.Make}, { $"{nameof(ColorUpdatement)}",ColorUpdatement.Make}, { $"{nameof(EmissionColorUpdatement)}",EmissionColorUpdatement.Make}, }; public static Dictionary> SplineInstantiate = new() { { $"{nameof(SplineCore)}",SplineCore.Make}, { $"{nameof(SplineNode)}",SplineNode.Make}, { $"{nameof(SplineAnchor)}",SplineAnchor.Make}, { $"{nameof(SplineMovement)}",SplineMovement.Make}, { $"{nameof(SplineRotation)}",SplineRotation.Make}, { $"{nameof(SplineScaling)}",SplineScaling.Make}, { $"{nameof(SplinePointerObject)}",SplinePointerObject.Make}, { $"{nameof(SplineTrackRenderer)}",SplineTrackRenderer.Make}, { $"{nameof(SplineTubeRenderer)}",SplineTubeRenderer.Make}, { $"{nameof(SplineSurfaceRenderer)}",SplineSurfaceRenderer.Make}, }; public static Dictionary> JudgementInstantiate = new() { // 可判定物只能有一个种类被使用,否则会引起输入检定冲突 { $"{nameof(FullScreenInteraction)}",FullScreenInteraction.Make}, // Effect { $"{nameof(ParticleEffect)}",ParticleEffect.Make }, // JudgementEffect { $"{nameof(ParticleJudgement)}",ParticleJudgement.Make}, }; public static void OpenInstantiateMenu(this ScriptableObject self, RectTransform item) { List result = new() { // Show Name new($"{self.ScriptName}",_=>{ }), new($"{self.GetType()}",_=>{ }), new($"Pos:{self.transform.position}",_=>{ }), new($"xPos:{self.transform.localPosition}",_=>{ }), new($"Angles:{self.transform.eulerAngles}",_=>{ }), new($"xAngles:{self.transform.localEulerAngles}",_=>{ }), new($"Scale:{self.transform.localScale}",_=>{ }), }; SharedModule.instance.OpenCustomMenu(item, result.ToArray()); } public static Dictionary> GetScriptableObjectInstantiate() { return new Dictionary>(GameObjectInstantiate .Union(DDTInstantiate) .Union(TickUpdatementInstantiate) .Union(MaterialUpdatementInstantiate) .Union(SplineInstantiate) .Union(JudgementInstantiate)); } } }