如何获得对动画窗口的引用?
Posted
技术标签:
【中文标题】如何获得对动画窗口的引用?【英文标题】:How to get a reference to the Animation Window? 【发布时间】:2022-01-13 01:37:13 【问题描述】:我正在使用动画师制作游戏对象的动画。我正在将动画与我在编辑器中覆盖的视频进行匹配。目前我必须调整视频擦洗器以到达我想要关键点的下一个位置,然后在动画师中计算并更改它。我希望能够使用我的视频滑动器控制动画滑动器,反之亦然。
The wiki has what I need 用于动画窗口,但我不确定如何/是否可以通过脚本访问动画窗口。
任何帮助表示感谢。
【问题讨论】:
您希望在构建中执行此操作还是仅在编辑器中执行此操作? @NSJacob1 我只想在编辑器中这样做 那么您的问题是“如何获得对动画窗口的引用”? @derHugo 是的,谢谢,这是一种更好的措辞方式。我将更新我的标题以更有用 【参考方案1】:一般来说,获得某个内置编辑器窗口的特定实例有点困难,因为您可以同时打开多个相同类型的窗口。
但是,假设已经打开了某个 AnimationWindow
(CTRL + 6) 窗口,您可以简单地执行例如
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
) 包装脚本的相应部分
【讨论】:
这正是我想要的,谢谢 :D 对于将来由于保护级别而无法引用AnimationWindow
的任何人,您需要将 Unity 升级到 2019 年以上的版本以上是关于如何获得对动画窗口的引用?的主要内容,如果未能解决你的问题,请参考以下文章