unity3d - 是否可以导航动画控制器的图形?
问题描述
是否可以在运行时通过代码在 Unity 中导航由 Animator Controller 表示的图形?
设置
例如,如果我有两个状态“空闲”和“单击”。为了从“空闲”状态转换到“点击”状态,我必须在动画师上发出 SetTrigger(“Clicked”) 调用,然后开始播放“SwiperItemClicked”动画剪辑。
现在问题
当我知道触发器的名称(“单击”)时,我如何以编程方式找出在达到“单击”状态后将播放什么动画剪辑?我需要知道处于“已单击”状态的动画剪辑的名称(在本例中为“SwiperItemClicked”)。
我正在使用 Unity 2018.3.0f2。
解决方案
仅适用于编辑器脚本
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;
}
推荐阅读
- r - 计算不同列数的分组平均值
- python - Python Futures Concurrent 在 Flask 中不起作用
- javascript - 无法在 javascipt 函数中获取输入标记的值?
- javascript - 关闭谷歌应用脚本中的modalDialogue框后运行代码
- python - 为什么我的蟒蛇游戏项目中有这两个错误?
- azure - 从 Azure ADF IR 链接服务连接到 AWS RedShift(启用 SSL)
- javascript - 如何在 JavaScript 中获取已检查的行输入字段值?
- python - concat 的形状错误并在 python 中追加
- java - 以前缀 00 开头的连续数字的正则表达式
- delphi - Delphi FMX RTL270.bpl 错误与可视组件 TbackendEndpoint