用图状结构去理解Animator

用图状结构去理解Animator

本人是一个Unity菜鸟,刚自学Unity刚刚有个把月吧,所以对很多东西都不懂,这篇博客是我的第一篇博客,所以还有好多好多需要我去学习和进步的东西。我希望借助数据结构里的图状结构去理解一下Unity里Animator的一些逻辑关系,说实话我对图的接触时间也不长,我想通过结合一下两者互相理解彼此吧。还请大家对我理解上的偏差做出批评,让我能够有所提升吧!

Animator Controller

Animator Controller
   这是控制僵尸这个GameObject的Animator Controller,里面有很多的状态切换,这个结构看起来很像一个有向图,像离散数学里二元关系的关系图。状态切换的参数可以看成是有向图的权值,因此这又可以看作是一个网,有向图的权值一般是表示从一个顶点到另一个顶点的距离或耗费,或者是一个二进制编码出现的频率或概率。而状态切换的这个参数往往是布尔型或者是触发器,因此以我的理解是两个状态进行转换的条件(conditions),不过这个参数也可以选择为Int型和Float型,当选择Int或Float的时候是不是就可以完全看成是两个状态之间的距离或者频率了呢?本人没怎么用过Int和Float型的参数,所以不知道,希望大家指点迷津。
  下面我想举一个具体的例子来理解一下到底如何进行状态的切换。
僵尸水平移动
  我们可以明显地看到当僵尸在水平方向上移动时,手会伸一下,这看起来怪怪的。
  但是如果去找一下这个Animation,发现并不会伸手,这是为什么呢?
Animation

  我想大家都能看出来,是因为动画过渡的问题。现在再来看一下僵尸的Animator Controller:
在这里插入图片描述
在这里插入图片描述

  注意两个蓝色的Translation,我们可以看得到,是没有直接从Idle到Right的Translation的,而从静止不动到向右移动只能经过Walk这个Animation,而Walk是有抬手动作的,所以出现了上述的情况,至于怎样解决,这涉及到退出时间、过度时间等等问题,我还没太搞懂所以这里我也就跳过吧……我主要想说的是这和图的深度优先遍历很像,都是从顶点开始,然后从其未被选中的邻接点中选择下一个顶点继续进行深度优先遍历,被遍历到的顶点会入栈,如果所有和其相通的顶点都被访问到了才可以退栈。在我看来这两者放在一起理解是行得通的。
  这只是我的一些个人的理解吧,我是个刚学习Unity的小萌新,对一些Unity到底是怎么样运行的问题以及很多复杂的功能还需要花很多的时间去学习,可能随着我学得更深入会发现我的这篇博客就是个笑话……不过我还是希望能和大家伙儿一起学习交流,能向圈内的人才们汲取一点知识。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Unity的Text Animator是一个能够对游戏的文本进行动画效果控制的组件。通过使用Text Animator,开发者可以创建出更加丰富、生动的文本效果,从而提升游戏的视觉体验。 使用Text Animator时,首先需要将Text Animator组件添加到需要进行动画效果控制的文本上。然后,我们可以通过编辑器的属性面板来调整文本的动画效果。Text Animator提供了一系列的参数供我们调节,如动画类型、持续时间、延迟时间、速度等。可以根据实际需求,选择合适的参数来实现所需的文本效果。 Text Animator支持多种不同的动画类型,包括逐字显示、渐显渐隐、弹跳、缩放等等。我们可以根据游戏的需求选择合适的动画类型,并通过调整参数使动画效果更加细致、自然。例如,可以设置逐字显示的速度来模拟打字效果,或者使用缩放效果来突出重要的文本内容。 另外,Text Animator还支持事件触发。通过在动画序列添加事件,在指定的时间点上触发某个函数的执行,以实现更加复杂的交互效果。这为我们提供了更多的自由度,可以根据事件触发执行其他的游戏逻辑。 总的来说,Unity的Text Animator是一个非常有用的组件,可以帮助开发者实现丰富、生动的文本动画效果。无论是在游戏显示对话文本、提示信息,还是用于UI界面的设计,Text Animator都能够为我们提供强大的功能和更好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值