【问题标题】:Is it possible to navigate the graph of an Animator Controller?是否可以导航动画控制器的图形?
【发布时间】:2019-03-02 23:36:44
【问题描述】:

是否可以在运行时通过代码在 Unity 中导航由 Animator Controller 表示的图形?

设置
例如,如果我有两个状态“空闲”和“点击”。为了从“空闲”状态转换到“点击”状态,我必须在动画师上发出 SetTrigger(“Clicked”) 调用,然后开始播放“SwiperItemClicked”动画剪辑。

现在回答问题
当我知道触发器的名称(“Clicked”)时,如何以编程方式找出在达到“Clicked”状态后将播放什么动画剪辑?我需要知道处于“已单击”状态的动画剪辑的名称(在本例中为“SwiperItemClicked”)。

我正在使用 Unity 2018.3.0f2。

【问题讨论】:

  • 在问题中添加了一条评论,提到我想在运行时执行此操作。

标签: unity3d


【解决方案1】:

仅适用于编辑器脚本

public static string FindClipName(AnimatorController controller, string triggerName)
{
    foreach (var layer in controller.layers)
        foreach (var state in layer.stateMachine.states)
            foreach (var transition in state.state.transitions)
                foreach (var condition in transition.conditions)
                    if (condition.parameter == triggerName)
                        return transition.destinationState.motion.name;
    return null;
}

【讨论】:

  • 谢谢!我猜“编辑器脚本”意味着它在运行时不起作用。
  • 我认为在运行时是不可能的,在最新的Unity API下没有导出条件类。
【解决方案2】:

向量没有直角图。我相信不可能浏览动画控制器的图表。动画控制器只接受平行线和角度线。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多