SceneFader 场景转换的渐入渐出
一、用户界面
Timeline,可以用来制作castthing,比如一个场景触发,播放动画,播放过程玩家无法操作人物,播放指定动画,显示字母等
需要选中物体创建timeline
拖拽物体到timeline左边的资源库,创建animation track
然后创建Animation Track因为player有Animator,可以直接拖拽赋值
然后把player动画拖到timeline上
修改动画播放模式Loop
二、脚本编程
拿到控制权
PlayableDirector director;
用找类的方式找到函数值:
director = FindObjectOfType<PlayableDirector>()
控制时间线播放(Timeline):
director.Play();
时间线播放完执行NewGame函数
director.Stopped+=NewGame
不要在场景转换时将其销毁
DontDestroyOnLoad (gameObject)
协程套协程的方式实现渐入渐隐
public IEnumerator FadeOutIn()
{
yield return FadeOut (fadeOutDuration);
yield return FadeIn (fadeInDuration);
}
public IEnumerator FadeOut(float time)
{
while (canvasGroup.alpha !=1)
{
canvasGroup.alpha += Time.deltaTime / time;
yield return null;
}
}
public IEnumerator FadeIn(float time)
{
while (canvasGroup.alpha !=0)
{
canvasGroup.alpha -= Time.deltaTime / time;
yield return null;
}
}