「Unity3D」(5)CanvasGroup功能和Fade动画
来源:互联网 发布:域名需要解析吗 编辑:程序博客网 时间:2024/05/22 23:27
CanvasGroup 对于UGUI来说,提供了十分重要的便利功能,并且能够受益于Unity实现的性能优化。从命名来看Group明显是针对“批量”操作的一个概念。对于复杂的UI界面,会有意想不到的效果和效率。
Alpha 能够控制所有子节点UI元素的透明度。无论界面多么的复杂,只要是Graphic的子类,都能够被控制。这省去了针对各个元素,运行时的遍历,或是设计时的配置。
Interactable 能够控制所有子节点UI元素的交互性。无论界面多么复杂,只要是Selectable的子类,都能够被控制。交互性就是Button控件不可用的灰色状态,如同取消了Button的Interactable属性。
Blocks Raycasts 能够控制所有子节点UI元素事件触发。无论界面多么复杂,只要是Graphic的子类,都能够被控制。相当于取消了Graphic元素的Raycast Target属性。
Ignore Parent Groups 控制当前元素可受到,父类CanvasGroup的属性影响。
当使用CanvasGroup控制的时候,我们会看到UI子元素的,Alpha,Interactable,RaycastTarget属性并没有改变。可见在UGUI源码里,是使用CanvasGroup的属性做了过滤操作,来实现控制效果的。
既然CanvasGroup可以控制整体界面的Alpha值,那么利用这个特性,来做Fade渐变动画,就在合适不过了。既可以使用协程也可以使用tween算法。比如,我就使用tween提供了UI界面的整体Fade功能。
/// <summary>/// Fade in GameObject all children Graphic./// </summary>public static void FadeInUI(this GameObject go, float duration, Action OnComplete = null){ var canvasGroup = go.GetComponent<CanvasGroup>(); if (canvasGroup == null) { canvasGroup = go.AddComponent<CanvasGroup>(); } canvasGroup.ActionFadeIn(duration).Play(); if (OnComplete != null) { Tween.Create().AddIntervalCallback(duration, OnComplete).Play(); }}/// <summary>/// Fade out GameObject all children Graphic./// </summary>public static void FadeOutUI(this GameObject go, float duration, Action OnComplete = null){ var canvasGroup = go.GetComponent<CanvasGroup>(); if (canvasGroup == null) { canvasGroup = go.AddComponent<CanvasGroup>(); } canvasGroup.ActionFadeOut(duration).Play(); if (OnComplete != null) { Tween.Create().AddIntervalCallback(duration, OnComplete).Play(); }}
不仅如此,是否可以使用CanvasGroup的Alpha = 0 且 Blocks Raycasts = false,来达到隐藏界面的目的,以此来代替Active false的操作。
「小组件大作用」
- 「Unity3D」(5)CanvasGroup功能和Fade动画
- fade
- fade
- unity3d,2dtoolkit精灵得Fade效果
- 规【Unity3d】Shader实现UGUI Image的不规则Fade
- CanvasGroup作用
- UGUI CanvasGroup
- Unity3D教程:动画融合、动画层、动画混合、附加动画、程序动画、动画重放和取样
- Unity3D教程:动画融合、动画层、动画混合、附加动画、程序动画、动画重放和取样
- Unity3D教程:动画融合、动画层、动画混合、附加动画、程序动画、动画重放和取样
- 「Unity3D」(4)使用AnimBool自定义Inspector动画效果
- unity3d 动画
- Unity3D动画
- [原创]unity3D学习【功能实现】之七:Animator动画以及传递参数,简单功能
- 去掉UICollectionView 在 reloadItems时默认附加的隐式fade动画。
- Processing 练习(5)- Random bubbles fade out!!
- flex fade
- 计算角色和物体之间距离来触发动画【Unity3d】
- 对中科院的探讨,得出的结论
- Android 滑动与点击事件冲突的处理
- 三目运算符
- HCTF 2017 bin Level1 Evr_Q Writeup
- java PreparedStatement 中文异常
- 「Unity3D」(5)CanvasGroup功能和Fade动画
- 常用的正则表达式
- (五)JAVA菜鸟养成记--内部类
- word Ctrl Z 撤销功能无法使用怎么办?
- android架构组件之Room
- spark streaming
- 反向投影backproject的直观理解
- 多线程编程之六:pthread信号量
- UGUI源码查看编辑与调试