如何获取动画 Window 的引用?
How to get a reference to the Animation Window?
我正在使用动画师为游戏对象制作动画。我正在将动画与我在编辑器中覆盖的视频相匹配。目前我必须调整视频洗涤器以到达我想要关键点的下一个位置,然后在动画器中计算和更改它。我希望能够用我的视频洗涤器控制动画洗涤器,反之亦然。
The wiki has what I need 动画 window 但我不确定 how/if 我可以通过脚本访问动画 window。
感谢任何帮助。
一般来说,获取某个内置编辑器的特定实例有点困难window,因为您可以同时打开多个相同类型的编辑器。
然而,假设已经有某个 AnimationWindow
(CTRL + 6) window 打开你可以简单地做例如
private AnimationWindow animationWindow;
...
// If there is no AnimationWindow open this will also open one
if(animationWindow == null) animationWindow = EditorWindow.GetWindow<AnimationWindow>();
aniamtionWindow.frame = targetFrame;
作为一个小演示
using UnityEditor;
using UnityEngine;
public class Example : MonoBehaviour
{
[SerializeField] [Min(0)] private int frame;
private AnimationWindow animationWindow;
private void Update()
{
if(animationWindow == null) animationWindow = EditorWindow.GetWindow<AnimationWindow>();
animationWindow.frame = frame;
}
}
确保将任何使用 UnityEditor
命名空间的脚本放在名为 Editor
的文件夹中,或者将脚本的相应部分用预处理器标签 (#if UNITY_EDITOR
.. .#endif
)
我正在使用动画师为游戏对象制作动画。我正在将动画与我在编辑器中覆盖的视频相匹配。目前我必须调整视频洗涤器以到达我想要关键点的下一个位置,然后在动画器中计算和更改它。我希望能够用我的视频洗涤器控制动画洗涤器,反之亦然。
The wiki has what I need 动画 window 但我不确定 how/if 我可以通过脚本访问动画 window。
感谢任何帮助。
一般来说,获取某个内置编辑器的特定实例有点困难window,因为您可以同时打开多个相同类型的编辑器。
然而,假设已经有某个 AnimationWindow
(CTRL + 6) window 打开你可以简单地做例如
private AnimationWindow animationWindow;
...
// If there is no AnimationWindow open this will also open one
if(animationWindow == null) animationWindow = EditorWindow.GetWindow<AnimationWindow>();
aniamtionWindow.frame = targetFrame;
作为一个小演示
using UnityEditor;
using UnityEngine;
public class Example : MonoBehaviour
{
[SerializeField] [Min(0)] private int frame;
private AnimationWindow animationWindow;
private void Update()
{
if(animationWindow == null) animationWindow = EditorWindow.GetWindow<AnimationWindow>();
animationWindow.frame = frame;
}
}
确保将任何使用 UnityEditor
命名空间的脚本放在名为 Editor
的文件夹中,或者将脚本的相应部分用预处理器标签 (#if UNITY_EDITOR
.. .#endif
)