unity clipvedioclip怎么创建

页面已拦截
无锡网警提示您:
该网站已被大量用户举报,且存在未经证实的信息,可能会通过各种手段来盗取您的账号或骗取您的财产。标签:至少1个,最多5个
好久没写博文,今天打算和大家分享点小知识,当当当当!那就是Animator!
Animator是Unity中动画控制器的组件,这东西相当于一个动画片段管理器。我们知道Unity中素材可以拖拽到游戏对象上,制作成称为Clip的动画片段,如果该对象没有Animator组件,那么也会同时创建Animator用来管理Clip的切换和触发等。
Animator中我比较常用的是Trigger,这个很多新人也都使用过了,用来从一个动画状态切换到另一个动画中。今天主要介绍的东西有两个,一个是BlendTree,另一个是State Machine Behaviour。如果大家遇到了我遇到过的问题,那么这两个在关键时刻可谓是大杀器般的存在了。
问题一:如何制作2D角色的多向动画
当时我遇到的问题是:一个2D角色,需要四个方向的移动动画,还需要四个方向的攻击动画。当时技术水平所限,我直觉上想到的就是制作8个State,分别处理8段动画,8个trigger,然后在代码中来回切换。后来看到密密麻麻的State和Transition,发觉不对劲,于是数天的谷歌之后,开始学一个叫做BlendTree的东西。
在一个State上右键创建一个新的BlendTree,然后双击进入。在Animator的参数面板中,添加两个float变量xdir和ydir。在Inspector面板中选择BlendType为2D simple directional,参考变量选好。这时下面会出现一个Motion数组,在里面分别设置图中四个点的坐标和四个动画片段,如图所示:
这两个变量xdir和ydir,用来表示角色的朝向,我们会在代码中进行设置。然后BlendTree的神奇之处就在于,能够根据你所设定的不同的值的组合,去寻找对应的motion。比如我现在用
animator.SetFloat("xdir", 1);
animator.SetFloat("ydir", 0);
来设置这两个坐标,那么BlendTree就会自动匹配到第四个动画,我们将其设置为向右的Clip就可以了,其他方向同理。
问题二:如何检测动画播放状态
制作一个死亡动画不是问题,但是死亡之后如何判定动画播放完毕,我们好进行处理呢?比如现在要求死亡动画播完以后,角色保持在死亡的那一帧,禁止播放其他动画。这里我介绍几种方法,不过感觉State Machine Behaviour是最简单的方案。
首先是Add Animation Event。进入Animation面板,选择你需要监听的动画片段,选中触发的关键帧,右键添加动画事件,然后选择你所需要触发的函数就可以了。这样动画播放到这一帧的时候,就会触发你所选择的函数了。
其次是在代码中使用Invoke或者Coroutine,自己估摸一下动画的播放时间,然后调用对应的函数,也可以达到相同的目的,详细方式大家都可以自行百度谷歌。
最后出场的就是State Machine Behavior了!选中一个State之后,在Inspector面板中,点击Add Behavior面板,就添加了一个状态机脚本,双击脚本进入代码编辑器。这里面最常用的三个函数,分别是Enter、Update、Exit函数。分别是进入状态、更新状态、退出状态的时候会调用的函数。我们在死亡状态后面新建一个状态,设置死亡动画播完以后Exit time形式进入这个状态。如图:
在刚添加的脚本中,添加代码:
override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
animator.enabled =
这样角色死亡动画播完以后,会自动切换到一个空状态,切入之前调用这个Exit函数,将动画控制器禁用,完成!
0 收藏&&|&&6
你可能感兴趣的文章
22 收藏,6.4k
1 收藏,790
1 收藏,1.4k
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可
相比2d toolkit有优势吗
做2D游戏这个技术一般是足够应对的,当然你熟悉哪个最好还是用哪个。
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
我要该,理由是:
扫扫下载 App}

我要回帖

更多关于 unity audio clip 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信