summaryrefslogtreecommitdiff
path: root/Assets/ActionTool
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/ActionTool')
-rw-r--r--Assets/ActionTool/Editor/ActionEventEditor.cs11
-rw-r--r--Assets/ActionTool/Editor/ActionManager.cs23
-rw-r--r--Assets/ActionTool/Editor/ActionPreviewEditor.cs2
3 files changed, 33 insertions, 3 deletions
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<ActionRootMotionEditor>(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();
}