Unity淡入淡出的效果的实现
前言:在我们的许多的游戏中,我们在游戏的开始的时候会有一个淡入的效果(场景由黑逐渐变清晰),当我们切换场景的时候(会由清晰逐渐的变黑的一个过程).
自己的思考:因为我们在许多的游戏中都有可能用到我们的淡入淡出的效果,所有就可以把它封装成一个类,每次当我们需要用到的时候,就可以直接拿来用了,这也体现我们我们c#的封装的特性。
实现的思路:
一.因为当我们封装好一个类的时候,那么我们 考虑如何会调用它呢??这时候我们会考虑使用单例模式。
单例模式的实现思路:
(1):我们使用静态字段来模拟全局变量。
(2):构造函数的私有化,因为我们不允许 别人通过使用new的关键字来创建类的实例,这也就保证了我们当前类只能有一个实例,来避免一些不必要的麻烦。
(3):得到实例。
单例模式的具体的实现:
1 //设置静态的字段来模拟全局的变量(开始为空) 2 private static SceneFadeInAndOut _instance = null; 3 /// <summary> 4 /// 只读属性的设置(得到实例) 5 /// </summary> 6 public static SceneFadeInAndOut Instance 7 { 8 get 9 { 10 //如果一开始的为空的话 11 if (_instance == null) 12 { 13 //进行类的实例化的操作 14 _instance = new SceneFadeInAndOut(); 15 } 16 //下一个访问的话_instance就不为空直接返回字段 17 return _instance; 18 } 19 } 20 //构造函数的私有化 21 private SceneFadeInAndOut() { }
二:好的,当我们写完单例模式的时候,接下来要考虑显示的事情了,我们需要时候来进行显示呢???我们需要使用UGUI的RawImage组件,来控制Color来控制淡入淡出效果。
请看截图:
代码如下:
1 //RawImage对象 2 public GameObject goRawImage; 3 //RawImage组件 4 private RawImage _rawImage; 5 void Awake() 6 { 7 //如果goRawImage不为空的话 8 if (goRawImage) 9 { 10