在UGUI的Button组件中,有一个过渡动画表现的功能。可以对按钮的不同交互状态添加交互反馈动画,来提高玩家的交互体验。
交互状态
名称 | 描述 |
Normal | 正常情况 |
Highlighted | 高亮显示,例如鼠标触碰到按钮点击范围 |
Pressed | 按钮被按下的时候 |
Selected | 按钮被按下后 |
Disabled | 按钮被禁用 |
过渡动画类型
过渡类型
None
1、完全禁用状态过渡
2、按钮外观不会随交互改变
3、性能最佳但交互反馈最差
ColorTint
-
工作原理:在不同状态(Normal, Highlighted, Pressed, Selected, Disabled)下改变按钮的颜色
-
特点:
-
性能开销较小
-
只能通过颜色变化表示状态
-
可以设置颜色混合的淡入淡出时间
-
SpriteSwap
-
工作原理:为每个状态指定不同的Sprite图像
-
特点:
-
视觉效果最明显直接
-
需要为每个状态准备不同的图像资源
-
无过渡动画,状态切换是即时的
-
Animation
-
工作原理:为每个状态指定一个Animation Clip
-
特点:
-
可以实现最复杂的过渡效果(位移、旋转、缩放等)
-
需要创建和管理动画片段
-
性能开销相对较大
-
通过Animation自定义动画来表现Button状态
点击Auto Generate Aniamtion,Unity会自动生成动画控制器和动画片段并且为目标添加Animator组件,通过Animation窗口对动画片段进行设计,通过Animator对动画进行控制。
对比总结
特性 | Color Tint | Sprite Swap | Animation | None |
---|---|---|---|---|
视觉效果 | 简单 | 明显 | 丰富 | 无 |
性能开销 | 最低 | 低 | 较高 | 无 |
资源需求 | 无额外资源 | 需要多张精灵 | 需要动画片段 | 无 |
过渡平滑度 | 可调颜色过渡 | 无过渡 | 可自定义 | 无 |
实现复杂度 | 最简单 | 中等 | 最复杂 | 最简单 |