推荐阅读:最近需要实现文字渐隐渐显的效果
一开始我只这样的:
txt.text="这是一个<color=#FF0000>测试案例</color>"
txt:DOFade(0.5, 0)--- 初始透明度比例为0.5
txt:DOFade(1, 0.3)--- 最终透明度比例为1
动画播放完的期待状态
然而事实是这样的
实验表明:异色部分的透明度不会被改变
造成这样的原因可以参考文章UGUI拓展 - 动画控制富文本异色部分的Alpha
后来,我发现了CanvasGroup组件
CanvasGroup可以统一修改该组UI元素的某些性质,而不必去逐个修改
CanvasGroup一共有四个属性:
(1)Alpha : 该组UI元素的透明度。注:每个UI最终的透明度是由此值和自身的alpha数值相乘得到。
(2)Interactable : 是否需要交互(勾选的则是可交互),同时作用于该组全部UI元素。
(3)Blcok Raycasts : 是否可以接收图形射线的检测(勾选则接受检测)。注:不适用于Physics.Raycast.。
(4)Ignore Parent Group : 是否需要忽略父级对象中的CanvasGroup的设置。(勾选则忽略)