From 374b14af851415eb8055bb5251fb064c90f5f271 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 9 Sep 2021 09:39:01 +0800 Subject: *vfx --- Assets/ActionTool/Editor/ActionEventEditor.cs | 11 ++++++++++- Assets/ActionTool/Editor/ActionManager.cs | 23 ++++++++++++++++++++++- Assets/ActionTool/Editor/ActionPreviewEditor.cs | 2 +- 3 files changed, 33 insertions(+), 3 deletions(-) (limited to 'Assets/ActionTool/Editor') diff --git a/Assets/ActionTool/Editor/ActionEventEditor.cs b/Assets/ActionTool/Editor/ActionEventEditor.cs index 9a56f1ef..b0eb86cf 100644 --- a/Assets/ActionTool/Editor/ActionEventEditor.cs +++ b/Assets/ActionTool/Editor/ActionEventEditor.cs @@ -73,7 +73,16 @@ namespace ActionTool GUILayout.Space(5); - EditorGUILayout.LabelField("startFrame (int)", styles.textBold); + EditorGUILayout.BeginHorizontal(); + if (GUILayout.Button("Copy")) + { + ActionManager.CopyAnimationEvent(animEvent); + } + EditorGUILayout.EndHorizontal(); + + GUILayout.Space(5); + + EditorGUILayout.LabelField("startFrame (int)", styles.textBold); GUI.enabled = false; EditorGUILayout.TextField(frame.ToString()); GUI.enabled = true; diff --git a/Assets/ActionTool/Editor/ActionManager.cs b/Assets/ActionTool/Editor/ActionManager.cs index c6599cb7..f8eb327d 100644 --- a/Assets/ActionTool/Editor/ActionManager.cs +++ b/Assets/ActionTool/Editor/ActionManager.cs @@ -117,6 +117,8 @@ namespace ActionTool private static GameObject s_RootActionTool; private const string kRootActionTool = "RootActionTool"; + private static AnimationEventBase copiedAnimationEvent; + public static int MaxEventsPerFrame // 所有帧里面事件最多有几个 { get @@ -478,7 +480,22 @@ namespace ActionTool } } - public static void OnSelectAnimationEvent(AnimationEventBase animEvent) + public static void PasteEvent(object param) + { + if (copiedAnimationEvent == null) + return; + int frame = (int)param; + AnimationEventBase animEvent = UnityEngine.Object.Instantiate(copiedAnimationEvent); + if(animEvent != null) + { + animEvent.name = animEvent.type.ToString(); + animEvent.startFrame = frame; + animationData.AddEvent(animEvent); + OnSelectAnimationEvent(animEvent); + } + } + + public static void OnSelectAnimationEvent(AnimationEventBase animEvent) { m_CurAnimationEvent = animEvent; if(animEvent != null) @@ -499,5 +516,9 @@ namespace ActionTool RootMotionEditor = EditorWindow.GetWindow(true); } + public static void CopyAnimationEvent(AnimationEventBase animEvent) + { + copiedAnimationEvent = UnityEngine.Object.Instantiate(animEvent); + } } } \ No newline at end of file diff --git a/Assets/ActionTool/Editor/ActionPreviewEditor.cs b/Assets/ActionTool/Editor/ActionPreviewEditor.cs index a52a87ff..3a6f9ede 100644 --- a/Assets/ActionTool/Editor/ActionPreviewEditor.cs +++ b/Assets/ActionTool/Editor/ActionPreviewEditor.cs @@ -1007,7 +1007,7 @@ namespace ActionTool eventMenu.AddItem(item, false, ActionManager.AddNewEvent, param); } eventMenu.AddItem(new GUIContent("Copy"), false, null); - eventMenu.AddItem(new GUIContent("Paste"), false, null); + eventMenu.AddItem(new GUIContent("Paste"), false, ActionManager.PasteEvent, frame); eventMenu.ShowAsContext(); } -- cgit v1.1-26-g67d0