前言
游戏制作UI除了点击拖拽、列表显示、弹窗等功能外,还需要与用户体验密切相关的功能,比如动画效果。
本课程主要介绍Unity的动画系统在UI中的应用,从构建动态界面开始。一旦您熟悉了动画系统和UI 事件输入和输出,您将在下一个教程中创建一个很酷的音乐游戏。
参考游戏
《osu!》是一款由Peppy(Dean Herbert)基于《押忍!战斗!应援团》、《精英节拍特工》、《太鼓达人》等商业游戏开发制作的免费同人音乐游戏。
标准模式下只有三个操作:
打圈
滑块
旋转器
以上内容摘自百度百科。也就是说,游戏界面可以通过UGUI来完成,其操作也可以让对音乐游戏感兴趣的玩家尝试一下。
我们向(抄)学习,向(山)学习,向(村)学习。
准备资源
奥苏!请附上客户端文件,官网地址https://osu.ppy.sh/p/download
资源提取软件MultiExtractor可以从Exe游戏中提取资源。请注意,这些资源仅用于教育目的,不得用于完成商业作品。
获取该图片:
在这里不得不佩服大须的艺术。各种尺寸的照片都准备得整整齐齐。
效果预览
构建接口
首先,根据前面两门课程的方法搭建一个基本的UI场景。
用户界面布局
Button 组件的Image 和Button 组件是分开创建的,原因稍后解释。
创建按钮动画
选择“按钮”组件的“过渡”动画,然后单击“自动生成动画”按钮,让Unity 将动画器组件保存到项目中的适当位置。
可以看到创建的Animtor文件包含四个动画剪辑(Clips)。
Animtor 组件显示在Btn_Logo 对象中。 Animtor 组件属性的简要描述。
打开Animtor 编辑窗口
动画师界面简介
位置1:动画参数设置窗口。如果您想通过动画过渡将动画从一个片段切换到另一个片段,则单击左上角的参数按钮时会出现此窗口。
位置2:动画状态。当动画进入该状态时,将播放设置为该状态的动画剪辑。请注意,State 还允许您设置动画的播放速度。
位置3:动画过渡。如果游戏在运行时满足条件条件,则您连接的动画状态将产生过渡效果。这允许您调整混合过渡时间。窗户。
在上面,您可以看到为动画状态为“正常”、“突出显示”、“按下”和“禁用”的传入连接设置了相应的触发参数。 UI 通过更改动画控制器的触发参数来更改动画的状态。
编辑动画信息
单击Window窗口,打开动画界面。
打开后,它看起来像这样,您需要在其中选择要编辑的动画对象。
动画窗口概述
位置1:
单击以选择要编辑的动画片段。 Animtor 读取并定位动画控制组件内的信息。
位置2:设置动画帧速率。我把它改成30帧,因为游戏动画一般在30帧就非常流畅。
位置3:当您单击“记录模式”时,Unity 会直接在时间范围窗口中保存对对象的更改。
问题来了。我有4 个相同类型的按钮,但无法编辑这4 个按钮的动画。最好有一个动画控制器,您可以在需要此动画效果的任何地方重复使用它。
这里注意,动画界面中编辑的动画信息是独立保存的。这意味着,如果您编辑名为Image 的子对象的位置属性并将动画放置在另一个对象上(还有一个名为Image 的子对象),则相同的动画将应用于另一个对象。
尝试一下:
像这样创建四个UI 选项按钮的父子层次结构。
仅为Btn_Play 按钮创建选择动画
生成的动画控制器的名称是Btn_Option。
将相同的动画控制器添加到所有四个按钮。
可以看到其他按钮也都启用了
具有多种效果的动态UI
在某些情况下,为了获得更好的UI效果,除了平移和缩放之外,还需要动态改变UI图像。
Button 组件有一个用于动态替换图像效果的接口。要替换它,您所需要做的就是将另一个图像拖到另一个状态框中。
但是如果您想要制作动画并替换图像怎么办?
可以添加事件触发组件
单击添加新事件类型按钮,将出现许多事件。几乎所有用到的事件接口都可以在这里找到。 Button 组件仅使用其中一些可选功能。
当鼠标移动到UI 上并将动画组件放置在对象框中时,将触发选择PointerEnter 选项。也就是说,当被触发时,相关的功能被处理。这个物体。
由于我们已经有了动画控制器,因此在Function 界面中选择Animtor 组件,然后在Animtor 组件上调用SetTrigger 来设置触发函数。
接下来,将以下参数写入动画控制器,以控制所选按钮的动画状态。
这样,当鼠标进入UI图像时,就可以在Btn_play对象上播放动画了。
请注意,通过清除Button 组件创建的UI 默认为循环。这里不需要这个属性。找到Clip 资源并取消选中LoopTime 选项。
目前效果:
总结
UI效果的很多调整都是基于感官体验,所以我们不建议让程序员来运行代码并实现。当然,没有必要在简单的位移上浪费美术人员的时间。所以,虽然我们简单介绍了Dotween组件,但是您无需任何编码就可以实现按钮细节效果。主要对编程感兴趣的读者将了解Tween 相关组件,而主要对艺术感兴趣的读者将了解Unity 的动画相关功能。
这里简单说明一下Unity动画有一个Animator组件,它是一个控制组件,一个控制播放,一个记录信息。有些读者可能没有意识到这种关系,因为许多Unity 功能是分开处理数据和逻辑的。这需要一个学习曲线。
附上源码地址。
https://github.com/chs71371/Osu
本文和图片来自网络,不代表火豚游戏立场,如若侵权请联系我们删除:https://www.huotun.com/game/667732.html