本节代码 主要讲了场景过渡,进度条的代码
第一种,随着时间慢慢增加,适合小场景,没有过多资源需要加载而可以跳过的场景,,
private Slider panel;
void Update()
{
panel.value += Time.deltaTime * 0.1f;
if (panel.value == 1)
{
SceneManager.LoadScene("Chat_transition");
}
}
第二种,适合换装游戏,进入到主界面,需要提前加载衣服资源的时候,进入到 Loading 场景时,
会先提前加载主场景衣服的资源,然后加载完成之后,才会跳转到主场景;
public Image maskImage;//遮住屏幕的图片组件
public Slider mySlider;//滑动条组件,显示进度用的
AsyncOperation sceneAsync;//异步加载场景的返回值
IEnumerator LoadAsync(string Scene_name)
{
sceneAsync = SceneManager.LoadSceneAsync(Scene_name);
sceneAsync.allowSceneActivation = false;
yield return sceneAsync;
}
bool IsLoad = false;
void Update()
{
if (maskImage != null)
{
if (maskImage.color.a > 0)
{
maskImage.color -= new Color(0, 0, 0, 0.02f);
}
else
{
Destroy(maskImage.gameObject);
}
}
else
{
if (!IsLoad)
{
IsLoad = true;
StartCoroutine(LoadAsync(OpenController.Instance.Scene_Name));
}
if (sceneAsync.progress < 0.9f)
{
mySlider.value = sceneAsync.progress;
}
评论1