├── .gitignore ├── .vsconfig ├── Assets ├── .action.json ├── ActionEditor.meta ├── ActionEditor │ ├── Editor.meta │ ├── Editor │ │ ├── ActionEditor.Editor.asmdef │ │ ├── ActionEditor.Editor.asmdef.meta │ │ ├── App.cs │ │ ├── App.cs.meta │ │ ├── Attributes.cs │ │ ├── Attributes.cs.meta │ │ ├── EditorEX.cs │ │ ├── EditorEX.cs.meta │ │ ├── Inspectors.meta │ │ ├── Inspectors │ │ │ ├── Com.meta │ │ │ ├── Com │ │ │ │ ├── ActionClipInspector.cs │ │ │ │ ├── ActionClipInspector.cs.meta │ │ │ │ ├── AssetInspector.cs │ │ │ │ ├── AssetInspector.cs.meta │ │ │ │ ├── GroupInspector.cs │ │ │ │ ├── GroupInspector.cs.meta │ │ │ │ ├── TrackInspector.cs │ │ │ │ └── TrackInspector.cs.meta │ │ │ ├── EditorCustomFactory.cs │ │ │ ├── EditorCustomFactory.cs.meta │ │ │ ├── InspectorPreviewAsset.cs │ │ │ ├── InspectorPreviewAsset.cs.meta │ │ │ ├── InspectorPreviewAssetInspector.cs │ │ │ ├── InspectorPreviewAssetInspector.cs.meta │ │ │ ├── InspectorsBase.cs │ │ │ └── InspectorsBase.cs.meta │ │ ├── Languages.meta │ │ ├── Languages │ │ │ ├── ILanguages.cs │ │ │ ├── ILanguages.cs.meta │ │ │ ├── Lan.cs │ │ │ ├── Lan.cs.meta │ │ │ ├── LanCHS.cs │ │ │ ├── LanCHS.cs.meta │ │ │ ├── LanEN.cs │ │ │ └── LanEN.cs.meta │ │ ├── Prefs.cs │ │ ├── Prefs.cs.meta │ │ ├── Preview.meta │ │ ├── Preview │ │ │ ├── AssetPlayer.cs │ │ │ ├── AssetPlayer.cs.meta │ │ │ ├── PreviewBase.cs │ │ │ ├── PreviewBase.cs.meta │ │ │ ├── TimePointers.cs │ │ │ └── TimePointers.cs.meta │ │ ├── Resources.meta │ │ ├── Resources │ │ │ ├── Stripes.png │ │ │ └── Stripes.png.meta │ │ ├── Styles.cs │ │ ├── Styles.cs.meta │ │ ├── Window.meta │ │ └── Window │ │ │ ├── ActionEditorWindow.cs │ │ │ ├── ActionEditorWindow.cs.meta │ │ │ ├── AssetPick.cs │ │ │ ├── AssetPick.cs.meta │ │ │ ├── Clip.meta │ │ │ ├── Clip │ │ │ ├── BasicClipDraw.cs │ │ │ ├── BasicClipDraw.cs.meta │ │ │ ├── ClipDragger.cs │ │ │ ├── ClipDragger.cs.meta │ │ │ ├── ClipDrawer.cs │ │ │ ├── ClipDrawer.cs.meta │ │ │ ├── SignalClipDraw.cs │ │ │ └── SignalClipDraw.cs.meta │ │ │ ├── CreateAssetWindow.cs │ │ │ ├── CreateAssetWindow.cs.meta │ │ │ ├── PreferencesWindow.cs │ │ │ ├── PreferencesWindow.cs.meta │ │ │ ├── Timeline.meta │ │ │ └── Timeline │ │ │ ├── SplitterView.cs │ │ │ ├── SplitterView.cs.meta │ │ │ ├── TimelineHeaderView.cs │ │ │ ├── TimelineHeaderView.cs.meta │ │ │ ├── TimelineMiddleView.cs │ │ │ ├── TimelineMiddleView.cs.meta │ │ │ ├── TimelinePointerView.cs │ │ │ ├── TimelinePointerView.cs.meta │ │ │ ├── TimelineTrackItemView.cs │ │ │ ├── TimelineTrackItemView.cs.meta │ │ │ ├── TimelineView.cs │ │ │ ├── TimelineView.cs.meta │ │ │ ├── ViewBase.cs │ │ │ └── ViewBase.cs.meta │ ├── Runtime.meta │ ├── Runtime │ │ ├── ActionEditor.asmdef │ │ ├── ActionEditor.asmdef.meta │ │ ├── Assets.meta │ │ ├── Assets │ │ │ ├── Asset.cs │ │ │ ├── Asset.cs.meta │ │ │ ├── Clip.cs │ │ │ ├── Clip.cs.meta │ │ │ ├── DirectableBase.cs │ │ │ ├── DirectableBase.cs.meta │ │ │ ├── Group.cs │ │ │ ├── Group.cs.meta │ │ │ ├── Track.cs │ │ │ └── Track.cs.meta │ │ ├── Attributes.cs │ │ ├── Attributes.cs.meta │ │ ├── IAction.cs │ │ ├── IAction.cs.meta │ │ ├── IDirectableExtensions.cs │ │ └── IDirectableExtensions.cs.meta │ ├── package.json │ └── package.json.meta ├── Editor.meta ├── Editor │ ├── ActionEditor.txt │ └── ActionEditor.txt.meta ├── ResRaw.meta ├── ResRaw │ ├── Effects.meta │ ├── Effects │ │ ├── Animations.meta │ │ ├── Animations │ │ │ ├── 301.anim │ │ │ ├── 301.anim.meta │ │ │ ├── VFX_Anim02.anim │ │ │ ├── VFX_Anim02.anim.meta │ │ │ ├── VFX_Anim33203.anim │ │ │ ├── VFX_Anim33203.anim.meta │ │ │ ├── VFX_Animn04.anim │ │ │ ├── VFX_Animn04.anim.meta │ │ │ ├── pPlane2.controller │ │ │ ├── pPlane2.controller.meta │ │ │ ├── pPlane4.controller │ │ │ ├── pPlane4.controller.meta │ │ │ ├── polySurface5.controller │ │ │ ├── polySurface5.controller.meta │ │ │ ├── polySurface6.controller │ │ │ └── polySurface6.controller.meta │ │ ├── Materials.meta │ │ ├── Materials │ │ │ ├── VFX_0201.mat │ │ │ ├── VFX_0201.mat.meta │ │ │ ├── VFX_02118.mat │ │ │ ├── VFX_02118.mat.meta │ │ │ ├── VFX_02131.mat │ │ │ ├── VFX_02131.mat.meta │ │ │ ├── VFX_02742.mat │ │ │ ├── VFX_02742.mat.meta │ │ │ ├── vfx3244.mat │ │ │ └── vfx3244.mat.meta │ │ ├── Models.meta │ │ ├── Models │ │ │ ├── VFX_Model7.fbx │ │ │ └── VFX_Model7.fbx.meta │ │ ├── Prefabs.meta │ │ ├── Prefabs │ │ │ ├── VFX_Fire Magic Array 004.prefab │ │ │ └── VFX_Fire Magic Array 004.prefab.meta │ │ ├── Textures.meta │ │ └── Textures │ │ │ ├── 102.tga │ │ │ ├── 102.tga.meta │ │ │ ├── 66089.tga │ │ │ ├── 66089.tga.meta │ │ │ ├── 82.tga │ │ │ ├── 82.tga.meta │ │ │ ├── VFX_LS004.tga │ │ │ ├── VFX_LS004.tga.meta │ │ │ ├── VFX_LS018.tga │ │ │ └── VFX_LS018.tga.meta │ ├── Model.meta │ ├── Model │ │ ├── Skeleton.meta │ │ └── Skeleton │ │ │ ├── Ani.meta │ │ │ ├── Ani │ │ │ ├── Materials.meta │ │ │ ├── Materials │ │ │ │ ├── skeleton_D.mat │ │ │ │ └── skeleton_D.mat.meta │ │ │ ├── Skeleton@Attack.FBX │ │ │ ├── Skeleton@Attack.FBX.meta │ │ │ ├── Skeleton@Damage.FBX │ │ │ ├── Skeleton@Damage.FBX.meta │ │ │ ├── Skeleton@Death.FBX │ │ │ ├── Skeleton@Death.FBX.meta │ │ │ ├── Skeleton@Idle.FBX │ │ │ ├── Skeleton@Idle.FBX.meta │ │ │ ├── Skeleton@Knockback.FBX │ │ │ ├── Skeleton@Knockback.FBX.meta │ │ │ ├── Skeleton@Run.FBX │ │ │ ├── Skeleton@Run.FBX.meta │ │ │ ├── Skeleton@Skill.FBX │ │ │ ├── Skeleton@Skill.FBX.meta │ │ │ ├── Skeleton@Stand.FBX │ │ │ ├── Skeleton@Stand.FBX.meta │ │ │ ├── Skeleton@Walk.FBX │ │ │ └── Skeleton@Walk.FBX.meta │ │ │ ├── Character.meta │ │ │ ├── Character │ │ │ ├── Materials.meta │ │ │ ├── Materials │ │ │ │ ├── skeleton_D.mat │ │ │ │ └── skeleton_D.mat.meta │ │ │ ├── Skeleton@Skin.FBX │ │ │ └── Skeleton@Skin.FBX.meta │ │ │ ├── Skeleton.prefab │ │ │ ├── Skeleton.prefab.meta │ │ │ ├── SkeletonController.controller │ │ │ ├── SkeletonController.controller.meta │ │ │ ├── Texture.meta │ │ │ └── Texture │ │ │ ├── Skeleton_D.tif │ │ │ └── Skeleton_D.tif.meta │ ├── Skill.meta │ ├── Sound.meta │ └── Sound │ │ ├── open_door.wav │ │ └── open_door.wav.meta ├── RuntimeExample.meta ├── RuntimeExample │ ├── Easing.cs │ ├── Easing.cs.meta │ ├── NBC.meta │ ├── NBC │ │ ├── Core.meta │ │ ├── Core │ │ │ ├── Runtime.meta │ │ │ └── Runtime │ │ │ │ ├── Log.meta │ │ │ │ ├── Log │ │ │ │ ├── Log.cs │ │ │ │ └── Log.cs.meta │ │ │ │ ├── Services.meta │ │ │ │ ├── Services │ │ │ │ ├── MonoManager.cs │ │ │ │ ├── MonoManager.cs.meta │ │ │ │ ├── Timer.cs │ │ │ │ └── Timer.cs.meta │ │ │ │ ├── Task.meta │ │ │ │ └── Task │ │ │ │ ├── Collection.meta │ │ │ │ ├── Collection │ │ │ │ ├── ParallelTaskCollection.cs │ │ │ │ ├── ParallelTaskCollection.cs.meta │ │ │ │ ├── SequenceTaskCollection.cs │ │ │ │ ├── SequenceTaskCollection.cs.meta │ │ │ │ ├── TaskCollection.cs │ │ │ │ ├── TaskCollection.cs.meta │ │ │ │ ├── TimelineTaskCollection.cs │ │ │ │ └── TimelineTaskCollection.cs.meta │ │ │ │ ├── Extensions.meta │ │ │ │ ├── Extensions │ │ │ │ ├── TaskChainExtension.cs │ │ │ │ └── TaskChainExtension.cs.meta │ │ │ │ ├── Interface.meta │ │ │ │ ├── Interface │ │ │ │ ├── IProcess.cs │ │ │ │ ├── IProcess.cs.meta │ │ │ │ ├── IRunner.cs │ │ │ │ ├── IRunner.cs.meta │ │ │ │ ├── ITask.cs │ │ │ │ ├── ITask.cs.meta │ │ │ │ ├── ITaskCollection.cs │ │ │ │ ├── ITaskCollection.cs.meta │ │ │ │ ├── ITaskRun.cs │ │ │ │ └── ITaskRun.cs.meta │ │ │ │ ├── NTask.cs │ │ │ │ ├── NTask.cs.meta │ │ │ │ ├── Runner.meta │ │ │ │ ├── Runner │ │ │ │ ├── FlushingOperation.cs │ │ │ │ ├── FlushingOperation.cs.meta │ │ │ │ ├── Runner.cs │ │ │ │ ├── Runner.cs.meta │ │ │ │ ├── RunnerProcess.cs │ │ │ │ └── RunnerProcess.cs.meta │ │ │ │ ├── TaskStatus.cs │ │ │ │ └── TaskStatus.cs.meta │ │ ├── README.md │ │ └── README.md.meta │ ├── README.md │ ├── README.md.meta │ ├── Scene.meta │ ├── Scene │ │ ├── Example.unity │ │ └── Example.unity.meta │ ├── Scripts.meta │ └── Scripts │ │ ├── BattleRunner.cs │ │ ├── BattleRunner.cs.meta │ │ ├── Config.meta │ │ ├── Config │ │ ├── SkillConfig.cs │ │ └── SkillConfig.cs.meta │ │ ├── Init.cs │ │ ├── Init.cs.meta │ │ ├── Plyaer.meta │ │ ├── Plyaer │ │ ├── HeroPlayer.cs │ │ ├── HeroPlayer.cs.meta │ │ ├── MonsterPlayer.cs │ │ ├── MonsterPlayer.cs.meta │ │ ├── RoleBase.cs │ │ └── RoleBase.cs.meta │ │ ├── Skill.meta │ │ ├── Skill │ │ ├── Director.meta │ │ ├── Director │ │ │ ├── AV.meta │ │ │ ├── AV │ │ │ │ ├── PlayAnimationClipTask.cs │ │ │ │ ├── PlayAnimationClipTask.cs.meta │ │ │ │ ├── PlayAudioClipTask.cs │ │ │ │ └── PlayAudioClipTask.cs.meta │ │ │ ├── Events.meta │ │ │ ├── Events │ │ │ │ ├── TriggerEventClipTask.cs │ │ │ │ ├── TriggerEventClipTask.cs.meta │ │ │ │ ├── TriggerLogClipTask.cs │ │ │ │ ├── TriggerLogClipTask.cs.meta │ │ │ │ ├── TriggerShakeClipTask.cs │ │ │ │ └── TriggerShakeClipTask.cs.meta │ │ │ ├── Particles.meta │ │ │ ├── Particles │ │ │ │ ├── PlayParticleClipTask.cs │ │ │ │ └── PlayParticleClipTask.cs.meta │ │ │ ├── SkillClipBase.cs │ │ │ ├── SkillClipBase.cs.meta │ │ │ ├── SkillDirector.cs │ │ │ ├── SkillDirector.cs.meta │ │ │ ├── Transforms.meta │ │ │ └── Transforms │ │ │ │ ├── MoveByClipTask.cs │ │ │ │ ├── MoveByClipTask.cs.meta │ │ │ │ ├── MoveToClipTask.cs │ │ │ │ ├── MoveToClipTask.cs.meta │ │ │ │ ├── RotateToClipTask.cs │ │ │ │ ├── RotateToClipTask.cs.meta │ │ │ │ ├── ScaleToClipTask.cs │ │ │ │ ├── ScaleToClipTask.cs.meta │ │ │ │ ├── VisibleToClipTask.cs │ │ │ │ └── VisibleToClipTask.cs.meta │ │ ├── ISkillPlay.cs │ │ ├── ISkillPlay.cs.meta │ │ ├── SkillPlayAttack.cs │ │ └── SkillPlayAttack.cs.meta │ │ ├── Tasks.meta │ │ └── Tasks │ │ ├── LogTask.cs │ │ ├── LogTask.cs.meta │ │ ├── RunFunTask.cs │ │ ├── RunFunTask.cs.meta │ │ ├── TimeStopTask.cs │ │ └── TimeStopTask.cs.meta ├── Scenes.meta ├── Scenes │ ├── SampleScene.unity │ ├── SampleScene.unity.meta │ ├── VFX_LS018 1.tga │ ├── VFX_LS018 1.tga.meta │ ├── test.unity │ └── test.unity.meta ├── Scripts.meta ├── Scripts │ ├── ActionEditorExample.meta │ └── ActionEditorExample │ │ ├── Editor.meta │ │ ├── Editor │ │ ├── Preview.meta │ │ └── Preview │ │ │ ├── Clips.meta │ │ │ ├── Clips │ │ │ ├── MoveByPreview.cs │ │ │ ├── MoveByPreview.cs.meta │ │ │ ├── MoveToPreview.cs │ │ │ ├── MoveToPreview.cs.meta │ │ │ ├── PlayAnimationPreview.cs │ │ │ ├── PlayAnimationPreview.cs.meta │ │ │ ├── PlayAudioPreview.cs │ │ │ ├── PlayAudioPreview.cs.meta │ │ │ ├── PlayParticlePreview.cs │ │ │ ├── PlayParticlePreview.cs.meta │ │ │ ├── RotateToPreview.cs │ │ │ ├── RotateToPreview.cs.meta │ │ │ ├── VisibleToPreview.cs │ │ │ └── VisibleToPreview.cs.meta │ │ │ ├── Sampler.meta │ │ │ └── Sampler │ │ │ ├── AnimationSampler.cs │ │ │ ├── AnimationSampler.cs.meta │ │ │ ├── AudioSampler.cs │ │ │ ├── AudioSampler.cs.meta │ │ │ ├── ModelSampler.cs │ │ │ ├── ModelSampler.cs.meta │ │ │ ├── ParticleSampler.cs │ │ │ ├── ParticleSampler.cs.meta │ │ │ ├── SpineSampler.cs │ │ │ └── SpineSampler.cs.meta │ │ ├── Runtime.meta │ │ └── Runtime │ │ ├── BuffAsset.cs │ │ ├── BuffAsset.cs.meta │ │ ├── Directables.meta │ │ ├── Directables │ │ ├── Clips.meta │ │ ├── Clips │ │ │ ├── Animation.meta │ │ │ ├── Animation │ │ │ │ ├── PlayAnimation.cs │ │ │ │ └── PlayAnimation.cs.meta │ │ │ ├── Audio.meta │ │ │ ├── Audio │ │ │ │ ├── PlayAudio.cs │ │ │ │ └── PlayAudio.cs.meta │ │ │ ├── Effect.meta │ │ │ ├── Effect │ │ │ │ ├── PlayParticle.cs │ │ │ │ └── PlayParticle.cs.meta │ │ │ ├── Event.meta │ │ │ ├── Event │ │ │ │ ├── TriggerEvent.cs │ │ │ │ ├── TriggerEvent.cs.meta │ │ │ │ ├── TriggerLog.cs │ │ │ │ ├── TriggerLog.cs.meta │ │ │ │ ├── TriggerShake.cs │ │ │ │ └── TriggerShake.cs.meta │ │ │ ├── GameObject.meta │ │ │ ├── GameObject │ │ │ │ ├── VisibleTo.cs │ │ │ │ └── VisibleTo.cs.meta │ │ │ ├── Transform.meta │ │ │ └── Transform │ │ │ │ ├── MoveBy.cs │ │ │ │ ├── MoveBy.cs.meta │ │ │ │ ├── MoveTo.cs │ │ │ │ ├── MoveTo.cs.meta │ │ │ │ ├── RotateTo.cs │ │ │ │ ├── RotateTo.cs.meta │ │ │ │ ├── ScaleTo.cs │ │ │ │ └── ScaleTo.cs.meta │ │ ├── OptionParams.cs │ │ ├── OptionParams.cs.meta │ │ ├── Tracks.meta │ │ └── Tracks │ │ │ ├── ActionTrack.cs │ │ │ ├── ActionTrack.cs.meta │ │ │ ├── AnimationTrack.cs │ │ │ ├── AnimationTrack.cs.meta │ │ │ ├── AudioTrack.cs │ │ │ ├── AudioTrack.cs.meta │ │ │ ├── EffectTrack.cs │ │ │ ├── EffectTrack.cs.meta │ │ │ ├── SignalTrack.cs │ │ │ └── SignalTrack.cs.meta │ │ ├── SkillAsset.cs │ │ └── SkillAsset.cs.meta ├── das.action.bytes ├── das.action.bytes.meta ├── dsad.action.bytes ├── dsad.action.bytes.meta ├── opk.action.bytes └── opk.action.bytes.meta ├── LICENSE ├── Packages ├── manifest.json └── packages-lock.json ├── ProjectSettings ├── AudioManager.asset ├── AutoStreamingSettings.asset ├── BurstAotSettings_StandaloneWindows.json ├── ClusterInputManager.asset ├── CommonBurstAotSettings.json ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── MemorySettings.asset ├── NavMeshAreas.asset ├── PackageManagerSettings.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── SceneTemplateSettings.json ├── ShaderGraphSettings.asset ├── TagManager.asset ├── TimeManager.asset ├── URPProjectSettings.asset ├── UnityConnectSettings.asset ├── VFXManager.asset ├── VersionControlSettings.asset ├── WhootActionSequencer.txt ├── XRSettings.asset └── boot.config ├── README.md └── upm.bat /.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore 4 | # 5 | /[Ll]ibrary/ 6 | /[Tt]emp/ 7 | /[Oo]bj/ 8 | /[Bb]uild/ 9 | /[Bb]uilds/ 10 | /[Ll]ogs/ 11 | /[Uu]ser[Ss]ettings/ 12 | 13 | # MemoryCaptures can get excessive in size. 14 | # They also could contain extremely sensitive data 15 | /[Mm]emoryCaptures/ 16 | 17 | # Recordings can get excessive in size 18 | /[Rr]ecordings/ 19 | 20 | # Uncomment this line if you wish to ignore the asset store tools plugin 21 | # /[Aa]ssets/AssetStoreTools* 22 | 23 | # Autogenerated Jetbrains Rider plugin 24 | /[Aa]ssets/Plugins/Editor/JetBrains* 25 | 26 | # Visual Studio cache directory 27 | .vs/ 28 | 29 | # Gradle cache directory 30 | .gradle/ 31 | 32 | # Autogenerated VS/MD/Consulo solution and project files 33 | ExportedObj/ 34 | .consulo/ 35 | *.csproj 36 | *.unityproj 37 | *.sln 38 | *.suo 39 | *.tmp 40 | *.user 41 | *.userprefs 42 | *.pidb 43 | *.booproj 44 | *.svd 45 | *.pdb 46 | *.mdb 47 | *.opendb 48 | *.VC.db 49 | 50 | # Unity3D generated meta files 51 | *.pidb.meta 52 | *.pdb.meta 53 | *.mdb.meta 54 | 55 | # Unity3D generated file on crash reports 56 | sysinfo.txt 57 | 58 | # Builds 59 | *.apk 60 | *.aab 61 | *.unitypackage 62 | *.app 63 | 64 | # Crashlytics generated file 65 | crashlytics-build.properties 66 | 67 | # Packed Addressables 68 | /[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* 69 | 70 | # Temporary auto-generated Android Assets 71 | /[Aa]ssets/[Ss]treamingAssets/aa.meta 72 | /[Aa]ssets/[Ss]treamingAssets/aa/* 73 | -------------------------------------------------------------------------------- /.vsconfig: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0", 3 | "components": [ 4 | "Microsoft.VisualStudio.Workload.ManagedGame" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /Assets/.action.json: -------------------------------------------------------------------------------- 1 | ActionEditor.BuffAsset 2 | { 3 | "groups": [ 4 | { 5 | "rid": 1000 6 | } 7 | ], 8 | "length": 0.10000000149011612, 9 | "viewTimeMin": 0.0, 10 | "viewTimeMax": 5.0, 11 | "rangeMin": 0.0, 12 | "rangeMax": 5.0, 13 | "references": { 14 | "version": 2, 15 | "RefIds": [ 16 | { 17 | "rid": 1000, 18 | "type": { 19 | "class": "Group", 20 | "ns": "ActionEditor", 21 | "asm": "ActionEditor" 22 | }, 23 | "data": { 24 | "name": "New Group", 25 | "tracks": [], 26 | "isCollapsed": false, 27 | "active": true, 28 | "isLocked": false 29 | } 30 | } 31 | ] 32 | } 33 | } -------------------------------------------------------------------------------- /Assets/ActionEditor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9c7f6b6c7068a334f85c05a216592706 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8e0b01c062464e54ab6baadb6574b637 3 | timeCreated: 1725873917 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/ActionEditor.Editor.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ActionEditor.Editor", 3 | "rootNamespace": "", 4 | "references": [ 5 | "GUID:2f5d7ff7639293b4bbbea67c608851e6" 6 | ], 7 | "includePlatforms": [ 8 | "Editor" 9 | ], 10 | "excludePlatforms": [], 11 | "allowUnsafeCode": false, 12 | "overrideReferences": false, 13 | "precompiledReferences": [], 14 | "autoReferenced": true, 15 | "defineConstraints": [], 16 | "versionDefines": [], 17 | "noEngineReferences": false 18 | } -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/ActionEditor.Editor.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 01cbad5e2c6f25a4f9eab807601ea5f5 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/App.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2c23212e6c7c40b46b38a0187a29ff1a 3 | timeCreated: 1675238206 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Attributes.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace ActionEditor 4 | { 5 | /// 6 | /// 自定义检视面板 7 | /// 8 | [AttributeUsage(AttributeTargets.Class)] 9 | public class CustomInspectors : Attribute 10 | { 11 | public Type InspectedType; 12 | public bool _editorForChildClasses; 13 | 14 | public CustomInspectors(Type inspectedType) 15 | { 16 | InspectedType = inspectedType; 17 | } 18 | 19 | public CustomInspectors(Type inspectedType, bool editorForChildClasses) 20 | { 21 | InspectedType = inspectedType; 22 | _editorForChildClasses = editorForChildClasses; 23 | } 24 | } 25 | 26 | 27 | /// 28 | /// 自定义片段预览 29 | /// 30 | [AttributeUsage(AttributeTargets.Class)] 31 | public class CustomPreviewAttribute : Attribute 32 | { 33 | public Type PreviewType; 34 | 35 | public CustomPreviewAttribute(Type type) 36 | { 37 | PreviewType = type; 38 | } 39 | } 40 | 41 | } -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Attributes.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 006f96bc4c3d8364ba63326de43defd4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/EditorEX.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ac95ce72ff4f78c4c9956e65f7419f4a 3 | timeCreated: 1727230007 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Inspectors.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c521327ea7039454182ba036d34ada97 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Inspectors/Com.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eda17153a6146184f81e3b14e11012f4 3 | timeCreated: 1683598121 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Inspectors/Com/ActionClipInspector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dcb3b808615c29747b27138509c457e8 3 | timeCreated: 1639381603 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Inspectors/Com/AssetInspector.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | 3 | namespace ActionEditor 4 | { 5 | [CustomInspectors(typeof(Asset), true)] 6 | public class AssetInspector : InspectorsBase 7 | { 8 | private Asset action => (Asset)target; 9 | 10 | public override void OnInspectorGUI() 11 | { 12 | ShowCommonInspector(); 13 | base.OnInspectorGUI(); 14 | } 15 | 16 | protected void ShowCommonInspector(bool showBaseInspector = true) 17 | { 18 | EditorGUILayout.TextField("Name", action.Length.ToString()); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Inspectors/Com/AssetInspector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 839f55a7f883bf141ad97f02cc1a897b 3 | timeCreated: 1678332575 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Inspectors/Com/GroupInspector.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | using UnityEditor; 3 | using UnityEngine; 4 | 5 | namespace ActionEditor.Design.Editor.Inspectors 6 | { 7 | public abstract class GroupInspector : ActionClipInspector where T : Group 8 | { 9 | protected T action => (T)target; 10 | } 11 | 12 | [CustomInspectors(typeof(Group), true)] 13 | public class GroupInspector : InspectorsBase 14 | { 15 | private Group action => (Group)target; 16 | 17 | public override void OnInspectorGUI() 18 | { 19 | GUI.enabled = !action.IsLocked; 20 | 21 | ShowCommonInspector(); 22 | } 23 | 24 | protected void ShowCommonInspector(bool showBaseInspector = true) 25 | { 26 | action.Name = EditorGUILayout.TextField("Name", action.Name); 27 | if (showBaseInspector) 28 | { 29 | base.OnInspectorGUI(); 30 | } 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Inspectors/Com/GroupInspector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f1795d6013d412741a4fb6614d8c486a 3 | timeCreated: 1639446374 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Inspectors/Com/TrackInspector.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | using UnityEditor; 3 | using UnityEngine; 4 | 5 | namespace ActionEditor 6 | { 7 | public abstract class TrackInspector : TrackInspector where T : Track 8 | { 9 | protected T action => (T)target; 10 | } 11 | 12 | [CustomInspectors(typeof(Track), true)] 13 | public class TrackInspector : InspectorsBase 14 | { 15 | private Track action => (Track)target; 16 | 17 | public override void OnInspectorGUI() 18 | { 19 | GUI.enabled = !action.IsLocked; 20 | ShowCommonInspector(); 21 | } 22 | 23 | 24 | protected void ShowCommonInspector(bool showBaseInspector = true) 25 | { 26 | action.Name = EditorGUILayout.TextField("Name", action.Name); 27 | if (showBaseInspector) 28 | { 29 | base.OnInspectorGUI(); 30 | } 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Inspectors/Com/TrackInspector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3a152e60ee1bcc14998bed5ba95fde7b 3 | timeCreated: 1639446317 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Inspectors/EditorCustomFactory.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 41355f62d39c9784da7ce5046b5c7ae9 3 | timeCreated: 1730344771 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Inspectors/InspectorPreviewAsset.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace ActionEditor 4 | { 5 | class InspectorPreviewAsset : ScriptableObject 6 | { 7 | 8 | } 9 | } -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Inspectors/InspectorPreviewAsset.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6a4176489d2208f449d66b88e5ebba08 3 | timeCreated: 1730354760 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Inspectors/InspectorPreviewAssetInspector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5441474baee17164289783a0845a7b69 3 | timeCreated: 1679632712 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Inspectors/InspectorsBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 63189ab0f9ed57d41a121c741f7c8794 3 | timeCreated: 1639379933 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Languages.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 03b75d4d0b6bf494eb5e0884ac3ebb0f 3 | timeCreated: 1726798214 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Languages/ILanguages.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cfab193b95a86ba41ad2b565d7927568 3 | timeCreated: 1683366037 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Languages/Lan.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | 4 | namespace ActionEditor 5 | { 6 | class Lan 7 | { 8 | #region 静态 9 | 10 | public static readonly Dictionary AllLanguages = new Dictionary(); 11 | private static string _lan; 12 | public static ILanguages ins; 13 | internal static void Load() 14 | { 15 | var lan = Prefs.Lan_key; 16 | var types = EditorEX.GetImplementationsOf(typeof(ILanguages)); 17 | //ins = new LanEN(); 18 | foreach (var t in types) 19 | { 20 | var nameAtt = (NameAttribute)t.GetCustomAttributes(typeof(NameAttribute), false).FirstOrDefault(); 21 | var name = nameAtt != null ? nameAtt.name : t.Name; 22 | AllLanguages[name] = System.Activator.CreateInstance(t) as ILanguages; 23 | if (lan == name) 24 | { 25 | ins = AllLanguages[name]; 26 | } 27 | } 28 | _lan = lan; 29 | if (ins == null) 30 | { 31 | SetLanguage(AllLanguages.Keys.First()); 32 | } 33 | } 34 | 35 | public static string Language => _lan; 36 | 37 | internal static void SetLanguage(string key) 38 | { 39 | if (AllLanguages.TryGetValue(key, out var type)) 40 | { 41 | _lan = key; 42 | ins = type; 43 | Prefs.Lan_key = key; 44 | //EditorPrefs.SetString("ActionEditor_x", key); 45 | } 46 | } 47 | 48 | 49 | #endregion 50 | 51 | 52 | 53 | } 54 | } -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Languages/Lan.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 93bedbc09bfcd3f4e931848814298c7f 3 | timeCreated: 1683175577 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Languages/LanCHS.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6a58040d25e6abf46b1b24592d2aae2e 3 | timeCreated: 1683430229 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Languages/LanEN.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d10c061bb89a51040bbba6ce2ceec1e5 3 | timeCreated: 1683366255 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Prefs.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8cdf38bd15d79db4798c147e877af570 3 | timeCreated: 1638764692 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Preview.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c5ffdad39ed515841aba8b461ac1a1ec 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Preview/AssetPlayer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a7b1cab979aec214a9cddc7920cc93d6 3 | timeCreated: 1643182795 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Preview/PreviewBase.cs: -------------------------------------------------------------------------------- 1 | namespace ActionEditor 2 | { 3 | public abstract class PreviewBase : PreviewBase where T : IDirectable 4 | { 5 | public T clip => (T)directable; 6 | } 7 | 8 | public abstract class PreviewBase 9 | { 10 | public IDirectable directable; 11 | 12 | public void SetTarget(IDirectable t) 13 | { 14 | directable = t; 15 | } 16 | 17 | public virtual void Enter() 18 | { 19 | } 20 | 21 | public virtual void Exit() 22 | { 23 | } 24 | 25 | public virtual void ReverseEnter() 26 | { 27 | } 28 | 29 | public virtual void Reverse() 30 | { 31 | } 32 | 33 | 34 | public abstract void Update(float time, float previousTime); 35 | } 36 | } -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Preview/PreviewBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c95c06629b1ef6a498a23c8273312858 3 | timeCreated: 1643181797 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Preview/TimePointers.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 209093d0ece41534dace803d016b8742 3 | timeCreated: 1643248712 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b11af0942a2262a4cbe5805b064c2829 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Resources/Stripes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/Assets/ActionEditor/Editor/Resources/Stripes.png -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Styles.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | 4 | namespace ActionEditor 5 | { 6 | static class Styles 7 | { 8 | private static float _timelineLeftWidth = 240; 9 | private static float _timelineRightWidth; 10 | 11 | public static Texture2D WhiteTexture => EditorGUIUtility.whiteTexture; 12 | 13 | private static Texture2D _Stripes; 14 | 15 | 16 | public static Texture2D Stripes 17 | { 18 | get 19 | { 20 | if (_Stripes == null) 21 | _Stripes = (Texture2D)Resources.Load("Stripes"); 22 | return _Stripes; 23 | } 24 | } 25 | 26 | public static Color EndPointerColor = new Color(57 / 255f, 122 / 255f, 234 / 255f, 1); 27 | public static Color TimeStepRectColor = new Color(57 / 255f, 122 / 255f, 234 / 255f, 50 / 255f); 28 | 29 | public static Color ClipBackColor = new Color(0.3f, 0.3f, 0.3f); 30 | 31 | public static Color ClipBlendColor = new Color(144 / 255f, 144 / 255f, 144 / 255f, 0.5f); 32 | 33 | 34 | public const int SplitterWidth = 5; 35 | public const int RightGapWidth = 4; 36 | public const int HeaderHeight = 20; 37 | public const int PlayControlHeight = 40; 38 | public const int Space = 2; 39 | public const int LineHeight = 26; 40 | public const int ClipBottomRectHeight = 4; 41 | public const int ClipScaleRectWidth = 5; 42 | 43 | public const int BottomHeight = 5; 44 | 45 | 46 | public static float TimelineLeftWidth 47 | { 48 | get => _timelineLeftWidth; 49 | set 50 | { 51 | _timelineLeftWidth = value; 52 | } 53 | } 54 | 55 | public static float TimelineLeftTotalWidth => TimelineLeftWidth + SplitterWidth + RightGapWidth; 56 | 57 | public static float TimelineRightWidth 58 | { 59 | get => _timelineRightWidth; 60 | set => _timelineRightWidth = value; 61 | } 62 | 63 | public static Vector2 TimelineScrollPos; 64 | 65 | } 66 | } 67 | 68 | -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Styles.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cac2881e3e5ce3f4580dc1b1ff2d9524 3 | timeCreated: 1726798491 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cee9dd897dd293f4cab928e428dc797f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/ActionEditorWindow.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEditor; 3 | using UnityEngine; 4 | 5 | namespace ActionEditor 6 | { 7 | class ActionEditorWindow : EditorWindow 8 | { 9 | [MenuItem("Tools/Action Editor", false, 0)] 10 | public static void OpenDirectorWindow() 11 | { 12 | var window = GetWindow(typeof(ActionEditorWindow)) as ActionEditorWindow; 13 | if (window == null) return; 14 | window.Show(); 15 | } 16 | 17 | private TimelineView _timelineView; 18 | 19 | void OnEnable() 20 | { 21 | Lan.Load(); 22 | App.Window = this; 23 | 24 | 25 | titleContent = new GUIContent(Lan.ins.Title); 26 | minSize = new Vector2(500, 250); 27 | EditorEX.InitializeAssetTypes(); 28 | App.OnInitialize?.Invoke(); 29 | _timelineView = this.CreateView(); 30 | } 31 | 32 | void OnDisable() 33 | { 34 | App.Window = null; 35 | App.OnDisable?.Invoke(); 36 | } 37 | private void Update() 38 | { 39 | UpdateViews(); 40 | if (App.NeedForceRefresh) 41 | this.Repaint(); 42 | App.OnUpdate(); 43 | } 44 | 45 | private Event eve; 46 | public PointerEventData _eventData = new PointerEventData(); 47 | 48 | void OnGUI() 49 | { 50 | eve = Event.current; 51 | _eventData.SetEvent(eve); 52 | _timelineView.OnGUI(this.position); 53 | App.OnGUIEnd(); 54 | App.KeyBoardEvent(eve); 55 | if (App.CopyAsset != null) 56 | this.Repaint(); 57 | } 58 | private void OnInspectorUpdate() 59 | { 60 | if (App.SelectCount > 0) 61 | this.Repaint(); 62 | } 63 | 64 | 65 | private List _views = 66 | new List(); 67 | 68 | 69 | internal T CreateView() where T : ViewBase, new() 70 | { 71 | var cls = new T(); 72 | cls.Init(this); 73 | if (!_views.Contains(cls)) 74 | _views.Add(cls); 75 | return cls; 76 | } 77 | 78 | private void UpdateViews() 79 | { 80 | foreach (var view in _views) 81 | view.Update(); 82 | } 83 | } 84 | } -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/ActionEditorWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 48f269404f952eb48b8bd0584d51dc15 3 | timeCreated: 1726795597 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/AssetPick.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using UnityEditor; 4 | using UnityEditor.IMGUI.Controls; 5 | using UnityEngine; 6 | 7 | namespace ActionEditor 8 | { 9 | class AssetPick : AdvancedDropdown 10 | { 11 | private string[] paths; 12 | private Action itemSelectedCallback; 13 | 14 | private AssetPick(string[] paths, Action itemSelectedCallback) : base(new AdvancedDropdownState()) 15 | { 16 | this.paths = paths; 17 | this.itemSelectedCallback = itemSelectedCallback; 18 | } 19 | public static void ShowObjectPicker(Rect rect, string folder, string filter, Action itemSelectedCallback, 20 | Func fit = null) 21 | { 22 | var paths = AssetDatabase.FindAssets(filter, new string[] { folder }) 23 | .Select(x => AssetDatabase.GUIDToAssetPath(x)).Where(x => 24 | { 25 | if (fit != null) 26 | return fit(x); 27 | return true; 28 | }); 29 | AssetPick pick = new AssetPick(paths.ToArray(), itemSelectedCallback); 30 | pick.Show(rect); 31 | } 32 | 33 | protected override void ItemSelected(AdvancedDropdownItem item) 34 | { 35 | EditorWindow.mouseOverWindow.Close(); 36 | itemSelectedCallback?.Invoke(AssetDatabase.LoadAssetAtPath(item.name)); 37 | //base.ItemSelected(item); 38 | } 39 | protected override AdvancedDropdownItem BuildRoot() 40 | { 41 | AdvancedDropdownItem root = new AdvancedDropdownItem("Assets"); 42 | for (int i = 0; i < paths.Length; i++) 43 | { 44 | root.AddChild(new AdvancedDropdownItem(paths[i])); 45 | } 46 | return root; 47 | } 48 | } 49 | } -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/AssetPick.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4387ecd5a65f56340ab7a9e38bc4d02f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/Clip.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 64d7782039fd02e44bd6f2e2e1a85bc2 3 | timeCreated: 1727234689 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/Clip/BasicClipDraw.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0c97ef34bcf6ae542ae981a1d61f9ea0 3 | timeCreated: 1727234734 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/Clip/ClipDragger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5e79b81a5f00e7148861074963a2cee4 3 | timeCreated: 1727249474 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/Clip/ClipDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 71b5e205b9e69344a8b30aafc52d0479 3 | timeCreated: 1727245846 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/Clip/SignalClipDraw.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | 4 | namespace ActionEditor 5 | { 6 | public class SignalClipDraw : BasicClipDraw 7 | { 8 | protected override void OnDraw() 9 | { 10 | 11 | 12 | 13 | 14 | 15 | var center = ClipRect.center; 16 | ClipRect.width = 20; 17 | ClipRect.center = center; 18 | GUI.color = _clip.GetColor(); 19 | //var matrix = GUI.matrix; 20 | 21 | //GUI.DrawTexture(ClipRect, 22 | // EditorGUIUtility.TrIconContent("AnimationWindowEvent Icon").image, 23 | // ScaleMode.StretchToFill,false,1,_clip.GetColor(),100,100); 24 | //GUIUtility.ScaleAroundPivot(new Vector2(3, 1.5f), ClipRect.center); 25 | EditorGUI.LabelField(ClipRect, EditorGUIUtility.TrIconContent("AnimationWindowEvent Icon", _clip.GetName())); 26 | //GUI.matrix = matrix; 27 | GUI.color = Color.white; 28 | 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/Clip/SignalClipDraw.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6cfc1476206252345958775ead234237 3 | timeCreated: 1727245818 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/CreateAssetWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 949969b031098414f8d22668927b28f0 3 | timeCreated: 1726799030 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/PreferencesWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ce775734f3308ef499011bf9e83b72b7 3 | timeCreated: 1726800449 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/Timeline.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fc312a065ce276a439bf525eb9d35c1f 3 | timeCreated: 1726801442 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/Timeline/SplitterView.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | 4 | namespace ActionEditor 5 | { 6 | class SplitterView : ViewBase 7 | { 8 | private bool isResizing = false; 9 | 10 | public float Width; 11 | private float _minWidth; 12 | 13 | public float OnSplit(Rect rect, float width, float minWidth = 220) 14 | { 15 | Width = width; 16 | _minWidth = minWidth; 17 | OnGUI(rect); 18 | return Width; 19 | } 20 | 21 | public override void OnDraw() 22 | { 23 | // 绘制分隔条,可以拖动改变左右区域比例 24 | GUILayout.BeginArea(new Rect(Width, 0, Styles.SplitterWidth, Position.height), 25 | EditorStyles.helpBox); 26 | EditorGUIUtility.AddCursorRect(new Rect(0, 0, Styles.SplitterWidth, Position.height), 27 | MouseCursor.ResizeHorizontal); 28 | GUILayout.EndArea(); 29 | 30 | // 检测鼠标事件,拖动分隔条时调整左右区域的比例 31 | HandleSplitterResize(Width, Position); 32 | } 33 | 34 | private void HandleSplitterResize(float leftPanelWidth, Rect rect) 35 | { 36 | Rect splitterRect = new Rect(leftPanelWidth, 0, Styles.SplitterWidth, rect.height); 37 | 38 | // 检查鼠标事件 39 | if (Event.current.type == EventType.MouseDown && splitterRect.Contains(Event.current.mousePosition)) 40 | { 41 | isResizing = true; 42 | Event.current.Use(); 43 | } 44 | 45 | if (isResizing && Event.current.type == EventType.MouseDrag) 46 | { 47 | var leftPanelWidthPercent = Mathf.Clamp(Event.current.mousePosition.x / rect.width, 0.1f, 0.9f); 48 | Width = Mathf.Clamp(rect.width * leftPanelWidthPercent, _minWidth, Position.width); 49 | Window.Repaint(); // 刷新窗口 50 | } 51 | 52 | if (Event.current.type == EventType.MouseUp) 53 | { 54 | isResizing = false; 55 | } 56 | } 57 | } 58 | } -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/Timeline/SplitterView.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf96206a222adca43a821b13a32d81fe 3 | timeCreated: 1726802264 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/Timeline/TimelineHeaderView.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b04691cee27d56f41baf4a60c433c19b 3 | timeCreated: 1726818092 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/Timeline/TimelineMiddleView.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8245872ed72e2cb4faa1034e6df52d6f 3 | timeCreated: 1726818691 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/Timeline/TimelinePointerView.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 71336eeca29b51a47883cab2ffba5893 3 | timeCreated: 1726924062 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/Timeline/TimelineTrackItemView.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 12f31e74db7496846bb3cfa160911fdf 3 | timeCreated: 1726817997 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/Timeline/TimelineView.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d67eb5b977cd57e4fbdbe7fc1a298e04 3 | timeCreated: 1726797105 -------------------------------------------------------------------------------- /Assets/ActionEditor/Editor/Window/Timeline/ViewBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9bc67574ed7b3c478c56986da5ba1b1 3 | timeCreated: 1726796084 -------------------------------------------------------------------------------- /Assets/ActionEditor/Runtime.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 008259ad046bb80479e56f4f77138d5b 3 | timeCreated: 1725873910 -------------------------------------------------------------------------------- /Assets/ActionEditor/Runtime/ActionEditor.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ActionEditor" 3 | } 4 | -------------------------------------------------------------------------------- /Assets/ActionEditor/Runtime/ActionEditor.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2f5d7ff7639293b4bbbea67c608851e6 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/ActionEditor/Runtime/Assets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4189b56533e32a44c809b88e1a8ed31f 3 | timeCreated: 1727422935 -------------------------------------------------------------------------------- /Assets/ActionEditor/Runtime/Assets/Asset.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8d037576ab3b5b649b4ebe8afb201b5e 3 | timeCreated: 1727422948 -------------------------------------------------------------------------------- /Assets/ActionEditor/Runtime/Assets/Clip.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | //using FullSerializer; 4 | using UnityEngine; 5 | 6 | namespace ActionEditor 7 | { 8 | [Serializable] 9 | public abstract class Clip : DirectableBase, IClip 10 | { 11 | [SerializeField] private float startTime; 12 | [SerializeField][HideInInspector] protected float length = 1f; 13 | 14 | 15 | public override float Length 16 | { 17 | get => length; 18 | set 19 | { 20 | length = value; 21 | } 22 | } 23 | 24 | public abstract bool IsValid { get; } 25 | 26 | public sealed override IEnumerable Children => null; 27 | 28 | 29 | public sealed override float StartTime 30 | { 31 | get => startTime; 32 | set 33 | { 34 | if (Math.Abs(startTime - value) > 0.0001f) 35 | { 36 | startTime = Mathf.Max(value, 0); 37 | } 38 | } 39 | } 40 | 41 | public sealed override float EndTime 42 | { 43 | get => StartTime + Length; 44 | set 45 | { 46 | if (Math.Abs(StartTime + Length - value) > 0.0001f) 47 | { 48 | Length = Mathf.Max(value - StartTime, 0); 49 | this.AsBlendAble()?.ValidBlend(); 50 | 51 | } 52 | } 53 | } 54 | 55 | public sealed override bool IsActive 56 | { 57 | get => Parent?.IsActive ?? false; 58 | set { } 59 | } 60 | 61 | public sealed override bool IsCollapsed 62 | { 63 | get { return Parent != null && Parent.IsCollapsed; } 64 | set { } 65 | } 66 | 67 | public sealed override bool IsLocked 68 | { 69 | get { return Parent != null && Parent.IsLocked; } 70 | set { } 71 | } 72 | 73 | //public virtual float BlendIn 74 | //{ 75 | // get => 0; 76 | // set { } 77 | //} 78 | 79 | //public virtual float BlendOut 80 | //{ 81 | // get => 0; 82 | // set { } 83 | //} 84 | 85 | //public virtual bool CanCrossBlend => false; 86 | 87 | 88 | public Clip GetNextClip() => this.GetNextSibling(); 89 | 90 | } 91 | 92 | 93 | [Serializable] 94 | public abstract class ClipSignal : Clip 95 | { 96 | public override float Length 97 | { 98 | get => 0; 99 | //set => TimeCache(); 100 | } 101 | } 102 | 103 | } -------------------------------------------------------------------------------- /Assets/ActionEditor/Runtime/Assets/Clip.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b920916f70d26ea4ea9e14a06f5b4870 3 | timeCreated: 1727423024 -------------------------------------------------------------------------------- /Assets/ActionEditor/Runtime/Assets/DirectableBase.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | //using FullSerializer; 3 | using UnityEngine; 4 | 5 | namespace ActionEditor 6 | { 7 | public abstract class DirectableBase : IDirectable 8 | { 9 | [SerializeField][HideInInspector] private string name; 10 | [SerializeField][HideInInspector] protected bool isLocked; 11 | [SerializeField][HideInInspector] protected bool active = true; 12 | 13 | public abstract float Length { get; set; } 14 | 15 | public virtual bool IsLocked 16 | { 17 | get => Parent != null && (Parent.IsLocked || isLocked); 18 | set => isLocked = value; 19 | } 20 | public virtual bool IsActive 21 | { 22 | get => Parent != null && Parent.IsActive && active; 23 | set 24 | { 25 | if (active != value) 26 | { 27 | active = value; 28 | if (Root != null) Root.Validate(); 29 | } 30 | } 31 | } 32 | public string Name 33 | { 34 | get => name; 35 | set => name = value; 36 | } 37 | 38 | private Asset root; 39 | private IDirectable parent; 40 | 41 | public Asset Root => root; 42 | 43 | public IDirectable Parent => parent; 44 | 45 | 46 | void IDirectable.AfterDeserialize() => OnAfterDeserialize(); 47 | 48 | void IDirectable.BeforeSerialize() => OnBeforeSerialize(); 49 | 50 | public virtual void Validate(Asset root, IDirectable parent) 51 | { 52 | this.root = root; 53 | this.parent = parent; 54 | } 55 | protected virtual void OnAfterDeserialize() { } 56 | protected virtual void OnBeforeSerialize() { } 57 | 58 | 59 | public virtual IEnumerable Children { get; } 60 | 61 | public abstract bool IsCollapsed { get; set; } 62 | 63 | public abstract float StartTime { get; set; } 64 | 65 | public abstract float EndTime { get; set; } 66 | 67 | } 68 | } -------------------------------------------------------------------------------- /Assets/ActionEditor/Runtime/Assets/DirectableBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cc6b2f1202efe9845944a48ca9032d89 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/ActionEditor/Runtime/Assets/Group.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bc467dcbb8005554cbb31dcc857b991c 3 | timeCreated: 1727422982 -------------------------------------------------------------------------------- /Assets/ActionEditor/Runtime/Assets/Track.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c12124a3354dde5489fdc31af00b7db7 3 | timeCreated: 1727423001 -------------------------------------------------------------------------------- /Assets/ActionEditor/Runtime/Attributes.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ee2d1e9c827383849a8e1f4266160833 3 | timeCreated: 1638773860 -------------------------------------------------------------------------------- /Assets/ActionEditor/Runtime/IAction.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace ActionEditor 4 | { 5 | public interface IAction { 6 | float Length { get; set; } 7 | float StartTime { get; } 8 | float EndTime { get; } 9 | } 10 | 11 | public interface IDirectable : IAction 12 | { 13 | Asset Root { get; } 14 | IDirectable Parent { get; } 15 | IEnumerable Children { get; } 16 | 17 | string Name { get; } 18 | 19 | bool IsActive { get; set; } 20 | bool IsCollapsed { get; set; } 21 | bool IsLocked { get; set; } 22 | 23 | 24 | 25 | void Validate(Asset root, IDirectable parent); 26 | void AfterDeserialize(); 27 | 28 | void BeforeSerialize(); 29 | } 30 | 31 | public interface IClip : IDirectable { } 32 | public interface IResizeAble : IClip { } 33 | public interface IBlendAble : IClip 34 | { 35 | float BlendIn { get; set; } 36 | float BlendOut { get; set; } 37 | } 38 | public interface ILengthMatchAble : IClip 39 | { 40 | float MatchAbleLength { get; } 41 | } 42 | } -------------------------------------------------------------------------------- /Assets/ActionEditor/Runtime/IAction.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 89bd7c872903b49469a9f97ab7d7bd5b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/ActionEditor/Runtime/IDirectableExtensions.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 40170d980295c3544be412291a7a896c 3 | timeCreated: 1638951418 -------------------------------------------------------------------------------- /Assets/ActionEditor/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "com.woo.actioneditor", 3 | "displayName": "ActionEditor", 4 | "version": "1.0.22", 5 | "unity": "2019.4", 6 | "description": "ActionEditor", 7 | "type": "library", 8 | "author": { 9 | "name": "woo", 10 | "email": "2809399366@qq.com", 11 | "url": "https://github.com/OnClick9927" 12 | } 13 | } -------------------------------------------------------------------------------- /Assets/ActionEditor/package.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5ad9f38f20770b14fa920ff61020505f 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3a0c7edae0f4721409c463101222f5f7 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Editor/ActionEditor.txt: -------------------------------------------------------------------------------- 1 | {"TimeStepMode":0,"SnapInterval":0.009999999776482582,"FrameRate":10,"AutoSaveSeconds":120,"SavePath":"Assets","Lan_key":"简体中文","MagnetSnapping":true,"TrackListLeftMargin":180.0} -------------------------------------------------------------------------------- /Assets/Editor/ActionEditor.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d77c55c7290832e469d7b882955524d2 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/ResRaw.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 78957816c3c7ea543bf69b2e90287394 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9718f93144fc72846ad5f451b99ac6f8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Animations.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 86b2b172012d79f449ced8a38dc1b51f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Animations/301.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 304a275b1914e634f9cc515d034aa452 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Animations/VFX_Anim02.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7ab8c0d7966e29348aa90a8cbc86af75 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Animations/VFX_Anim33203.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3508b89f3acf3e84c956f41517165266 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Animations/VFX_Animn04.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 923c335d69fd6f541ac5afa0a8ea2d51 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Animations/pPlane2.controller: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!91 &9100000 4 | AnimatorController: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: pPlane2 9 | serializedVersion: 2 10 | m_AnimatorParameters: [] 11 | m_AnimatorLayers: 12 | - serializedVersion: 3 13 | m_Name: Base Layer 14 | m_StateMachine: {fileID: 110700000} 15 | m_Mask: {fileID: 0} 16 | m_BlendingMode: 0 17 | m_SyncedLayerIndex: -1 18 | m_StateMachineMotionSetIndex: 0 19 | m_DefaultWeight: 0 20 | m_IKPass: 0 21 | m_SyncedLayerAffectsTiming: 0 22 | m_Controller: {fileID: 9100000} 23 | --- !u!1102 &110200000 24 | State: 25 | m_ObjectHideFlags: 3 26 | m_PrefabParentObject: {fileID: 0} 27 | m_PrefabInternal: {fileID: 0} 28 | m_Name: bossshuaxin01 29 | m_Speed: 1 30 | m_CycleOffset: 0 31 | m_Motions: 32 | - {fileID: 7400000, guid: 304a275b1914e634f9cc515d034aa452, type: 2} 33 | m_ParentStateMachine: {fileID: 110700000} 34 | m_Position: {x: 50, y: 50, z: 0} 35 | m_IKOnFeet: 0 36 | m_Mirror: 0 37 | m_Tag: 38 | --- !u!1107 &110700000 39 | StateMachine: 40 | serializedVersion: 2 41 | m_ObjectHideFlags: 3 42 | m_PrefabParentObject: {fileID: 0} 43 | m_PrefabInternal: {fileID: 0} 44 | m_Name: Base Layer 45 | m_DefaultState: {fileID: 110200000} 46 | m_States: 47 | - {fileID: 110200000} 48 | m_ChildStateMachine: [] 49 | m_ChildStateMachinePosition: [] 50 | m_OrderedTransitions: {} 51 | m_MotionSetCount: 1 52 | m_AnyStatePosition: {x: 50, y: 20, z: 0} 53 | m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} 54 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Animations/pPlane2.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 815502f3a9460ab48b401524c4772252 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Animations/pPlane4.controller: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!91 &9100000 4 | AnimatorController: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: pPlane4 9 | serializedVersion: 2 10 | m_AnimatorParameters: [] 11 | m_AnimatorLayers: 12 | - serializedVersion: 3 13 | m_Name: Base Layer 14 | m_StateMachine: {fileID: 110700000} 15 | m_Mask: {fileID: 0} 16 | m_BlendingMode: 0 17 | m_SyncedLayerIndex: -1 18 | m_StateMachineMotionSetIndex: 0 19 | m_DefaultWeight: 0 20 | m_IKPass: 0 21 | m_SyncedLayerAffectsTiming: 0 22 | m_Controller: {fileID: 9100000} 23 | --- !u!1102 &110200000 24 | State: 25 | m_ObjectHideFlags: 3 26 | m_PrefabParentObject: {fileID: 0} 27 | m_PrefabInternal: {fileID: 0} 28 | m_Name: bossshuaxin02 29 | m_Speed: 1 30 | m_CycleOffset: 0 31 | m_Motions: 32 | - {fileID: 7400000, guid: 7ab8c0d7966e29348aa90a8cbc86af75, type: 2} 33 | m_ParentStateMachine: {fileID: 110700000} 34 | m_Position: {x: 50, y: 50, z: 0} 35 | m_IKOnFeet: 0 36 | m_Mirror: 0 37 | m_Tag: 38 | --- !u!1107 &110700000 39 | StateMachine: 40 | serializedVersion: 2 41 | m_ObjectHideFlags: 3 42 | m_PrefabParentObject: {fileID: 0} 43 | m_PrefabInternal: {fileID: 0} 44 | m_Name: Base Layer 45 | m_DefaultState: {fileID: 110200000} 46 | m_States: 47 | - {fileID: 110200000} 48 | m_ChildStateMachine: [] 49 | m_ChildStateMachinePosition: [] 50 | m_OrderedTransitions: {} 51 | m_MotionSetCount: 1 52 | m_AnyStatePosition: {x: 50, y: 20, z: 0} 53 | m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} 54 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Animations/pPlane4.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f83ef9984afb8224898bb9ca4d6de21b 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Animations/polySurface5.controller: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!91 &9100000 4 | AnimatorController: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: polySurface5 9 | serializedVersion: 2 10 | m_AnimatorParameters: [] 11 | m_AnimatorLayers: 12 | - serializedVersion: 3 13 | m_Name: Base Layer 14 | m_StateMachine: {fileID: 110700000} 15 | m_Mask: {fileID: 0} 16 | m_BlendingMode: 0 17 | m_SyncedLayerIndex: -1 18 | m_StateMachineMotionSetIndex: 0 19 | m_DefaultWeight: 0 20 | m_IKPass: 0 21 | m_SyncedLayerAffectsTiming: 0 22 | m_Controller: {fileID: 9100000} 23 | --- !u!1102 &110200000 24 | State: 25 | m_ObjectHideFlags: 3 26 | m_PrefabParentObject: {fileID: 0} 27 | m_PrefabInternal: {fileID: 0} 28 | m_Name: bossshuaxin03 29 | m_Speed: 1 30 | m_CycleOffset: 0 31 | m_Motions: 32 | - {fileID: 7400000, guid: 3508b89f3acf3e84c956f41517165266, type: 2} 33 | m_ParentStateMachine: {fileID: 110700000} 34 | m_Position: {x: 50, y: 50, z: 0} 35 | m_IKOnFeet: 0 36 | m_Mirror: 0 37 | m_Tag: 38 | --- !u!1107 &110700000 39 | StateMachine: 40 | serializedVersion: 2 41 | m_ObjectHideFlags: 3 42 | m_PrefabParentObject: {fileID: 0} 43 | m_PrefabInternal: {fileID: 0} 44 | m_Name: Base Layer 45 | m_DefaultState: {fileID: 110200000} 46 | m_States: 47 | - {fileID: 110200000} 48 | m_ChildStateMachine: [] 49 | m_ChildStateMachinePosition: [] 50 | m_OrderedTransitions: {} 51 | m_MotionSetCount: 1 52 | m_AnyStatePosition: {x: 50, y: 20, z: 0} 53 | m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} 54 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Animations/polySurface5.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 129aa7f666af3f74694637eda7f6245f 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Animations/polySurface6.controller: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!91 &9100000 4 | AnimatorController: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: polySurface6 9 | serializedVersion: 2 10 | m_AnimatorParameters: [] 11 | m_AnimatorLayers: 12 | - serializedVersion: 3 13 | m_Name: Base Layer 14 | m_StateMachine: {fileID: 110700000} 15 | m_Mask: {fileID: 0} 16 | m_BlendingMode: 0 17 | m_SyncedLayerIndex: -1 18 | m_StateMachineMotionSetIndex: 0 19 | m_DefaultWeight: 0 20 | m_IKPass: 0 21 | m_SyncedLayerAffectsTiming: 0 22 | m_Controller: {fileID: 9100000} 23 | --- !u!1102 &110200000 24 | State: 25 | m_ObjectHideFlags: 3 26 | m_PrefabParentObject: {fileID: 0} 27 | m_PrefabInternal: {fileID: 0} 28 | m_Name: bossshuaxin04 29 | m_Speed: 1 30 | m_CycleOffset: 0 31 | m_Motions: 32 | - {fileID: 7400000, guid: 923c335d69fd6f541ac5afa0a8ea2d51, type: 2} 33 | m_ParentStateMachine: {fileID: 110700000} 34 | m_Position: {x: 50, y: 50, z: 0} 35 | m_IKOnFeet: 0 36 | m_Mirror: 0 37 | m_Tag: 38 | --- !u!1107 &110700000 39 | StateMachine: 40 | serializedVersion: 2 41 | m_ObjectHideFlags: 3 42 | m_PrefabParentObject: {fileID: 0} 43 | m_PrefabInternal: {fileID: 0} 44 | m_Name: Base Layer 45 | m_DefaultState: {fileID: 110200000} 46 | m_States: 47 | - {fileID: 110200000} 48 | m_ChildStateMachine: [] 49 | m_ChildStateMachinePosition: [] 50 | m_OrderedTransitions: {} 51 | m_MotionSetCount: 1 52 | m_AnyStatePosition: {x: 50, y: 20, z: 0} 53 | m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} 54 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Animations/polySurface6.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d657e1e3881e7724fac0ef6c9f368195 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a3f5e39d5d878fb4e8291b4e7a1ea74c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Materials/VFX_0201.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: VFX_0201 11 | m_Shader: {fileID: 200, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _MainTex: 23 | m_Texture: {fileID: 2800000, guid: be4c01fd86ef0f943acf24c7e77dead8, type: 3} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | m_Floats: 27 | - _InvFade: 1 28 | m_Colors: 29 | - _Color: {r: 1, g: 1, b: 1, a: 1} 30 | - _TintColor: {r: 0.7075472, g: 0.46489197, b: 0.21026166, a: 0.7529412} 31 | m_BuildTextureStacks: [] 32 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Materials/VFX_0201.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 16cd85bd4878b004d80bb4e16d9ce4d1 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Materials/VFX_02118.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: VFX_02118 11 | m_Shader: {fileID: 200, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _MainTex: 23 | m_Texture: {fileID: 2800000, guid: d9d37d0430486d24fbd414fe36184e5a, type: 3} 24 | m_Scale: {x: 2, y: 2} 25 | m_Offset: {x: 0, y: 0} 26 | m_Floats: 27 | - _InvFade: 1 28 | m_Colors: 29 | - _Color: {r: 1, g: 1, b: 1, a: 1} 30 | - _TintColor: {r: 0.7352941, g: 0.56228375, b: 0.30276814, a: 0.7607843} 31 | m_BuildTextureStacks: [] 32 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Materials/VFX_02118.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 91499463f11e0ca4f9c4b6924baf28f0 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Materials/VFX_02131.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: VFX_02131 11 | m_Shader: {fileID: 200, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _MainTex: 23 | m_Texture: {fileID: 2800000, guid: b1dc36e5bd2681c489109472d924bbb8, type: 3} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | m_Floats: 27 | - _InvFade: 1 28 | m_Colors: 29 | - _Color: {r: 1, g: 1, b: 1, a: 1} 30 | - _TintColor: {r: 0.33823532, g: 0.33823532, b: 0.33823532, a: 0.9019608} 31 | m_BuildTextureStacks: [] 32 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Materials/VFX_02131.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ae5a0a301dc85a04183e42ad7b988645 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Materials/VFX_02742.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: VFX_02742 11 | m_Shader: {fileID: 200, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _MainTex: 23 | m_Texture: {fileID: 2800000, guid: 5698df742713a5947be2c9dd210fa825, type: 3} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | m_Floats: 27 | - _InvFade: 1 28 | m_Colors: 29 | - _Color: {r: 1, g: 1, b: 1, a: 1} 30 | - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} 31 | m_BuildTextureStacks: [] 32 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Materials/VFX_02742.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5cacfc183a0193f4f8f7f0e292aa0682 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Materials/vfx3244.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: vfx3244 11 | m_Shader: {fileID: 200, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _MainTex: 23 | m_Texture: {fileID: 2800000, guid: 0fd84e915164c7e4f932ad7b5a4f6066, type: 3} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | m_Floats: 27 | - _InvFade: 1 28 | m_Colors: 29 | - _Color: {r: 1, g: 1, b: 1, a: 1} 30 | - _TintColor: {r: 1, g: 1, b: 1, a: 1} 31 | m_BuildTextureStacks: [] 32 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Materials/vfx3244.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b310989d16e39a94aa0c10ca193b2222 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Models.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fad57edee7406ff42be4d1f2b8cfbb05 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Models/VFX_Model7.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/Assets/ResRaw/Effects/Models/VFX_Model7.fbx -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b6e909d752d24eb4f890c1e322566a66 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Prefabs/VFX_Fire Magic Array 004.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2dc18ec16fb0c1b4f834320bac7c03d9 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b7fe7d156cd80ea4f9dd71bfa9e2bbcb 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Textures/102.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/Assets/ResRaw/Effects/Textures/102.tga -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Textures/66089.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/Assets/ResRaw/Effects/Textures/66089.tga -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Textures/82.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/Assets/ResRaw/Effects/Textures/82.tga -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Textures/VFX_LS004.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/Assets/ResRaw/Effects/Textures/VFX_LS004.tga -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Textures/VFX_LS004.tga.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0fd84e915164c7e4f932ad7b5a4f6066 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | seamlessCubemap: 0 23 | textureFormat: -1 24 | maxTextureSize: 1024 25 | textureSettings: 26 | filterMode: -1 27 | aniso: -1 28 | mipBias: -1 29 | wrapMode: -1 30 | nPOTScale: 1 31 | lightmap: 0 32 | compressionQuality: 50 33 | spriteMode: 0 34 | spriteExtrude: 1 35 | spriteMeshType: 1 36 | alignment: 0 37 | spritePivot: {x: .5, y: .5} 38 | spritePixelsToUnits: 100 39 | alphaIsTransparency: 0 40 | textureType: -1 41 | buildTargetSettings: [] 42 | spriteSheet: 43 | sprites: [] 44 | spritePackingTag: 45 | userData: 46 | -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Textures/VFX_LS018.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/Assets/ResRaw/Effects/Textures/VFX_LS018.tga -------------------------------------------------------------------------------- /Assets/ResRaw/Effects/Textures/VFX_LS018.tga.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d9d37d0430486d24fbd414fe36184e5a 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | seamlessCubemap: 0 23 | textureFormat: -1 24 | maxTextureSize: 1024 25 | textureSettings: 26 | filterMode: -1 27 | aniso: -1 28 | mipBias: -1 29 | wrapMode: -1 30 | nPOTScale: 1 31 | lightmap: 0 32 | compressionQuality: 50 33 | spriteMode: 0 34 | spriteExtrude: 1 35 | spriteMeshType: 1 36 | alignment: 0 37 | spritePivot: {x: .5, y: .5} 38 | spritePixelsToUnits: 100 39 | alphaIsTransparency: 0 40 | textureType: -1 41 | buildTargetSettings: [] 42 | spriteSheet: 43 | sprites: [] 44 | spritePackingTag: 45 | userData: 46 | -------------------------------------------------------------------------------- /Assets/ResRaw/Model.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d69bee73ce595fd4f9b240421d56362e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dc7fc3973d1315d42b53076a10a0bb84 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/Ani.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ad97c79b31b90f5459966f193a16033f 3 | folderAsset: yes 4 | timeCreated: 1506157957 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/Ani/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d3580225005a8a14b8c3c55de87a2f81 3 | folderAsset: yes 4 | timeCreated: 1506157958 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/Ani/Materials/skeleton_D.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b1494958bf9856a479bec1767c02878e 3 | timeCreated: 18446744011573954816 4 | NativeFormatImporter: 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/Ani/Skeleton@Attack.FBX: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/Assets/ResRaw/Model/Skeleton/Ani/Skeleton@Attack.FBX -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/Ani/Skeleton@Damage.FBX: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/Assets/ResRaw/Model/Skeleton/Ani/Skeleton@Damage.FBX -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/Ani/Skeleton@Death.FBX: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/Assets/ResRaw/Model/Skeleton/Ani/Skeleton@Death.FBX -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/Ani/Skeleton@Idle.FBX: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/Assets/ResRaw/Model/Skeleton/Ani/Skeleton@Idle.FBX -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/Ani/Skeleton@Knockback.FBX: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/Assets/ResRaw/Model/Skeleton/Ani/Skeleton@Knockback.FBX -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/Ani/Skeleton@Run.FBX: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/Assets/ResRaw/Model/Skeleton/Ani/Skeleton@Run.FBX -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/Ani/Skeleton@Skill.FBX: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/Assets/ResRaw/Model/Skeleton/Ani/Skeleton@Skill.FBX -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/Ani/Skeleton@Stand.FBX: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/Assets/ResRaw/Model/Skeleton/Ani/Skeleton@Stand.FBX -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/Ani/Skeleton@Walk.FBX: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/Assets/ResRaw/Model/Skeleton/Ani/Skeleton@Walk.FBX -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/Character.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2a861fd633658c04e82882c53fe3a6d9 3 | folderAsset: yes 4 | timeCreated: 1506157957 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/Character/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7d6d48cbd71222d499380e924ece197a 3 | folderAsset: yes 4 | timeCreated: 1506157957 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/Character/Materials/skeleton_D.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ed14df0368fe53543907335c0e3902c6 3 | timeCreated: 18446744011573954816 4 | NativeFormatImporter: 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/Character/Skeleton@Skin.FBX: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/Assets/ResRaw/Model/Skeleton/Character/Skeleton@Skin.FBX -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/Skeleton.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9e27b0bdab1ad7242a009899d15c0e67 3 | timeCreated: 1506158311 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/SkeletonController.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 595f7cae6f82a6146b20ca287fe7c859 3 | timeCreated: 1506158117 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 9100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/Texture.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 66497a105b2d94a45b853c544357a4ea 3 | folderAsset: yes 4 | timeCreated: 1506157957 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/Texture/Skeleton_D.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/Assets/ResRaw/Model/Skeleton/Texture/Skeleton_D.tif -------------------------------------------------------------------------------- /Assets/ResRaw/Model/Skeleton/Texture/Skeleton_D.tif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 943f3c476130c4f4f8ae55ef3ccd38ba 3 | timeCreated: 1510979420 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | externalObjects: {} 8 | serializedVersion: 4 9 | mipmaps: 10 | mipMapMode: 0 11 | enableMipMap: 1 12 | sRGBTexture: 1 13 | linearTexture: 0 14 | fadeOut: 0 15 | borderMipMap: 0 16 | mipMapsPreserveCoverage: 0 17 | alphaTestReferenceValue: 0.5 18 | mipMapFadeDistanceStart: 1 19 | mipMapFadeDistanceEnd: 3 20 | bumpmap: 21 | convertToNormalMap: 0 22 | externalNormalMap: 0 23 | heightScale: 0.25 24 | normalMapFilter: 0 25 | isReadable: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: -1 31 | maxTextureSize: 1024 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -1 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | maxTextureSizeSet: 0 57 | compressionQualitySet: 0 58 | textureFormatSet: 0 59 | platformSettings: 60 | - buildTarget: DefaultTexturePlatform 61 | maxTextureSize: 1024 62 | resizeAlgorithm: 0 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | androidETC2FallbackOverride: 0 70 | spriteSheet: 71 | serializedVersion: 2 72 | sprites: [] 73 | outline: [] 74 | physicsShape: [] 75 | spritePackingTag: 76 | userData: 77 | assetBundleName: 78 | assetBundleVariant: 79 | -------------------------------------------------------------------------------- /Assets/ResRaw/Skill.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 019522f44010fc945b7fb443abf13ab0 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ResRaw/Sound.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 18c9ef4a1cbeb034da1c1a59746ebbe8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/ResRaw/Sound/open_door.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/Assets/ResRaw/Sound/open_door.wav -------------------------------------------------------------------------------- /Assets/ResRaw/Sound/open_door.wav.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 69b0f778f2271114185b7100ad671e15 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Assets/RuntimeExample.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 285bc7db84e9259439494e5117a62aa2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RuntimeExample/Easing.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 289b0bbbadad662468e15a6917e4700c 3 | timeCreated: 1639623816 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a2daa5c1f92445048aecf445fa5057a6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fe9ebe2a0e5ccb9408cc66d2fba2aa02 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 81d0057143f3fe2478540d6c0b97b1ab 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Log.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3d60ced8e22342899a97bd8399ad5a26 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Log/Log.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace ActionEditor 4 | { 5 | public static class Log 6 | { 7 | public static bool Open = false; 8 | 9 | static Log() 10 | { 11 | #if UNITY_EDITOR 12 | Open = true; 13 | #endif 14 | } 15 | 16 | public static void I(object message) 17 | { 18 | if (Open) 19 | UnityEngine.Debug.Log(message); 20 | } 21 | 22 | public static void W(object message) 23 | { 24 | if (Open) 25 | UnityEngine.Debug.LogWarning(message); 26 | } 27 | 28 | public static void E(object message) 29 | { 30 | if (Open) 31 | UnityEngine.Debug.LogError(message); 32 | } 33 | 34 | public static void Exception(Exception exception) 35 | { 36 | if (Open) 37 | UnityEngine.Debug.LogException(exception); 38 | } 39 | 40 | public static void Exception(Exception exception, UnityEngine.Object context) 41 | { 42 | if (Open) 43 | UnityEngine.Debug.LogException(exception, context); 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Log/Log.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 03ea3505028b46fb8356fcd77001236c 3 | timeCreated: 1680834940 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Services.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c6a4e698c759429cafda208df585de82 3 | timeCreated: 1603180451 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Services/MonoManager.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | 4 | namespace ActionEditor 5 | { 6 | public class MonoManager : MonoBehaviour 7 | { 8 | public event Action OnUpdate; 9 | public event Action OnLateUpdate; 10 | public event Action OnFixedUpdate; 11 | public event Action OnApplicationQuitAction; 12 | public event Action OnApplicationPauseAction; 13 | 14 | private static bool IsQuiting { get; set; } 15 | 16 | private static MonoManager _inst; 17 | 18 | public static MonoManager Inst 19 | { 20 | get 21 | { 22 | if (_inst != null || IsQuiting) return _inst; 23 | _inst = FindObjectOfType(); 24 | if (_inst == null) 25 | { 26 | _inst = new GameObject("_MonoTimer").AddComponent(); 27 | } 28 | 29 | return _inst; 30 | } 31 | } 32 | 33 | 34 | ///Creates the MonoManager singleton 35 | public static void Create() 36 | { 37 | _inst = Inst; 38 | } 39 | 40 | protected void OnApplicationQuit() 41 | { 42 | IsQuiting = true; 43 | OnApplicationQuitAction?.Invoke(); 44 | } 45 | 46 | protected void OnApplicationPause(bool isPause) 47 | { 48 | OnApplicationPauseAction?.Invoke(isPause); 49 | } 50 | 51 | protected void Awake() 52 | { 53 | if (_inst != null && _inst != this) 54 | { 55 | DestroyImmediate(this.gameObject); 56 | return; 57 | } 58 | 59 | DontDestroyOnLoad(gameObject); 60 | _inst = this; 61 | } 62 | 63 | protected void Update() 64 | { 65 | OnUpdate?.Invoke(); 66 | } 67 | 68 | protected void LateUpdate() 69 | { 70 | OnLateUpdate?.Invoke(); 71 | } 72 | 73 | protected void FixedUpdate() 74 | { 75 | OnFixedUpdate?.Invoke(); 76 | } 77 | } 78 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Services/MonoManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 869c4449527c495c833b9d848ce61968 3 | timeCreated: 1614234084 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Services/Timer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 34564c54c20648aab48bc9dcdc333435 3 | timeCreated: 1614222135 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 255a1252a73f5164e94a7e7f52a7cd25 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Collection.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d069cf2e375b8a74ebab6f3df1f74a91 3 | timeCreated: 1656996254 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Collection/ParallelTaskCollection.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 33f78136d6a7de14688a6d3ed6903557 3 | timeCreated: 1657002644 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Collection/SequenceTaskCollection.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7440203326fc09a479080181660af525 3 | timeCreated: 1657003965 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Collection/TaskCollection.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace ActionEditor 4 | { 5 | public abstract class TaskCollection : NTask, ITaskCollection 6 | { 7 | protected readonly List RawList; 8 | protected readonly List FinishList; 9 | protected readonly List CurRunTask; 10 | 11 | 12 | public TaskCollection(string taskInfo = "") 13 | { 14 | RawList = new List(); 15 | FinishList = new List(); 16 | CurRunTask = new List(); 17 | TaskInfo = taskInfo; 18 | Status = TaskStatus.None; 19 | } 20 | 21 | public List CurrentTask => CurRunTask; 22 | 23 | public virtual int Count => RawList.Count + FinishList.Count; 24 | 25 | /// 26 | /// 任务失败中断任务链 27 | /// 28 | public virtual bool FailBreak 29 | { 30 | get; 31 | set; 32 | } 33 | 34 | public override float Progress 35 | { 36 | get 37 | { 38 | if (Status == TaskStatus.Success) return 1; 39 | if (Status == TaskStatus.None) return 0; 40 | var finishCount = FinishList.Count; 41 | for (var index = 0; index < CurRunTask.Count; index++) 42 | { 43 | var element = CurRunTask[index]; 44 | finishCount += (int)element.Progress; 45 | } 46 | 47 | return finishCount * 1f / RawList.Count; 48 | } 49 | } 50 | 51 | protected override TaskStatus OnProcess() 52 | { 53 | return this.RunTasksAndCheckIfDone(); 54 | } 55 | 56 | public ITaskCollection AddTask(ITask task) 57 | { 58 | RawList.Add(task); 59 | return this; 60 | } 61 | 62 | 63 | public override void Reset() 64 | { 65 | FinishList.Clear(); 66 | CurrentTask.Clear(); 67 | Status = TaskStatus.None; 68 | for (int i = 0,len = RawList.Count; i < len; i++) 69 | { 70 | RawList[i].Reset(); 71 | } 72 | } 73 | 74 | public override void Stop() 75 | { 76 | FinishList.Clear(); 77 | Status = TaskStatus.None; 78 | for (var i = 0; i < CurRunTask.Count; i++) 79 | { 80 | var task = CurrentTask[i]; 81 | task.Stop(); 82 | } 83 | } 84 | 85 | 86 | public virtual void Clear() 87 | { 88 | FinishList.Clear(); 89 | RawList.Clear(); 90 | Status = TaskStatus.None; 91 | } 92 | 93 | protected abstract TaskStatus RunTasksAndCheckIfDone(); 94 | } 95 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Collection/TaskCollection.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e84dd447d4e477a478c1cefaf7a14bc3 3 | timeCreated: 1656996883 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Collection/TimelineTaskCollection.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2532701b307e7d64386ae6a0ccedbf3c 3 | timeCreated: 1657434862 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Extensions.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ea8861aa2e7ea884ea4ee74daeda8caa 3 | timeCreated: 1657007208 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Extensions/TaskChainExtension.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | 4 | namespace ActionEditor 5 | { 6 | public static partial class TaskChainExtension 7 | { 8 | public static SequenceTaskCollection Sequence(this T selfbehaviour) where T : MonoBehaviour 9 | { 10 | var retNodeChain = new SequenceTaskCollection(); 11 | return retNodeChain; 12 | } 13 | 14 | public static ParallelTaskCollection Parallel(this T selfbehaviour) where T : MonoBehaviour 15 | { 16 | var retNodeChain = new ParallelTaskCollection(); 17 | return retNodeChain; 18 | } 19 | 20 | // public static TimelineList Timeline(this T selfbehaviour) where T : MonoBehaviour 21 | // { 22 | // var retNodeChain = new TimelineList(); 23 | // return retNodeChain; 24 | // } 25 | 26 | // public static ITaskCollection OnComplete(this ITaskCollection selfChain, Action callback) 27 | // { 28 | // selfChain.OnComplete(callback); 29 | // return selfChain; 30 | // } 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Extensions/TaskChainExtension.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bb9626fffe2a12242999e5c295218da1 3 | timeCreated: 1657007222 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Interface.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3fdfec8acff76af4daef6cf6c55c78f0 3 | timeCreated: 1656996246 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Interface/IProcess.cs: -------------------------------------------------------------------------------- 1 | namespace ActionEditor 2 | { 3 | /// 4 | /// 进度 5 | /// 6 | public interface IProcess 7 | { 8 | TaskStatus Process(); 9 | } 10 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Interface/IProcess.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a5556e4b457d51d49bf2d9ed0e024899 3 | timeCreated: 1656996282 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Interface/IRunner.cs: -------------------------------------------------------------------------------- 1 | namespace ActionEditor 2 | { 3 | public interface IRunner 4 | { 5 | /// 6 | /// 是否暂停 7 | /// 8 | bool IsPaused { get; set; } 9 | 10 | /// 11 | /// 是否已经终止了 12 | /// 13 | bool IsKilled { get; } 14 | 15 | /// 16 | /// 当前运行的任务数量 17 | /// 18 | int RunningTaskNum { get; } 19 | 20 | /// 21 | /// 准备执行的任务数量 22 | /// 23 | int NeedRunTaskNum { get; } 24 | 25 | /// 26 | /// 执行一个任务 27 | /// 28 | /// 任务对象 29 | void Run(ITask task); 30 | 31 | void Process(); 32 | 33 | /// 34 | /// 停止任务 35 | /// 36 | /// 任务对象 37 | void StopTask(ITask task); 38 | 39 | /// 40 | /// 停止所有任务 41 | /// 42 | void StopAllTask(); 43 | 44 | /// 45 | /// 终止任务 46 | /// 47 | void ShutDown(); 48 | } 49 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Interface/IRunner.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ed95fa20b281e8640a154c48d1780c70 3 | timeCreated: 1656996361 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Interface/ITask.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | 4 | namespace ActionEditor 5 | { 6 | public interface ITask : IProcess, IEnumerator 7 | { 8 | TaskStatus Status { get; } 9 | 10 | /// 11 | /// 当前任务的信息 12 | /// 13 | string Info { get; } 14 | 15 | /// 16 | /// 错误信息 17 | /// 18 | string ErrorMsg { get; } 19 | 20 | /// 21 | /// 当前任务的进度 22 | /// 23 | float Progress { get; } 24 | 25 | /// 26 | /// 任务正在执行 27 | /// 28 | bool IsRunning { get; } 29 | 30 | /// 31 | /// 任务是否执行完成 32 | /// 33 | bool IsDone { get; } 34 | 35 | 36 | /// 37 | /// 停止任务 38 | /// 39 | void Stop(); 40 | 41 | /// 42 | /// 任务开始回调 43 | /// 44 | /// 45 | /// 46 | /// 47 | ITask OnStarted(Action callback, bool cover = false); 48 | 49 | /// 50 | /// 任务执行回调 51 | /// 52 | /// 53 | /// 54 | /// 55 | ITask OnUpdated(Action callback, bool cover = false); 56 | 57 | /// 58 | /// 任务完成回调 59 | /// 60 | /// 61 | /// 62 | /// 63 | ITask OnCompleted(Action callback, bool cover = false); 64 | 65 | /// 66 | /// 运行任务 67 | /// 68 | /// 任务运行器 69 | void Run(IRunner runner); 70 | 71 | /// 72 | /// 任务参数 73 | /// 74 | /// 75 | object this[string argsName] { get; set; } 76 | } 77 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Interface/ITask.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f025551734ce37a479414f55be095790 3 | timeCreated: 1656996448 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Interface/ITaskCollection.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace ActionEditor 4 | { 5 | public interface ITaskCollection : ITask 6 | { 7 | /// 8 | /// 当前运行的任务堆栈 9 | /// 10 | List CurrentTask { get; } 11 | 12 | /// 13 | /// 添加一个任务 14 | /// 15 | /// 16 | /// 17 | ITaskCollection AddTask(ITask task); 18 | 19 | /// 20 | /// 清理任务列表 21 | /// 22 | void Clear(); 23 | } 24 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Interface/ITaskCollection.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2ae6582e140d07049accaf0b5db4b2f4 3 | timeCreated: 1656996765 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Interface/ITaskRun.cs: -------------------------------------------------------------------------------- 1 | namespace ActionEditor 2 | { 3 | public interface ITaskRun 4 | { 5 | void Run(IRunner runner); 6 | } 7 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Interface/ITaskRun.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a3b784189f1caf1488eb81fb903ff63e 3 | timeCreated: 1656996836 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/NTask.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8035be535392c22489664156d78df1ef 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Runner.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 63bed6143f265e3449b00af0ef891a5a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Runner/FlushingOperation.cs: -------------------------------------------------------------------------------- 1 | namespace ActionEditor 2 | { 3 | /// 4 | /// 操作信息类 5 | /// 6 | public class FlushingOperation 7 | { 8 | /// 9 | /// 是否暂停 10 | /// 11 | public bool Paused; 12 | 13 | /// 14 | /// 是否被终结 15 | /// 16 | public bool Kill; 17 | } 18 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Runner/FlushingOperation.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dc64e5709b547264b90f53b13ee8aaa9 3 | timeCreated: 1657004343 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Runner/Runner.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace ActionEditor 4 | { 5 | public class Runner : IRunner 6 | { 7 | public bool IsPaused 8 | { 9 | get => FlushingOperation.Paused; 10 | set => FlushingOperation.Paused = value; 11 | } 12 | 13 | public bool IsKilled => FlushingOperation.Kill; 14 | public int RunningTaskNum => Coroutines.Count; 15 | public int NeedRunTaskNum => ReadyTask.Count; 16 | 17 | /// 18 | /// 当前运行的任务 19 | /// 20 | protected readonly List Coroutines = new List(); 21 | 22 | /// 23 | /// 准备要运行的任务 24 | /// 25 | protected readonly Queue ReadyTask = new Queue(); 26 | 27 | /// 28 | /// 当前操作的信息 29 | /// 30 | protected readonly FlushingOperation FlushingOperation = new FlushingOperation(); 31 | 32 | public virtual void Run(ITask task) 33 | { 34 | ReadyTask.Enqueue(task); 35 | } 36 | 37 | public virtual void Process() 38 | { 39 | var count = ReadyTask.Count; 40 | for (var i = 0; i < count; i++) 41 | { 42 | var task = ReadyTask.Dequeue(); 43 | Coroutines.Add(task); 44 | } 45 | 46 | if (Coroutines.Count < 1) return; 47 | 48 | var index = 0; 49 | bool mustExit; 50 | do 51 | { 52 | var childTask = Coroutines[index]; 53 | var st = childTask.Process(); 54 | if (st >= TaskStatus.Success) 55 | { 56 | Coroutines.Remove(childTask); 57 | } 58 | else 59 | { 60 | index++; 61 | } 62 | 63 | mustExit = Coroutines.Count == 0 || index >= Coroutines.Count; 64 | } while (!mustExit); 65 | } 66 | 67 | public virtual void StopTask(ITask task) 68 | { 69 | var index = Coroutines.IndexOf(task); 70 | if (index != -1) 71 | { 72 | var t = Coroutines[index]; 73 | t.Stop(); 74 | Coroutines.RemoveAt(index); 75 | } 76 | } 77 | 78 | public virtual void StopAllTask() 79 | { 80 | ReadyTask.Clear(); 81 | for (int i = 0; i < Coroutines.Count; i++) 82 | { 83 | Coroutines[i].Stop(); 84 | } 85 | 86 | Coroutines.Clear(); 87 | } 88 | 89 | public virtual void ShutDown() 90 | { 91 | IsPaused = false; 92 | FlushingOperation.Kill = true; 93 | StopAllTask(); 94 | } 95 | } 96 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Runner/Runner.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3bd5593733a84d74f83248aa0170da03 3 | timeCreated: 1657005250 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Runner/RunnerProcess.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace ActionEditor 4 | { 5 | public class RunnerProcess : IProcess 6 | { 7 | /// 8 | /// 当前运行的任务 9 | /// 10 | protected readonly List Coroutines; 11 | 12 | /// 13 | /// 准备要运行的任务 14 | /// 15 | protected readonly Queue ReadyTask; 16 | 17 | /// 18 | /// 当前操作的信息 19 | /// 20 | protected readonly FlushingOperation FlushingOperation; 21 | 22 | /// 23 | /// 进程名称 24 | /// 25 | protected string Name; 26 | 27 | public RunnerProcess(string name, List coroutines, Queue readyTask, FlushingOperation op) 28 | { 29 | this.Name = name; 30 | Coroutines = coroutines; 31 | ReadyTask = readyTask; 32 | FlushingOperation = op; 33 | } 34 | 35 | public TaskStatus Process() 36 | { 37 | var flag = false; 38 | if (this.FlushingOperation.Kill) flag = true; 39 | else 40 | { 41 | for (var index = 0; index < this.ReadyTask.Count; index++) 42 | { 43 | // var task = ReadyTask[0]; 44 | var task = ReadyTask.Dequeue(); 45 | this.Coroutines.Add(task); 46 | // ReadyTask.RemoveAt(0); 47 | } 48 | 49 | if (this.Coroutines.Count == 0 || this.FlushingOperation.Paused) 50 | { 51 | flag = false; 52 | } 53 | else 54 | { 55 | var index = 0; 56 | var mustExit = false; 57 | do 58 | { 59 | var childTask = this.Coroutines[index]; 60 | var st = childTask.Process(); 61 | if (st >= TaskStatus.Success) 62 | { 63 | this.Coroutines.RemoveAt(index); //.splice(index, 1); 64 | } 65 | else 66 | { 67 | index++; 68 | } 69 | 70 | mustExit = this.Coroutines.Count == 0 || index >= this.Coroutines.Count; 71 | } while (!mustExit); 72 | } 73 | } 74 | 75 | return flag ? TaskStatus.Success : TaskStatus.Running; 76 | } 77 | } 78 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/Runner/RunnerProcess.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3647c1233c788034e91db438d16c23a5 3 | timeCreated: 1657004572 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/TaskStatus.cs: -------------------------------------------------------------------------------- 1 | namespace ActionEditor 2 | { 3 | public enum TaskStatus 4 | { 5 | /// 6 | /// 任务还未执行 7 | /// 8 | None = 0, 9 | 10 | /// 11 | /// 任务运行 12 | /// 13 | Running, 14 | 15 | /// 16 | /// 任务执行成功 17 | /// 18 | Success, 19 | 20 | /// 21 | /// 任务执行失败 22 | /// 23 | Fail 24 | } 25 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/Core/Runtime/Task/TaskStatus.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8d69db579faa30f4db7ae1b2c27cb10f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/README.md: -------------------------------------------------------------------------------- 1 | # 说明 2 | NBC框架完整连接:https://github.com/NoBugCn/NBC 3 | 4 | NBC前端框架核心是为了演示Runtime下使用。如果只使用Editor编辑Asset资产,Runtime为自定义,则不需要NBC.Core的内容 -------------------------------------------------------------------------------- /Assets/RuntimeExample/NBC/README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0743714d04319934599d064b63d623f2 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/RuntimeExample/README.md: -------------------------------------------------------------------------------- 1 | # 说明 2 | 本目录是Runtime使用演示目录,如果只需要Editor编辑Asset资产,则无需关注本目录内容 3 | 4 | ## 为何Clip的编辑器预览和Runtime逻辑不共用 5 | 考虑到编辑器预览其实是初步预览,很多情况下,其实是和Runtime下还是存在一定差异。 6 | 7 | 然后Editor下可以很轻松实现上一帧,上N帧等任意帧播放。而Runtime下很难实现这点 8 | Editor下比如资源处理可以很简单粗暴来处理,Runtime下自己业务可能存在资源预加载等逻辑。 9 | 10 | 同时Editor下的预览和Runtime下的播放逻辑是可以自己抽象起来,共用一份代码,只有部分设计资源等内容分开即可。 11 | 12 | ## 为何不在Clip中直接写逻辑 13 | 14 | 在我设计中,时间轴编辑出来的是表现的配置,其内部只有一些表现逻辑,不存在具体业务的相关内容。 15 | 16 | 以技能为例,编辑出来的Clip只是技能的一部分,并不是技能的全部,分清楚主次关系很重要。 17 | 18 | 同时,如果我们在`PlayParticle`这个Clip中写一些runtime逻辑。比如实例化粒子或者播放粒子。 19 | 20 | 那么如果我们客户端希望要数据层和表现层是分离的。数据层只做数据判断处理,表现层只做表现。 21 | 22 | 那我们的clip存在逻辑,这就是典型的职责划分不清晰,不符合单一功能职责化的原则。 23 | 24 | 基于这种设计理念,我们就把ActionEditor编辑出来的Asset设定为单纯的是表现的配置,可以认为是配置表的一部分。 25 | 26 | 如此职责分明,虽然脚本数量会增加,但是后续维护成本却是很低的。也方便多人协作。 27 | 28 | 如果项目是比较重度的,一个人同时维护编辑器,表现层,数据层。那么是很困难的,分开也方便由不同人维护,同时出现问题,也更容易定位是那个部分有问题。 -------------------------------------------------------------------------------- /Assets/RuntimeExample/README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1c492f0d7b504907b78cad7f24f08d9b 3 | timeCreated: 1691199114 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scene.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 36d33f132e667ac4781f73207601ec1d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scene/Example.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8158a5893e6e7ee4595f399bac5f06f0 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 627c2c084e0b2f74a8ab65b7a2497964 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/BattleRunner.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using ActionEditor; 4 | 5 | namespace ActionEditor 6 | { 7 | /// 8 | /// 战斗任务运行器 9 | /// 10 | public class BattleRunner : Runner 11 | { 12 | private static BattleRunner _updateRunner = new BattleRunner(); 13 | public static BattleRunner Scheduler => _updateRunner; 14 | 15 | private readonly List _updateRoutines = new List(); 16 | 17 | private static bool _pause; 18 | 19 | public event Action OnUpdate; 20 | 21 | /// 22 | /// 暂停运行器 23 | /// 24 | public static bool Pause 25 | { 26 | get => _pause; 27 | set => _pause = value; 28 | } 29 | 30 | public BattleRunner() 31 | { 32 | Log.I("BattleRunner-BattleRunner"); 33 | MonoManager.Inst.OnUpdate += Update; 34 | StartCoroutine(new RunnerProcess("BattleRunner", Coroutines, ReadyTask, FlushingOperation)); 35 | } 36 | 37 | private void StartCoroutine(IProcess process) 38 | { 39 | var routines = _updateRoutines; 40 | if (!routines.Contains(process)) 41 | { 42 | routines.Add(process); 43 | } 44 | } 45 | 46 | private void Update() 47 | { 48 | if (Pause) return; 49 | ExecuteRoutines(_updateRoutines); 50 | OnUpdate?.Invoke(); 51 | } 52 | 53 | private void ExecuteRoutines(List arr) 54 | { 55 | if (arr != null && arr.Count > 0) 56 | { 57 | for (var index = 0; index < arr.Count; index++) 58 | { 59 | var task = arr[index]; 60 | var st = task.Process(); 61 | if (st == TaskStatus.Success) 62 | { 63 | arr.RemoveAt(index); 64 | index--; 65 | } 66 | } 67 | } 68 | } 69 | } 70 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/BattleRunner.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8222a37191e2411b85d22a3f16f54e20 3 | timeCreated: 1691203405 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Config.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 219319c79e5042f096d7ef17dc2beb55 3 | timeCreated: 1691199744 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Config/SkillConfig.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | using UnityEditor; 3 | using UnityEngine; 4 | 5 | namespace ActionEditor 6 | { 7 | /// 8 | /// 技能配置,(模拟真实项目存在的技能数值配置) 9 | /// 10 | public class SkillConfig 11 | { 12 | public int Id; 13 | 14 | public int Atk; 15 | public int Def; 16 | 17 | /// 18 | /// 时间轴配置名 19 | /// 20 | public string EventName; 21 | 22 | 23 | private SkillAsset _skillAsset; 24 | 25 | public SkillAsset EventConfig 26 | { 27 | get 28 | { 29 | if (_skillAsset == null) 30 | { 31 | #if UNITY_EDITOR 32 | var textAsset = UnityEditor.AssetDatabase.LoadAssetAtPath($"Assets/ResRaw/Skill/{EventName}.json"); 33 | if (textAsset != null) 34 | { 35 | //_skillAsset = Json.Deserialize(typeof(SkillAsset), textAsset.text) as SkillAsset; 36 | } 37 | //演示直接使用editor的资源方法 38 | // _skillAsset = 39 | // UnityEditor.AssetDatabase.LoadAssetAtPath($"Assets/ResRaw/Skill/{EventName}.asset"); 40 | #endif 41 | } 42 | 43 | return _skillAsset; 44 | } 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Config/SkillConfig.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: affbf6409a5f4ed2a6a0ffe5fa10465f 3 | timeCreated: 1691199749 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Init.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using ActionEditor; 4 | using UnityEngine; 5 | 6 | public class Init : MonoBehaviour 7 | { 8 | void Start() 9 | { 10 | //添加个模拟配置 11 | SkillConfig skillConfig = new SkillConfig 12 | { 13 | Id = 66, 14 | Atk = 666, 15 | Def = 88, 16 | EventName = "1001" 17 | }; 18 | 19 | //添加个模拟技能 20 | SkillPlayAttack skill = new SkillPlayAttack 21 | { 22 | SkillConfig = skillConfig 23 | }; 24 | 25 | var skeleton = GameObject.Find("Skeleton"); 26 | var hero = skeleton.AddComponent(); //演示的role脚本直接继承MonoManager,减小代码量 27 | hero.AddSkill(skill); 28 | 29 | //释放技能 30 | hero.UseSkill(66); 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Init.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4c0a3149c9e01ad4ebf850dd9634c13c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Plyaer.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d36bf68503874d50be217c9b29cba734 3 | timeCreated: 1691199817 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Plyaer/HeroPlayer.cs: -------------------------------------------------------------------------------- 1 | namespace ActionEditor 2 | { 3 | public class HeroPlayer : RoleBase 4 | { 5 | } 6 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Plyaer/HeroPlayer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 95f6e51062af48f5acc6db1a19c04609 3 | timeCreated: 1691199872 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Plyaer/MonsterPlayer.cs: -------------------------------------------------------------------------------- 1 | namespace ActionEditor 2 | { 3 | public class MonsterPlayer : RoleBase 4 | { 5 | } 6 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Plyaer/MonsterPlayer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 734d6e247d84428c8232aed2de0488a0 3 | timeCreated: 1691199850 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Plyaer/RoleBase.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace ActionEditor 4 | { 5 | public abstract class RoleBase : MonoManager 6 | { 7 | private readonly Dictionary _skills = new Dictionary(); 8 | 9 | public void AddSkill(ISkillPlay skillPlay) 10 | { 11 | skillPlay.Player = this; 12 | _skills[skillPlay.SkillConfig.Id] = skillPlay; 13 | } 14 | 15 | public void UseSkill(int id) 16 | { 17 | if (_skills.TryGetValue(id, out var skillPlay)) 18 | { 19 | skillPlay.Start(); 20 | } 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Plyaer/RoleBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6269191501e54e5fb6f76f03c24faeb1 3 | timeCreated: 1691199822 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8575b90a807d4b2f83381446ee79dcf8 3 | timeCreated: 1691199463 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cabceb88bf6d4e30a38c78eedd0586fe 3 | timeCreated: 1691199476 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/AV.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ba7205a43e7c4955a284d8453f925e76 3 | timeCreated: 1691200032 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/AV/PlayAnimationClipTask.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace ActionEditor 4 | { 5 | public class PlayAnimationClipTask : SkillClipBase 6 | { 7 | private PlayAnimation PlayAnimation => ActionClip as PlayAnimation; 8 | 9 | protected override void Begin() 10 | { 11 | //这里执行粒子播放逻辑 12 | Debug.Log($"播放一个粒子:{PlayAnimation.resPath}"); 13 | } 14 | 15 | protected override void End() 16 | { 17 | //执行粒子回收逻辑 18 | Debug.Log($"播放粒子结束:{PlayAnimation.resPath}"); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/AV/PlayAnimationClipTask.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 06b74d94df454511a4d1a8e3a3a944eb 3 | timeCreated: 1691200315 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/AV/PlayAudioClipTask.cs: -------------------------------------------------------------------------------- 1 | namespace ActionEditor 2 | { 3 | public class PlayAudioClipTask : SkillClipBase 4 | { 5 | private PlayAudio PlayAudio => ActionClip as PlayAudio; 6 | 7 | protected override void Begin() 8 | { 9 | //调用自己播放音频的接口 10 | Log.I($"开始播放一个声音,"); 11 | } 12 | 13 | protected override void End() 14 | { 15 | Log.I("播放一个声音结束"); 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/AV/PlayAudioClipTask.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 720b7fc3b6c84deaad394f6e4192b088 3 | timeCreated: 1691200075 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Events.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bb97997520cd9ea40ac98e3bcff30c75 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Events/TriggerEventClipTask.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace ActionEditor 4 | { 5 | public class TriggerEventClipTask : SkillClipBase 6 | { 7 | private TriggerEvent TriggerEvent => ActionClip as TriggerEvent; 8 | 9 | protected override void Begin() 10 | { 11 | //可以在这里调用消息机制,派发消息事件 12 | Debug.Log($"触发一个事件,eventName:{TriggerEvent.eventName}"); 13 | } 14 | 15 | protected override void End() 16 | { 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Events/TriggerEventClipTask.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 410b4822b3d94823bd85507e91b3aa1e 3 | timeCreated: 1691201557 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Events/TriggerLogClipTask.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace ActionEditor 4 | { 5 | public class TriggerLogClipTask : SkillClipBase 6 | { 7 | private TriggerLog TriggerLog => ActionClip as TriggerLog; 8 | 9 | protected override void Begin() 10 | { 11 | Debug.Log($"TriggerLog:{TriggerLog.log}"); 12 | } 13 | 14 | protected override void End() 15 | { 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Events/TriggerLogClipTask.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7ab1f0fc84204949b703bdad4bd16fd6 3 | timeCreated: 1691201527 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Events/TriggerShakeClipTask.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace ActionEditor 4 | { 5 | public class TriggerShakeClipTask : SkillClipBase 6 | { 7 | private TriggerShake TriggerShake => ActionClip as TriggerShake; 8 | 9 | protected override void Begin() 10 | { 11 | //调用自己项目震动逻辑 12 | Debug.Log("播放震动逻辑"); 13 | } 14 | 15 | protected override void End() 16 | { 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Events/TriggerShakeClipTask.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3a1ed01a1b8948709c6bbf1ee5807a14 3 | timeCreated: 1691201805 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Particles.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 13fcf1646e6647d28f65fc4d23224a82 3 | timeCreated: 1691200053 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Particles/PlayParticleClipTask.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace ActionEditor 4 | { 5 | public class PlayParticleClipTask : SkillClipBase 6 | { 7 | protected override void Begin() 8 | { 9 | //播放粒子 10 | Debug.Log("开始播放粒子==="); 11 | } 12 | 13 | protected override void End() 14 | { 15 | //回收粒子 16 | Debug.Log("粒子播放完毕==="); 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Particles/PlayParticleClipTask.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 83fe2699858c4a7a894114d1db302aa4 3 | timeCreated: 1691200430 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/SkillClipBase.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | 3 | namespace ActionEditor 4 | { 5 | public abstract class SkillClipBase : NTask 6 | { 7 | /// 8 | /// 时间进度 9 | /// 10 | private float _processTime = 0; 11 | 12 | 13 | /// 14 | /// 时长 15 | /// 16 | private float _totalTime = 0; 17 | 18 | private float _time = 0; 19 | 20 | 21 | /// 22 | /// 时长 23 | /// 24 | public float Time 25 | { 26 | get => _time; 27 | set 28 | { 29 | _time = value; 30 | _argsDic["time"] = value; 31 | } 32 | } 33 | 34 | public float TotalTime 35 | { 36 | get => _totalTime; 37 | set => _totalTime = value; 38 | } 39 | 40 | public override float Progress => _processTime / _totalTime; 41 | public override bool IsRunning => _processTime < _totalTime; 42 | 43 | protected SkillConfig SkillConfig; 44 | 45 | //owen 46 | protected RoleBase Player; 47 | 48 | 49 | protected Clip ActionClip; 50 | 51 | public void SetActionClip(Clip actionClip) 52 | { 53 | ActionClip = actionClip; 54 | } 55 | 56 | public void SetSkill(SkillConfig skillConfig) 57 | { 58 | SkillConfig = skillConfig; 59 | } 60 | 61 | public void SetPlayer(RoleBase player) 62 | { 63 | Player = player; 64 | } 65 | 66 | protected override void OnStart() 67 | { 68 | _processTime = 0; 69 | Begin(); 70 | } 71 | 72 | protected override TaskStatus OnProcess() 73 | { 74 | _processTime += UnityEngine.Time.deltaTime; 75 | Tick(); 76 | 77 | if (_processTime >= _totalTime) 78 | { 79 | End(); 80 | return TaskStatus.Success; 81 | } 82 | 83 | return TaskStatus.Running; 84 | } 85 | 86 | protected abstract void Begin(); 87 | protected abstract void End(); 88 | 89 | protected virtual void Tick() 90 | { 91 | } 92 | } 93 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/SkillClipBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 80d6ebd9612e47c8b9493bb8d4525f8d 3 | timeCreated: 1691199578 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/SkillDirector.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | 3 | namespace ActionEditor 4 | { 5 | public static class SkillDirector 6 | { 7 | public static SkillClipBase GetClip(Clip clip) 8 | { 9 | SkillClipBase classInst = null; 10 | //这里用穷举方式来做。当然大家如果不用脚本剔除,也可以用反射来做 11 | if (clip is PlayAudio) 12 | { 13 | classInst = new PlayAudioClipTask(); 14 | } 15 | else if (clip is PlayAnimation) 16 | { 17 | classInst = new PlayAnimationClipTask(); 18 | } 19 | else if (clip is PlayParticle) 20 | { 21 | classInst = new PlayParticleClipTask(); 22 | } 23 | else if (clip is MoveBy) 24 | { 25 | classInst = new MoveByClipTask(); 26 | } 27 | else if (clip is MoveTo) 28 | { 29 | classInst = new MoveToClipTask(); 30 | } 31 | else if (clip is RotateTo) 32 | { 33 | classInst = new RotateToClipTask(); 34 | } 35 | else if (clip is ScaleTo) 36 | { 37 | classInst = new ScaleToClipTask(); 38 | } 39 | else if (clip is VisibleTo) 40 | { 41 | classInst = new VisibleToClipTask(); 42 | } 43 | else if (clip is TriggerLog) 44 | { 45 | classInst = new TriggerLogClipTask(); 46 | } 47 | else if (clip is TriggerEvent) 48 | { 49 | classInst = new TriggerEventClipTask(); 50 | } 51 | else if (clip is TriggerShake) 52 | { 53 | classInst = new TriggerShakeClipTask(); 54 | } 55 | 56 | if (classInst != null) 57 | { 58 | classInst.Time = clip.StartTime; 59 | classInst.TotalTime = clip.Length; 60 | classInst.SetActionClip(clip); 61 | } 62 | 63 | return classInst; 64 | } 65 | } 66 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/SkillDirector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0096cff1c27444dea8681fa9663f928a 3 | timeCreated: 1691199558 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Transforms.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0683649ab41f4a8daca7679b31f07cb5 3 | timeCreated: 1691200060 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Transforms/MoveByClipTask.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace ActionEditor 4 | { 5 | public class MoveByClipTask : SkillClipBase 6 | { 7 | protected override void Begin() 8 | { 9 | Debug.Log("播放 MoveByClipTask"); 10 | } 11 | 12 | protected override void End() 13 | { 14 | 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Transforms/MoveByClipTask.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6408b52655e64c04a7eff3365721c2db 3 | timeCreated: 1691200527 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Transforms/MoveToClipTask.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace ActionEditor 4 | { 5 | public class MoveToClipTask : SkillClipBase 6 | { 7 | protected override void Begin() 8 | { 9 | Debug.Log("播放 MoveToClipTask"); 10 | } 11 | 12 | protected override void End() 13 | { 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Transforms/MoveToClipTask.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c63afa6a7be5498a8163a41c142978fd 3 | timeCreated: 1691202544 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Transforms/RotateToClipTask.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | 4 | namespace ActionEditor 5 | { 6 | public class RotateToClipTask : SkillClipBase 7 | { 8 | 9 | protected override void Begin() 10 | { 11 | Debug.Log("播放 RotateToClipTask"); 12 | } 13 | 14 | protected override void End() 15 | { 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Transforms/RotateToClipTask.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d6f72c72b0214a4ea9ea054511cf2718 3 | timeCreated: 1691202730 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Transforms/ScaleToClipTask.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace ActionEditor 4 | { 5 | public class ScaleToClipTask : SkillClipBase 6 | { 7 | protected override void Begin() 8 | { 9 | Debug.Log("播放 ScaleToClipTask"); 10 | } 11 | 12 | protected override void End() 13 | { 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Transforms/ScaleToClipTask.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c3765a94edd04afe8464ee098f1a6e69 3 | timeCreated: 1691202789 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Transforms/VisibleToClipTask.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace ActionEditor 4 | { 5 | public class VisibleToClipTask : SkillClipBase 6 | { 7 | protected override void Begin() 8 | { 9 | Debug.Log("播放 VisibleToClipTask"); 10 | } 11 | 12 | protected override void End() 13 | { 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/Director/Transforms/VisibleToClipTask.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 34737099af2342e59c68acf01014194e 3 | timeCreated: 1691202517 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/ISkillPlay.cs: -------------------------------------------------------------------------------- 1 | namespace ActionEditor 2 | { 3 | public interface ISkillPlay 4 | { 5 | //如果要数据和表现层分离 6 | // ISkill SkillData { get; } 7 | // void SetSkillData(ISkill skillData); 8 | 9 | SkillConfig SkillConfig { get; set; } 10 | 11 | RoleBase Player { get; set; } 12 | 13 | void Start(); 14 | void Stop(); 15 | } 16 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/ISkillPlay.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 619f957ff0674d3cade474a93537edc2 3 | timeCreated: 1691199501 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/SkillPlayAttack.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using ActionEditor; 3 | using UnityEngine; 4 | 5 | namespace ActionEditor 6 | { 7 | public class SkillPlayAttack : ISkillPlay 8 | { 9 | private TimelineTaskCollection _timelineEvents; 10 | private ParallelTaskCollection _sequence; 11 | 12 | public SkillConfig SkillConfig { get; set; } 13 | public RoleBase Player { get; set; } 14 | 15 | public void Start() 16 | { 17 | _sequence = new ParallelTaskCollection(); 18 | _timelineEvents = GetTimelineTask(SkillConfig.EventConfig); 19 | 20 | //在播放时间轴前可以做一些前置动作。比如播放施法前摇时间轴或者一些其他逻辑 21 | _sequence.AddTask(new RunFunTask(() => { Debug.Log("技能开始前置逻辑"); })); 22 | _sequence.AddTask(new TimeStopTask(1f)); //测试,在博时间轴前等待1s 23 | _sequence.AddTask(new RunFunTask(() => { Debug.Log("技能时间轴开始播放"); })); 24 | _sequence.AddTask(_timelineEvents); 25 | _sequence.OnCompleted((_) => { Stop(); }); 26 | _sequence.Run(BattleRunner.Scheduler); 27 | } 28 | 29 | 30 | private TimelineTaskCollection GetTimelineTask(SkillAsset skillAsset) 31 | { 32 | var events = new TimelineTaskCollection(); 33 | if (skillAsset != null) 34 | { 35 | List list = new List(); 36 | foreach (var group in skillAsset.groups) 37 | { 38 | foreach (var track in group.Tracks) 39 | { 40 | list.AddRange(track.Clips); 41 | } 42 | } 43 | 44 | foreach (var clip in list) 45 | { 46 | var t = SkillDirector.GetClip(clip); 47 | if (t == null) continue; 48 | t.SetPlayer(Player); 49 | t.SetSkill(SkillConfig); 50 | events.AddTask(t); 51 | } 52 | } 53 | else 54 | { 55 | Log.E($"技能事件行为配置为空,skillId={SkillConfig.Id}"); 56 | } 57 | 58 | return events; 59 | } 60 | 61 | public void Stop() 62 | { 63 | Log.I($"技能表现播放完毕"); 64 | } 65 | } 66 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Skill/SkillPlayAttack.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3b1006735ac646f3bd3a9d2912e2a400 3 | timeCreated: 1691203223 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Tasks.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8508279aee8c481c9b6ca1502f8d0fa6 3 | timeCreated: 1691204183 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Tasks/LogTask.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace ActionEditor 4 | { 5 | public class LogTask : NTask 6 | { 7 | private string _info; 8 | 9 | public LogTask(string info) 10 | { 11 | _info = info; 12 | } 13 | 14 | protected override void OnStart() 15 | { 16 | Debug.Log(_info); 17 | Finish(); 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Tasks/LogTask.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9075e7b56b6b4606886f2a9ac137ed79 3 | timeCreated: 1691204116 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Tasks/RunFunTask.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace ActionEditor 4 | { 5 | public class RunFunTask : NTask 6 | { 7 | private readonly Action _action; 8 | 9 | public RunFunTask(Action action) 10 | { 11 | _action = action; 12 | } 13 | 14 | protected override void OnStart() 15 | { 16 | _action?.Invoke(); 17 | 18 | Finish(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Tasks/RunFunTask.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8468da0a93114c109f53b9d284d2007a 3 | timeCreated: 1691204197 -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Tasks/TimeStopTask.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace ActionEditor 4 | { 5 | public class TimeStopTask : NTask 6 | { 7 | public float ProcessTime = 0; 8 | public readonly float EndTime = 0; 9 | 10 | public TimeStopTask(float time) 11 | { 12 | EndTime = time; 13 | ProcessTime = 0; 14 | } 15 | 16 | public override void Reset() 17 | { 18 | ProcessTime = 0; 19 | } 20 | 21 | public override void Stop() 22 | { 23 | ProcessTime = EndTime; 24 | } 25 | 26 | protected override TaskStatus OnProcess() 27 | { 28 | this.ProcessTime += Time.deltaTime; 29 | return this.ProcessTime >= this.EndTime ? TaskStatus.Success : TaskStatus.Running; 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/RuntimeExample/Scripts/Tasks/TimeStopTask.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a290b7925ac14c72823d4f701b21a9af 3 | timeCreated: 1691204229 -------------------------------------------------------------------------------- /Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9c53962885c2c4f449125a979d6ad240 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/SampleScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 99c9720ab356a0642a771bea13969a05 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Scenes/VFX_LS018 1.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/Assets/Scenes/VFX_LS018 1.tga -------------------------------------------------------------------------------- /Assets/Scenes/test.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5fc9e62be93cb0e468144df800accecf 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 24c24633cff5c6041a127f5c22d5b5c5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 132590b0738d24c4ebbf9ea9d59f563c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ba3b2381a29b46d2b06ff8400a772727 3 | timeCreated: 1684029758 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5593098a6d6141bea1a978f1bc8a00e2 3 | timeCreated: 1684577287 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Clips.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7d0218691e4247e4dbd326faecfe0151 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Clips/MoveByPreview.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | using UnityEngine; 3 | 4 | namespace ActionEditorExample 5 | { 6 | /// 7 | /// 移动至预览 8 | /// 9 | [CustomPreview(typeof(MoveBy))] 10 | public class MoveByPreview : PreviewBase 11 | { 12 | private Vector3 originalPos; 13 | 14 | 15 | public override void Update(float time, float previousTime) 16 | { 17 | var target = originalPos + clip.move; 18 | ModelSampler.EditModel.transform.position = 19 | Easing.Ease(clip.interpolation, originalPos, target, time / clip.Length); 20 | 21 | 22 | } 23 | 24 | public override void Enter() 25 | { 26 | if (ModelSampler.EditModel != null) 27 | { 28 | originalPos = ModelSampler.EditModel.transform.position; 29 | } 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Clips/MoveByPreview.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ae0f7f5ff154f418255e18dfc5dacb1 3 | timeCreated: 1684583160 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Clips/MoveToPreview.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | using UnityEngine; 3 | 4 | namespace ActionEditorExample 5 | { 6 | /// 7 | /// 移动至预览 8 | /// 9 | [CustomPreview(typeof(MoveTo))] 10 | public class MoveToPreview : PreviewBase 11 | { 12 | private Vector3 originalPos; 13 | 14 | public override void Update(float time, float previousTime) 15 | { 16 | var endPos = TargetPosition(); 17 | 18 | var interpolateAmount = time / clip.Length; 19 | 20 | ModelSampler.EditModel.transform.position = 21 | Easing.Ease(clip.interpolation, originalPos, endPos, interpolateAmount); 22 | } 23 | 24 | 25 | public override void Enter() 26 | { 27 | if (ModelSampler.EditModel != null) 28 | { 29 | originalPos = ModelSampler.EditModel.transform.position; 30 | } 31 | } 32 | 33 | private Vector3 TargetPosition() 34 | { 35 | Vector3 endPos = ModelSampler.DefPosition; 36 | switch (clip.moveType) 37 | { 38 | case MoveToType.Target: 39 | //这里直接到目标点位。实际业务请根据自己业务情况计算碰撞盒子和半径等内容 40 | endPos = ModelSampler.TargetModel.transform.position; 41 | break; 42 | case MoveToType.OriginalPosition: 43 | endPos = ModelSampler.DefPosition; 44 | break; 45 | } 46 | 47 | return endPos; 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Clips/MoveToPreview.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 939a90e5fd89491dbcf9c138d7c80369 3 | timeCreated: 1684583267 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Clips/PlayAnimationPreview.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | using UnityEditor.Animations; 3 | using UnityEngine; 4 | 5 | namespace ActionEditorExample 6 | { 7 | /// 8 | /// 动画预览 9 | /// 10 | [CustomPreview(typeof(PlayAnimation))] 11 | public class PlayAnimationPreview : PreviewBase 12 | { 13 | private Animator _animator; 14 | private AnimationClip _animationClip; 15 | 16 | public override void Update(float time, float previousTime) 17 | { 18 | if (_animator != null && _animationClip != null) 19 | { 20 | Preview(_animationClip, _animator.gameObject, time); 21 | } 22 | } 23 | 24 | public override void Enter() 25 | { 26 | var model = ModelSampler.EditModel; 27 | if (model != null) 28 | { 29 | _animator = model.GetComponent(); 30 | } 31 | 32 | if (_animator != null) 33 | { 34 | var audioClipName = string.Empty; 35 | if (clip.animationClip != null) 36 | { 37 | audioClipName = clip.animationClip.name; 38 | } 39 | 40 | if (_animator.runtimeAnimatorController is AnimatorController 41 | animatorController) 42 | { 43 | var layer = animatorController.layers[0]; 44 | var states = layer.stateMachine.states; 45 | foreach (var child in states) 46 | { 47 | if (child.state.name == audioClipName) 48 | { 49 | if (child.state.motion is AnimationClip c) 50 | { 51 | _animationClip = c; 52 | } 53 | } 54 | } 55 | } 56 | } 57 | } 58 | 59 | /// 60 | /// 这里直接采样播放,如果项目需要,请自行通过AnimationMixerPlayable来扩展动画融合播放 61 | /// 62 | /// 63 | /// 64 | /// 65 | public void Preview(AnimationClip animationClip, GameObject gameObject, float currentTime) 66 | { 67 | animationClip.SampleAnimation(gameObject, currentTime); 68 | } 69 | } 70 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Clips/PlayAnimationPreview.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ad4f1e87aaa0474a9db9592548df1b28 3 | timeCreated: 1684583912 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Clips/PlayAudioPreview.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | using UnityEngine; 3 | 4 | namespace ActionEditorExample 5 | { 6 | /// 7 | /// 音频预览 8 | /// 9 | [CustomPreview(typeof(PlayAudio))] 10 | public class PlayAudioPreview : PreviewBase 11 | { 12 | private AudioSource source; 13 | 14 | public override void Update(float time, float previousTime) 15 | { 16 | if (source != null) 17 | { 18 | AudioSampler.Sample(source, clip.audioClip, time - clip.clipOffset, previousTime - clip.clipOffset, 19 | clip.volume); 20 | } 21 | } 22 | 23 | public override void Enter() 24 | { 25 | Do(); 26 | } 27 | 28 | public override void ReverseEnter() 29 | { 30 | Do(); 31 | } 32 | 33 | public override void Exit() 34 | { 35 | Undo(); 36 | } 37 | 38 | public override void Reverse() 39 | { 40 | Undo(); 41 | } 42 | 43 | void Do() 44 | { 45 | if (source == null) 46 | { 47 | source = AudioSampler.GetSource(); 48 | } 49 | 50 | if (source != null) 51 | { 52 | source.clip = clip.audioClip; 53 | } 54 | } 55 | 56 | void Undo() 57 | { 58 | if (source != null) 59 | { 60 | source.clip = null; 61 | AudioSampler.RetureSource(source); 62 | } 63 | } 64 | } 65 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Clips/PlayAudioPreview.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7244d6a475b5468babc8ae058d523ff1 3 | timeCreated: 1684577376 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Clips/PlayParticlePreview.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | using UnityEditor; 3 | using UnityEngine; 4 | 5 | namespace ActionEditorExample 6 | { 7 | /// 8 | /// 普通粒子预览 9 | /// 10 | [ActionEditor.CustomPreview(typeof(PlayParticle))] 11 | public class PlayParticlePreview : PreviewBase 12 | { 13 | private GameObject _effectObj; 14 | public ParticleSystem particles; 15 | private ParticleSystem.EmissionModule em; 16 | 17 | public override void Update(float time, float previousTime) 18 | { 19 | if (_effectObj == null) 20 | { 21 | return; 22 | } 23 | 24 | if (_effectObj != null && !_effectObj.activeSelf) 25 | { 26 | _effectObj.SetActive(true); 27 | } 28 | 29 | UpdateParticle(time); 30 | } 31 | 32 | private void UpdateParticle(float time) 33 | { 34 | if (!Application.isPlaying) 35 | { 36 | if (particles != null) 37 | { 38 | em.enabled = time < clip.Length; 39 | particles.Simulate(time); 40 | } 41 | } 42 | } 43 | 44 | public override void Enter() 45 | { 46 | if (_effectObj == null) 47 | { 48 | //创建特效。 49 | //实际业务建议自行编写特效对象池 50 | CreateEffect(); 51 | } 52 | 53 | Play(_effectObj); 54 | } 55 | 56 | public override void Exit() 57 | { 58 | if (_effectObj != null) 59 | { 60 | _effectObj.gameObject.SetActive(false); 61 | } 62 | } 63 | 64 | protected void Play(GameObject effectObj) 65 | { 66 | if (particles == null) 67 | { 68 | particles = effectObj.GetComponentInChildren(); 69 | } 70 | 71 | if (!particles.isPlaying && particles.useAutoRandomSeed) 72 | { 73 | particles.useAutoRandomSeed = false; 74 | } 75 | 76 | em = particles.emission; 77 | em.enabled = true; 78 | particles.Play(); 79 | } 80 | 81 | 82 | private void CreateEffect() 83 | { 84 | var obj = AssetDatabase.LoadAssetAtPath(clip.resPath); 85 | if (obj != null) 86 | { 87 | _effectObj = Object.Instantiate(obj); 88 | _effectObj.transform.position = Vector3.zero; 89 | //演示代码只演示原地播放,挂点播放等需要自行编写挂点相关脚本和设置挂点 90 | } 91 | } 92 | } 93 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Clips/PlayParticlePreview.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ada502a20b4449948951a3fe404dacef 3 | timeCreated: 1684588929 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Clips/RotateToPreview.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | using UnityEngine; 3 | 4 | namespace ActionEditorExample 5 | { 6 | /// 7 | /// 旋转角度预览 8 | /// 9 | [CustomPreview(typeof(RotateTo))] 10 | public class RotateToPreview : PreviewBase 11 | { 12 | private Vector3 originalRot; 13 | 14 | public override void Update(float time, float previousTime) 15 | { 16 | var target = originalRot + clip.targetRotation; 17 | ModelSampler.EditModel.transform.localEulerAngles = 18 | Easing.Ease(clip.interpolation, originalRot, target, time / clip.Length); 19 | } 20 | 21 | public override void Enter() 22 | { 23 | if (ModelSampler.EditModel != null) 24 | { 25 | originalRot = ModelSampler.EditModel.transform.localEulerAngles; 26 | } 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Clips/RotateToPreview.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: efb1c257e1a94671bb4a687e8e970f9e 3 | timeCreated: 1684583083 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Clips/VisibleToPreview.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | 3 | namespace ActionEditorExample 4 | { 5 | /// 6 | /// VisibleTo预览 7 | /// 8 | [CustomPreview(typeof(VisibleTo))] 9 | public class VisibleToPreview : PreviewBase 10 | { 11 | public override void Update(float time, float previousTime) 12 | { 13 | if (ModelSampler.EditModel != null) 14 | { 15 | ModelSampler.EditModel.SetActive(clip.visible); 16 | } 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Clips/VisibleToPreview.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a2f40aaa96ec407cb024cfafba9961b6 3 | timeCreated: 1684581398 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Sampler.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4c3f51279bbf49bb851534a030fdc9c5 3 | timeCreated: 1684577702 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Sampler/AnimationSampler.cs: -------------------------------------------------------------------------------- 1 | namespace ActionEditorExample 2 | { 3 | /// 4 | /// 动画采样器 5 | /// 6 | public static class AnimationSampler 7 | { 8 | 9 | } 10 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Sampler/AnimationSampler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b8a28a47abb243e6837735c9258524e6 3 | timeCreated: 1684577852 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Sampler/AudioSampler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f4ac62c9ddd14c749884cb97643caab7 3 | timeCreated: 1684577710 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Sampler/ModelSampler.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace ActionEditorExample 4 | { 5 | public static class ModelSampler 6 | { 7 | /// 8 | /// 演示代码,默认00点。实际业务请接入自己业务的逻辑 9 | /// 10 | public static Vector3 DefPosition => Vector3.zero; 11 | 12 | private static GameObject _editModel; 13 | 14 | public static GameObject EditModel 15 | { 16 | get 17 | { 18 | //test code 19 | //测试代码,请根据自己业务编写相关逻辑 20 | if (_editModel == null) 21 | { 22 | _editModel = GameObject.Find("Player"); 23 | } 24 | 25 | return _editModel; 26 | } 27 | } 28 | 29 | 30 | private static GameObject targetModel; 31 | 32 | public static GameObject TargetModel 33 | { 34 | get 35 | { 36 | //test code 37 | //测试代码,请根据自己业务编写相关逻辑 38 | if (targetModel == null) 39 | { 40 | targetModel = GameObject.Find("Target"); 41 | } 42 | 43 | return targetModel; 44 | } 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Sampler/ModelSampler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 84c6b5887604417fbbdeb0e35a1446ee 3 | timeCreated: 1684581422 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Sampler/ParticleSampler.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEditor; 3 | using UnityEngine; 4 | 5 | namespace ActionEditorExample 6 | { 7 | public class ParticlePool 8 | { 9 | 10 | } 11 | 12 | 13 | /// 14 | /// 粒子特效采样器 15 | /// 16 | [InitializeOnLoad] 17 | public class ParticleSampler 18 | { 19 | public static void Init() 20 | { 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Sampler/ParticleSampler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 248f8cbb3a7d455ebf6da2da8475cb4d 3 | timeCreated: 1684577902 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Sampler/SpineSampler.cs: -------------------------------------------------------------------------------- 1 | namespace ActionEditorExample 2 | { 3 | /// 4 | /// spine 采样器 5 | /// 6 | public static class SpineSampler 7 | { 8 | } 9 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Editor/Preview/Sampler/SpineSampler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f76116067c234d809f838c922db45163 3 | timeCreated: 1684577879 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 29e45032d2504acea782c7a9d44c788a 3 | timeCreated: 1684029745 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/BuffAsset.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using ActionEditor; 3 | 4 | namespace ActionEditor 5 | { 6 | [Name("技能Buff")] 7 | [Serializable] 8 | public class BuffAsset : Asset 9 | { 10 | [Name("测试")] 11 | public string test; 12 | } 13 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/BuffAsset.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f69b35b0d5df43508ff85470a08436d8 3 | timeCreated: 1682259779 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0a0a37e1144b76f46a4cc41877e17b65 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6354325f93c47db4ab6bb0da3ac108fc 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Animation.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6bc8ee9e45784ea1a03132e73fb4c362 3 | timeCreated: 1684552011 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Animation/PlayAnimation.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | using UnityEditor; 3 | using UnityEngine; 4 | 5 | namespace ActionEditor 6 | { 7 | [Name("动画片段")] 8 | [Color(0.48f, 0.71f, 0.84f)] 9 | [Attachable(typeof(AnimationTrack))] 10 | public class PlayAnimation : Clip, ILengthMatchAble,IBlendAble,IResizeAble 11 | { 12 | [SerializeField][HideInInspector] private float blendIn = 0.25f; 13 | [SerializeField][HideInInspector] private float blendOut = 0.25f; 14 | 15 | [Name("播放音频")] 16 | [ObjectPath(typeof(AnimationClip))] 17 | public string resPath = ""; 18 | 19 | private AnimationClip _animationClip; 20 | 21 | public AnimationClip animationClip 22 | { 23 | get 24 | { 25 | if (string.IsNullOrEmpty(resPath)) 26 | { 27 | _animationClip = null; 28 | return null; 29 | } 30 | 31 | if (_animationClip == null) 32 | { 33 | #if UNITY_EDITOR 34 | _animationClip = AssetDatabase.LoadAssetAtPath(resPath); 35 | #endif 36 | } 37 | 38 | return _animationClip; 39 | } 40 | } 41 | 42 | [Range(0.1f, 10f)][Name("播放速度")] public float playbackSpeed = 1; 43 | [Name("偏移量")] public float clipOffset; 44 | 45 | 46 | public override float Length 47 | { 48 | get => length; 49 | set => length = value; 50 | } 51 | 52 | public float BlendIn 53 | { 54 | get => blendIn; 55 | set => blendIn = value; 56 | } 57 | 58 | public float BlendOut 59 | { 60 | get => blendOut; 61 | set { blendOut = value; } 62 | 63 | } 64 | public bool CanCrossBlend => true; 65 | 66 | 67 | 68 | float ILengthMatchAble.MatchAbleLength => animationClip != null ? animationClip.length : 0; 69 | 70 | 71 | public override bool IsValid => animationClip != null; 72 | 73 | //public override string Info => IsValid ? animationClip.name : base.Info; 74 | 75 | public AudioTrack Track => (AudioTrack)Parent; 76 | } 77 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Animation/PlayAnimation.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 55f287254a274055ab76bb9e49c2930d 3 | timeCreated: 1684552018 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Audio.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a272c0626ce84f7a9d925bd8d02c2753 3 | timeCreated: 1683875430 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Audio/PlayAudio.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | #if UNITY_EDITOR 3 | using UnityEditor; 4 | #endif 5 | using UnityEngine; 6 | 7 | namespace ActionEditor 8 | { 9 | [Name("声音片段")] 10 | [Color(1f, 0.63f, 0f)] 11 | [Attachable(typeof(AudioTrack))] 12 | public class PlayAudio : Clip, ILengthMatchAble, IBlendAble 13 | { 14 | [SerializeField][HideInInspector] private float blendIn = 0.25f; 15 | [SerializeField][HideInInspector] private float blendOut = 0.25f; 16 | 17 | [Name("播放音频")] 18 | [ObjectPath(typeof(AudioClip))] 19 | public string resPath = ""; 20 | 21 | private AudioClip _audioClip; 22 | 23 | public AudioClip audioClip 24 | { 25 | get 26 | { 27 | if (string.IsNullOrEmpty(resPath)) 28 | { 29 | _audioClip = null; 30 | return null; 31 | } 32 | 33 | if (_audioClip == null) 34 | { 35 | #if UNITY_EDITOR 36 | _audioClip = AssetDatabase.LoadAssetAtPath(resPath); 37 | #endif 38 | } 39 | 40 | return _audioClip; 41 | } 42 | } 43 | 44 | [Range(0f, 1f)][Name("音量")] public float volume = 1; 45 | [Name("偏移量")] public float clipOffset; 46 | 47 | 48 | public override float Length 49 | { 50 | get => length; 51 | set => length = value; 52 | } 53 | 54 | public float BlendIn 55 | { 56 | get => blendIn; 57 | set => blendIn = value; 58 | } 59 | 60 | public float BlendOut 61 | { 62 | get => blendOut; 63 | set => blendOut = value; 64 | } 65 | 66 | 67 | 68 | 69 | float ILengthMatchAble.MatchAbleLength => audioClip != null ? audioClip.length : 0; 70 | 71 | 72 | public override bool IsValid => audioClip != null; 73 | 74 | //public override string Info => IsValid ? audioClip.name : base.Info; 75 | 76 | public AudioTrack Track => (AudioTrack)Parent; 77 | 78 | public bool CanCrossBlend => true; 79 | 80 | // #if UNITY_EDITOR 81 | // protected override void OnClipGUI(Rect rect) 82 | // { 83 | // DrawTools.DrawLoopedAudioTexture(rect, audioClip, Length, clipOffset); 84 | // } 85 | // #endif 86 | } 87 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Audio/PlayAudio.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 24727a20b72b0aa4884c2a267723e5df 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Effect.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f28e3a76fe094cdfa13abaa7b80deadd 3 | timeCreated: 1683876582 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Effect/PlayParticle.cs: -------------------------------------------------------------------------------- 1 | #if UNITY_EDITOR 2 | using UnityEditor; 3 | #endif 4 | using UnityEngine; 5 | 6 | namespace ActionEditor 7 | { 8 | [Name("普通粒子片段")] 9 | [Color(0.0f, 1f, 1f)] 10 | [Attachable(typeof(EffectTrack))] 11 | public class PlayParticle : Clip 12 | { 13 | [Space(20)] 14 | [HeaderAttribute("hhhh")] 15 | [NotNull] 16 | [Name("特效对象")] 17 | [ObjectPath(typeof(GameObject))] 18 | public string resPath = ""; 19 | 20 | [Name("是否变形")] public bool scale; 21 | 22 | [TextArea(1,4)] 23 | public string test; 24 | 25 | private GameObject _effectObject; 26 | 27 | private GameObject audioClip 28 | { 29 | get 30 | { 31 | if (_effectObject == null) 32 | { 33 | #if UNITY_EDITOR 34 | _effectObject = AssetDatabase.LoadAssetAtPath(resPath); 35 | #endif 36 | } 37 | 38 | return _effectObject; 39 | } 40 | } 41 | 42 | 43 | public override float Length 44 | { 45 | get => length; 46 | set => length = value; 47 | } 48 | 49 | public override bool IsValid => audioClip != null; 50 | 51 | 52 | } 53 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Effect/PlayParticle.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a8bf4d6ab9cd406894fd8930012dadc6 3 | timeCreated: 1683876592 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Event.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cddbe27980f741e2a683be187f1e3d87 3 | timeCreated: 1683873827 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Event/TriggerEvent.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | 3 | namespace ActionEditor 4 | { 5 | [Name("触发事件")] 6 | [Color(1, 0, 0)] 7 | [Attachable(typeof(SignalTrack))] 8 | public class TriggerEvent : ClipSignal 9 | { 10 | [Name("事件名称")] 11 | public int eventName; 12 | 13 | [Name("结算方式")] 14 | public int calculateType = 0; 15 | 16 | [Name("拆开份数")] 17 | public int calculateArgs = 0; 18 | 19 | [Name("必杀概率")] 20 | public int kill; 21 | 22 | //public override string Info => "事件\n" + AttributesUtility.GetName(eventName, typeof(EventNames)); 23 | public override bool IsValid => eventName > 0; 24 | } 25 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Event/TriggerEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 154d3633e4d442e59b4cc7751d8f6c64 3 | timeCreated: 1683873845 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Event/TriggerLog.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | 3 | namespace ActionEditor 4 | { 5 | [Name("打印日志")] 6 | [Color(1, 0, 0)] 7 | [Attachable(typeof(SignalTrack))] 8 | public class TriggerLog : ClipSignal 9 | { 10 | [Color("#F0F")][Name("打印内容")] public string log; 11 | 12 | 13 | 14 | [ReadOnly] public string test; 15 | //public override string Info => "打印\n" + log; 16 | public override bool IsValid => !string.IsNullOrEmpty(log); 17 | } 18 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Event/TriggerLog.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a64349cad6264d0b9c283e9780792fb3 3 | timeCreated: 1684551627 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Event/TriggerShake.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | 3 | namespace ActionEditor 4 | { 5 | [Name("触发震动")] 6 | [Color(1, 0, 0)] 7 | [Attachable(typeof(SignalTrack))] 8 | public class TriggerShake : ClipSignal 9 | { 10 | [Name("类型")] 11 | public int shakeType; 12 | 13 | [Name("屏幕抖动时长")] 14 | public float duration = 0.5f; 15 | 16 | [Name("屏幕抖动幅度")] 17 | public int range = 5; 18 | 19 | [Name("设备震动时长")] 20 | public float vibrationDuration = 0.5f; 21 | 22 | [Name("设备震动强度")] 23 | public int vibrationForce = EventShakeForceType.Default; 24 | 25 | //public override string Info 26 | //{ 27 | // get 28 | // { 29 | // var name = AttributesUtility.GetName(shakeType, typeof(EventShakeType)); 30 | // if (shakeType == EventShakeType.Screen || shakeType == EventShakeType.ScreenAndPhone) 31 | // { 32 | // return "震动\n" + name + duration + "s " + range+"px"; 33 | // } 34 | 35 | // return "震动\n" + name; 36 | // } 37 | //} 38 | 39 | public override bool IsValid => shakeType > 0; 40 | } 41 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Event/TriggerShake.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9b2c28d156e9454aa0b523e22e03263c 3 | timeCreated: 1683874715 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/GameObject.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4589380b90834bae8795488d119d2ddd 3 | timeCreated: 1683873729 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/GameObject/VisibleTo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using ActionEditor; 3 | using UnityEngine; 4 | 5 | namespace ActionEditor 6 | { 7 | [Name("显示隐藏")] 8 | [Color(1, 90f / 255f, 90f / 255f)] 9 | [Attachable(typeof(ActionTrack))] 10 | public class VisibleTo : Clip 11 | { 12 | [Name("显示")] public bool visible = true; 13 | 14 | public override float Length 15 | { 16 | get => length; 17 | set => length = value; 18 | } 19 | 20 | //public override string Info => $"{(visible ? "显示" : "隐藏")}"; 21 | 22 | public override bool IsValid => true; 23 | 24 | private ActionTrack Track => (ActionTrack)Parent; 25 | } 26 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/GameObject/VisibleTo.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 20df64a2d8844fd18c018690de9a9ce4 3 | timeCreated: 1682303205 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Transform.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c03f8f6a64334b819796dc7da475adad 3 | timeCreated: 1683873542 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Transform/MoveBy.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using ActionEditor; 3 | using UnityEngine; 4 | 5 | namespace ActionEditor 6 | { 7 | [Name("移动")] 8 | [Color(70f / 255f, 1, 140f / 255f)] 9 | [Attachable(typeof(ActionTrack))] 10 | public class MoveBy : Clip 11 | { 12 | 13 | [Name("运动曲线")] public AnimationCurve curve; 14 | 15 | [Name("运动补间")] public EaseType interpolation = EaseType.QuadInOut; 16 | 17 | [Name("移动量")] public Vector3 move; 18 | 19 | //public override string Info => $"位移:\n{move}"; 20 | 21 | public override float Length 22 | { 23 | get => length; 24 | set => length = value; 25 | } 26 | 27 | 28 | public override bool IsValid => true; 29 | 30 | private ActionTrack Track => (ActionTrack)Parent; 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Transform/MoveBy.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ae04abf770f449088c52fb314b5db844 3 | timeCreated: 1683873751 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Transform/MoveTo.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | using UnityEngine; 3 | 4 | namespace ActionEditor 5 | { 6 | [Name("移动至")] 7 | [Color(70f / 255f, 1, 140f / 255f)] 8 | [Attachable(typeof(ActionTrack))] 9 | public class MoveTo : Clip 10 | { 11 | [Name("运动补间")] public EaseType interpolation = EaseType.QuadInOut; 12 | 13 | [Name("位移终点")] 14 | public int moveType; 15 | 16 | 17 | //public override string Info => $"移动至:\n{AttributesUtility.GetName(moveType, typeof(MoveToType))}"; 18 | 19 | public override float Length 20 | { 21 | get => length; 22 | set => length = value; 23 | } 24 | 25 | 26 | public override bool IsValid => true; 27 | 28 | private ActionTrack Track => (ActionTrack)Parent; 29 | } 30 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Transform/MoveTo.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8302a8becde649e7889e8070e220abf0 3 | timeCreated: 1684551754 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Transform/RotateTo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using ActionEditor; 4 | using UnityEngine; 5 | 6 | namespace ActionEditor 7 | { 8 | [Name("旋转角度")] 9 | [Color(70f / 255f, 1, 140f / 255f)] 10 | [Attachable(typeof(ActionTrack))] 11 | public class RotateTo : Clip, IResizeAble 12 | { 13 | 14 | [Name("运动曲线")] public EaseType interpolation = EaseType.QuadInOut; 15 | [Name("旋转角度")] public Vector3 targetRotation = Vector3.zero; 16 | public List test; 17 | public Vector2[] test2; 18 | 19 | public int hh; 20 | public override float Length 21 | { 22 | get => length; 23 | set => length = value; 24 | } 25 | 26 | //public override string Info => $"旋转:\n{targetRotation}"; 27 | 28 | public override bool IsValid => true; 29 | 30 | private ActionTrack Track => (ActionTrack)Parent; 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Transform/RotateTo.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d021182972d24cb5a79025998b329ab4 3 | timeCreated: 1683873551 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Transform/ScaleTo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using ActionEditor; 3 | using UnityEngine; 4 | 5 | namespace ActionEditor 6 | { 7 | [Name("缩放")] 8 | [Color(70f / 255f, 1, 140f / 255f)] 9 | [Attachable(typeof(ActionTrack))] 10 | public class ScaleTo: Clip 11 | { 12 | 13 | [Name("缩放曲线")] public EaseType interpolation = EaseType.QuadInOut; 14 | [Name("缩放目标")] public Vector2 targetScale = Vector2.one; 15 | 16 | public override float Length 17 | { 18 | get => length; 19 | set => length = value; 20 | } 21 | 22 | //public override string Info => $"缩放:\n{targetScale}"; 23 | 24 | public override bool IsValid => true; 25 | 26 | private ActionTrack Track => (ActionTrack)Parent; 27 | } 28 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Clips/Transform/ScaleTo.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0e35962605be4f3c933533900bba5cde 3 | timeCreated: 1682479620 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/OptionParams.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | 3 | namespace ActionEditor 4 | { 5 | public partial class EventNames 6 | { 7 | public const int None = 0; 8 | [Name("测试事件")] public const int Test = 1; 9 | [Name("触发击中")] public const int Hit = 2; 10 | [Name("必杀检测")] public const int Kill = 3; 11 | } 12 | 13 | public partial class EventHitTypes 14 | { 15 | [Name("正常结算")] public const int Def = 0; 16 | [Name("拆分结算")] public const int Gap = 1; 17 | [Name("不结算")] public const int Fake = 2; 18 | } 19 | 20 | public partial class EventShakeType 21 | { 22 | public const int None = 0; 23 | [Name("屏幕")] public const int Screen = 1; 24 | [Name("手机")] public const int Phone = 2; 25 | [Name("手机和屏幕")] public const int ScreenAndPhone = 3; 26 | } 27 | 28 | public partial class EventShakeForceType 29 | { 30 | /// 31 | /// 选中 32 | /// 33 | [Name("Selection")] public const int Selection = 0; 34 | 35 | /// 36 | /// 常规震动 37 | /// 38 | [Name("Vibrate")] public const int Vibrate = 7; 39 | 40 | /// 41 | /// Unity自带 42 | /// 43 | [Name("Default")] public const int Default = 8; 44 | } 45 | 46 | public class TrackLayer 47 | { 48 | [Name("底层")] public const int Bottom = 0; 49 | [Name("角色层")] public const int Mid = 1; 50 | [Name("最顶层")] public const int TopHighest = 2; 51 | [Name("随便什么层")] public const int Custom_NoSet = 3; 52 | } 53 | 54 | 55 | public partial class MoveToType 56 | { 57 | [Name("None")] public const int None = 0; 58 | [Name("目标面前")] public const int Target = 1; 59 | [Name("初始站位")] public const int OriginalPosition = 2; 60 | } 61 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/OptionParams.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2ecb473d1c014a118e6bf79cdce640ca 3 | timeCreated: 1683873953 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Tracks.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 062238374b1dba44386e442c39f9f3eb 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Tracks/ActionTrack.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using ActionEditor; 3 | using UnityEngine; 4 | 5 | namespace ActionEditor 6 | { 7 | [Name("行为轨道")] 8 | [TrackIcon(typeof(Transform))] 9 | [Color(70f / 255f, 1, 140f / 255f)] 10 | public class ActionTrack : Track 11 | { 12 | [Name("测试1")] public int Test1; 13 | 14 | [Name("测试2")] public float Test2; 15 | 16 | [Name("测试3")] public string Test3; 17 | } 18 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Tracks/ActionTrack.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3e7ca5c0434e14e47835f32b395233b5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Tracks/AnimationTrack.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | using UnityEngine; 3 | 4 | namespace ActionEditor 5 | { 6 | [Name("动画轨道")] 7 | [TrackIcon(typeof(AnimationClip))] 8 | [Color(0.48f, 0.71f, 0.84f)] 9 | public class AnimationTrack : Track 10 | { 11 | 12 | } 13 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Tracks/AnimationTrack.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2a9db414099843999551c8e3036e3029 3 | timeCreated: 1684552098 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Tracks/AudioTrack.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | using UnityEngine; 3 | 4 | namespace ActionEditor 5 | { 6 | [Name("音频轨道")] 7 | [TrackIcon(typeof(AudioClip))] 8 | [Color(1f, 0.63f, 0f)] 9 | public class AudioTrack : Track 10 | { 11 | 12 | } 13 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Tracks/AudioTrack.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 68e492df250d44fa823e969d5bb3ba4b 3 | timeCreated: 1683254108 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Tracks/EffectTrack.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | using UnityEngine; 3 | 4 | namespace ActionEditor 5 | { 6 | [Name("特效轨道")] 7 | [TrackIcon(typeof(ParticleSystem))] 8 | [Color(0f, 1f, 1f)] 9 | public class EffectTrack : Track 10 | { 11 | [Name("轨道层")] 12 | public int Layer; 13 | } 14 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Tracks/EffectTrack.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 659090e873e746ca9f1c6cb94357fd58 3 | timeCreated: 1683875575 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Tracks/SignalTrack.cs: -------------------------------------------------------------------------------- 1 | using ActionEditor; 2 | using UnityEngine.EventSystems; 3 | 4 | namespace ActionEditor 5 | { 6 | [Name("信号轨道")] 7 | [Attachable(typeof(Group))] 8 | [TrackIcon(typeof(EventSystem))] 9 | public class SignalTrack : Track 10 | { 11 | 12 | } 13 | } -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/Directables/Tracks/SignalTrack.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3fecc192183f461ca51109a8fd37fe76 3 | timeCreated: 1683873871 -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/SkillAsset.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using ActionEditor; 3 | 4 | namespace ActionEditor 5 | { 6 | [Name("角色技能")] 7 | [Serializable] 8 | public class SkillAsset : Asset 9 | { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Assets/Scripts/ActionEditorExample/Runtime/SkillAsset.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 40827cb21221493448cc239bd8b5864d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/das.action.bytes: -------------------------------------------------------------------------------- 1 | ActionEditor.BuffAsset 2 | {"Temps":[],"length":0.10000000149011612,"viewTimeMin":0.0,"viewTimeMax":5.0,"test":""} -------------------------------------------------------------------------------- /Assets/das.action.bytes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d0a60118fe9e83d44bd6da7c85c948d6 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/dsad.action.bytes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8899679dc3d84ab41b6c3f744ba111df 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/opk.action.bytes: -------------------------------------------------------------------------------- 1 | ActionEditor.BuffAsset 2 | {"Temps":[],"length":0.10000000149011612,"viewTimeMin":0.0,"viewTimeMax":5.0,"test":""} -------------------------------------------------------------------------------- /Assets/opk.action.bytes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: de51256dd1969804e91a363d8e626dca 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 O_O 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.ide.visualstudio": "2.0.22", 4 | "com.unity.ide.vscode": "1.2.5", 5 | "com.unity.ugui": "1.0.0", 6 | "com.unity.modules.ai": "1.0.0", 7 | "com.unity.modules.androidjni": "1.0.0", 8 | "com.unity.modules.animation": "1.0.0", 9 | "com.unity.modules.assetbundle": "1.0.0", 10 | "com.unity.modules.audio": "1.0.0", 11 | "com.unity.modules.cloth": "1.0.0", 12 | "com.unity.modules.director": "1.0.0", 13 | "com.unity.modules.imageconversion": "1.0.0", 14 | "com.unity.modules.imgui": "1.0.0", 15 | "com.unity.modules.jsonserialize": "1.0.0", 16 | "com.unity.modules.particlesystem": "1.0.0", 17 | "com.unity.modules.physics": "1.0.0", 18 | "com.unity.modules.physics2d": "1.0.0", 19 | "com.unity.modules.screencapture": "1.0.0", 20 | "com.unity.modules.terrain": "1.0.0", 21 | "com.unity.modules.terrainphysics": "1.0.0", 22 | "com.unity.modules.tilemap": "1.0.0", 23 | "com.unity.modules.ui": "1.0.0", 24 | "com.unity.modules.uielements": "1.0.0", 25 | "com.unity.modules.umbra": "1.0.0", 26 | "com.unity.modules.unityanalytics": "1.0.0", 27 | "com.unity.modules.unitywebrequest": "1.0.0", 28 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 29 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 30 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 31 | "com.unity.modules.unitywebrequestwww": "1.0.0", 32 | "com.unity.modules.vehicles": "1.0.0", 33 | "com.unity.modules.video": "1.0.0", 34 | "com.unity.modules.vr": "1.0.0", 35 | "com.unity.modules.wind": "1.0.0", 36 | "com.unity.modules.xr": "1.0.0" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Volume: 1 8 | Rolloff Scale: 1 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_SampleRate: 0 12 | m_DSPBufferSize: 1024 13 | m_VirtualVoiceCount: 512 14 | m_RealVoiceCount: 32 15 | m_SpatializerPlugin: 16 | m_AmbisonicDecoderPlugin: 17 | m_DisableAudio: 0 18 | m_VirtualizeEffects: 1 19 | m_RequestedDSPBufferSize: 0 20 | -------------------------------------------------------------------------------- /ProjectSettings/AutoStreamingSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1200 &1 4 | AutoStreamingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | mSearchMode: 15 8 | mCustomSearchFile: 9 | mTextureSearchString: 10 | mMeshSearchString: 11 | mTextures: [] 12 | mAudios: [] 13 | mMeshes: [] 14 | mScenes: [] 15 | mConfigCCD: 16 | useCCD: 0 17 | cosKey: 18 | projectGuid: 19 | bucketUuid: 20 | bucketName: 21 | badgeName: 22 | -------------------------------------------------------------------------------- /ProjectSettings/BurstAotSettings_StandaloneWindows.json: -------------------------------------------------------------------------------- 1 | { 2 | "MonoBehaviour": { 3 | "Version": 4, 4 | "EnableBurstCompilation": true, 5 | "EnableOptimisations": true, 6 | "EnableSafetyChecks": false, 7 | "EnableDebugInAllBuilds": false, 8 | "UsePlatformSDKLinker": false, 9 | "CpuMinTargetX32": 0, 10 | "CpuMaxTargetX32": 0, 11 | "CpuMinTargetX64": 0, 12 | "CpuMaxTargetX64": 0, 13 | "CpuTargetsX32": 6, 14 | "CpuTargetsX64": 72, 15 | "OptimizeFor": 0 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/CommonBurstAotSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "MonoBehaviour": { 3 | "Version": 4, 4 | "DisabledWarnings": "" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 13 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0.1 18 | m_ClothInterCollisionStiffness: 0.2 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 0 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ClothGravity: {x: 0, y: -9.81, z: 0} 26 | m_ContactPairsMode: 0 27 | m_BroadphaseType: 0 28 | m_WorldBounds: 29 | m_Center: {x: 0, y: 0, z: 0} 30 | m_Extent: {x: 250, y: 250, z: 250} 31 | m_WorldSubdivisions: 8 32 | m_FrictionType: 0 33 | m_EnableEnhancedDeterminism: 0 34 | m_EnableUnifiedHeightmaps: 1 35 | m_SolverType: 0 36 | m_DefaultMaxAngularSpeed: 50 37 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/Scenes/SampleScene.unity 10 | guid: 99c9720ab356a0642a771bea13969a05 11 | m_configObjects: {} 12 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 11 7 | m_SerializationMode: 2 8 | m_LineEndingsForNewScripts: 0 9 | m_DefaultBehaviorMode: 0 10 | m_PrefabRegularEnvironment: {fileID: 0} 11 | m_PrefabUIEnvironment: {fileID: 0} 12 | m_SpritePackerMode: 0 13 | m_SpritePackerPaddingPower: 1 14 | m_Bc7TextureCompressor: 0 15 | m_EtcTextureCompressorBehavior: 1 16 | m_EtcTextureFastCompressor: 1 17 | m_EtcTextureNormalCompressor: 2 18 | m_EtcTextureBestCompressor: 4 19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp 20 | m_ProjectGenerationRootNamespace: 21 | m_EnableTextureStreamingInEditMode: 1 22 | m_EnableTextureStreamingInPlayMode: 1 23 | m_AsyncShaderCompilation: 1 24 | m_CachingShaderPreprocessor: 1 25 | m_PrefabModeAllowAutoSave: 1 26 | m_EnterPlayModeOptionsEnabled: 0 27 | m_EnterPlayModeOptions: 3 28 | m_GameObjectNamingDigits: 1 29 | m_GameObjectNamingScheme: 0 30 | m_AssetNamingUsesSpace: 1 31 | m_UseLegacyProbeSampleCount: 0 32 | m_SerializeInlineMappingsOnOneLine: 0 33 | m_DisableCookiesInLightmapper: 1 34 | m_AssetPipelineMode: 1 35 | m_RefreshImportMode: 0 36 | m_CacheServerMode: 0 37 | m_CacheServerEndpoint: 38 | m_CacheServerNamespacePrefix: default 39 | m_CacheServerEnableDownload: 1 40 | m_CacheServerEnableUpload: 1 41 | m_CacheServerEnableAuth: 0 42 | m_CacheServerEnableTls: 0 43 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 14 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_VideoShadersIncludeMode: 2 32 | m_AlwaysIncludedShaders: 33 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 39 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} 40 | m_PreloadedShaders: [] 41 | m_PreloadShadersBatchTimeLimit: -1 42 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 43 | type: 0} 44 | m_CustomRenderPipeline: {fileID: 11400000, guid: 7b7fd9122c28c4d15b667c7040e3b3fd, 45 | type: 2} 46 | m_TransparencySortMode: 0 47 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 48 | m_DefaultRenderingPath: 1 49 | m_DefaultMobileRenderingPath: 1 50 | m_TierSettings: [] 51 | m_LightmapStripping: 0 52 | m_FogStripping: 0 53 | m_InstancingStripping: 0 54 | m_LightmapKeepPlain: 1 55 | m_LightmapKeepDirCombined: 1 56 | m_LightmapKeepDynamicPlain: 1 57 | m_LightmapKeepDynamicDirCombined: 1 58 | m_LightmapKeepShadowMask: 1 59 | m_LightmapKeepSubtractive: 1 60 | m_FogKeepLinear: 1 61 | m_FogKeepExp: 1 62 | m_FogKeepExp2: 1 63 | m_AlbedoSwatchInfos: [] 64 | m_LightsUseLinearIntensity: 1 65 | m_LightsUseColorTemperature: 1 66 | m_DefaultRenderingLayerMask: 1 67 | m_LogWhenShaderIsCompiled: 0 68 | m_SRPDefaultSettings: 69 | UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 18dc0cd2c080841dea60987a38ce93fa, 70 | type: 2} 71 | -------------------------------------------------------------------------------- /ProjectSettings/MemorySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!387306366 &1 4 | MemorySettings: 5 | m_ObjectHideFlags: 0 6 | m_EditorMemorySettings: 7 | m_MainAllocatorBlockSize: -1 8 | m_ThreadAllocatorBlockSize: -1 9 | m_MainGfxBlockSize: -1 10 | m_ThreadGfxBlockSize: -1 11 | m_CacheBlockSize: -1 12 | m_TypetreeBlockSize: -1 13 | m_ProfilerBlockSize: -1 14 | m_ProfilerEditorBlockSize: -1 15 | m_BucketAllocatorGranularity: -1 16 | m_BucketAllocatorBucketsCount: -1 17 | m_BucketAllocatorBlockSize: -1 18 | m_BucketAllocatorBlockCount: -1 19 | m_ProfilerBucketAllocatorGranularity: -1 20 | m_ProfilerBucketAllocatorBucketsCount: -1 21 | m_ProfilerBucketAllocatorBlockSize: -1 22 | m_ProfilerBucketAllocatorBlockCount: -1 23 | m_TempAllocatorSizeMain: -1 24 | m_JobTempAllocatorBlockSize: -1 25 | m_BackgroundJobTempAllocatorBlockSize: -1 26 | m_JobTempAllocatorReducedBlockSize: -1 27 | m_TempAllocatorSizeGIBakingWorker: -1 28 | m_TempAllocatorSizeNavMeshWorker: -1 29 | m_TempAllocatorSizeAudioWorker: -1 30 | m_TempAllocatorSizeCloudWorker: -1 31 | m_TempAllocatorSizeGfx: -1 32 | m_TempAllocatorSizeJobWorker: -1 33 | m_TempAllocatorSizeBackgroundWorker: -1 34 | m_TempAllocatorSizePreloadManager: -1 35 | m_PlatformMemorySettings: {} 36 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_EnablePreReleasePackages: 0 16 | m_EnablePackageDependencies: 0 17 | m_AdvancedSettingsExpanded: 1 18 | m_ScopedRegistriesSettingsExpanded: 1 19 | m_SeeAllPackageVersions: 0 20 | oneTimeWarningShown: 0 21 | m_Registries: 22 | - m_Id: main 23 | m_Name: 24 | m_Url: https://packages.unity.cn 25 | m_Scopes: [] 26 | m_IsDefault: 1 27 | m_Capabilities: 7 28 | m_ConfigSource: 0 29 | m_UserSelectedRegistryName: 30 | m_UserAddingNewScopedRegistry: 0 31 | m_RegistryInfoDraft: 32 | m_Modified: 0 33 | m_ErrorMessage: 34 | m_UserModificationsInstanceId: -848 35 | m_OriginalInstanceId: -850 36 | m_LoadAssets: 0 37 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_JobOptions: 23 | serializedVersion: 2 24 | useMultithreading: 0 25 | useConsistencySorting: 0 26 | m_InterpolationPosesPerJob: 100 27 | m_NewContactsPerJob: 30 28 | m_CollideContactsPerJob: 100 29 | m_ClearFlagsPerJob: 200 30 | m_ClearBodyForcesPerJob: 200 31 | m_SyncDiscreteFixturesPerJob: 50 32 | m_SyncContinuousFixturesPerJob: 50 33 | m_FindNearestContactsPerJob: 100 34 | m_UpdateTriggerContactsPerJob: 100 35 | m_IslandSolverCostThreshold: 100 36 | m_IslandSolverBodyCostScale: 1 37 | m_IslandSolverContactCostScale: 10 38 | m_IslandSolverJointCostScale: 10 39 | m_IslandSolverBodiesPerJob: 50 40 | m_IslandSolverContactsPerJob: 50 41 | m_AutoSimulation: 1 42 | m_QueriesHitTriggers: 1 43 | m_QueriesStartInColliders: 1 44 | m_CallbacksOnDisable: 1 45 | m_ReuseCollisionCallbacks: 0 46 | m_AutoSyncTransforms: 0 47 | m_AlwaysShowColliders: 0 48 | m_ShowColliderSleep: 1 49 | m_ShowColliderContacts: 0 50 | m_ShowColliderAABB: 0 51 | m_ContactArrowScale: 0.2 52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 57 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_DefaultPresets: {} 8 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2021.3.33f1c1 2 | m_EditorVersionWithRevision: 2021.3.33f1c1 (682b9db7927c) 3 | -------------------------------------------------------------------------------- /ProjectSettings/ShaderGraphSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: de02f9e1d18f588468e474319d09a723, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | customInterpolatorErrorThreshold: 32 16 | customInterpolatorWarningThreshold: 16 17 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/URPProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_LastMaterialVersion: 5 16 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_DashboardUrl: https://dashboard.unity3d.com 13 | m_TestInitMode: 0 14 | CrashReportingSettings: 15 | m_EventUrl: https://perf-events.cloud.unity3d.com 16 | m_Enabled: 0 17 | m_LogBufferSize: 10 18 | m_CaptureEditorExceptions: 1 19 | UnityPurchasingSettings: 20 | m_Enabled: 0 21 | m_TestMode: 0 22 | UnityAnalyticsSettings: 23 | m_Enabled: 0 24 | m_TestMode: 0 25 | m_InitializeOnStartup: 1 26 | UnityAdsSettings: 27 | m_Enabled: 0 28 | m_InitializeOnStartup: 1 29 | m_TestMode: 0 30 | m_IosGameId: 31 | m_AndroidGameId: 32 | m_GameIds: {} 33 | m_GameId: 34 | PerformanceReportingSettings: 35 | m_Enabled: 0 36 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_StripUpdateShader: {fileID: 0} 10 | m_RenderPipeSettingsPath: 11 | m_FixedTimeStep: 0.016666668 12 | m_MaxDeltaTime: 0.05 13 | -------------------------------------------------------------------------------- /ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Visible Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /ProjectSettings/WhootActionSequencer.txt: -------------------------------------------------------------------------------- 1 | {"TimeStepMode":0,"SnapInterval":0.009999999776482582,"FrameRate":10,"AutoSaveSeconds":14,"MagnetSnapping":true,"TrackListLeftMargin":256.0} -------------------------------------------------------------------------------- /ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /ProjectSettings/boot.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OnClick9927/ActionEditor/436cfd7c81b55d17a486bf96c3c54c1ac6a6483e/ProjectSettings/boot.config -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # upm 地址 https://github.com/OnClick9927/ActionEditor.git#upm 2 | * ActionEditor 3 | * 类Timeline 编辑器,只有Editor,RT 自己扩展 4 | # [魔改源](https://github.com/NoBugCn/ActionEditor) 5 | ![界面](https://github.com/user-attachments/assets/8bc366a7-12f4-4f8b-8d31-994e79d9f9d8) 6 | 7 | -------------------------------------------------------------------------------- /upm.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | set b="version" 3 | set version ="1" 4 | REM 获取版本号 5 | for /f "tokens=1,2* delims=:," %%a in (Assets/ActionEditor/package.json) do ( 6 | echo %%a| findstr %b% >nul && ( 7 | set version= %%b 8 | ) || ( 9 | @REM echo %%a nnn %b% 10 | ) 11 | ) 12 | 13 | 14 | set version=%version: =% 15 | echo on 16 | git subtree split --prefix=Assets/ActionEditor --branch upm 17 | git push origin upm:upm 18 | git tag %version% upm 19 | git push origin upm --tags 20 | set cur=%~dp0 21 | 22 | 23 | pause --------------------------------------------------------------------------------