diff options
Diffstat (limited to 'Assets/ActionTool')
-rw-r--r-- | Assets/ActionTool/Editor/ActionEventEditor.cs | 11 | ||||
-rw-r--r-- | Assets/ActionTool/Editor/ActionManager.cs | 23 | ||||
-rw-r--r-- | Assets/ActionTool/Editor/ActionPreviewEditor.cs | 2 |
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();
}
|