using
UnityEngine;
using
System.Collections;
using
UnityEngine.SceneManagement;
using
UnityEngine.UI;
public
class
LogingScene : MonoBehaviour
{
//加载条slider
public
Slider logingSlider;
//加载到多少的文本
public
Text progressText;
//序列帧图片
public
Image frameImage;
private
AsyncOperation async =
null
;
private
int
currentProgress = 0;
void
Start()
{
StartCoroutine(LoadingScene());
}
private
IEnumerator LoadingScene()
{
async = SceneManager.LoadSceneAsync(
"Main"
);
async.allowSceneActivation =
false
;
yield
return
async;
}
void
Update()
{
int
toProgress = 0;
if
(async.progress < 0.9f)
{
toProgress = Mathf.Clamp((
int
)async.progress * 100, 1, 100);
}
else
{
toProgress = 100;
}
if
(currentProgress < toProgress)
{
currentProgress++;
}
else
{
async.allowSceneActivation =
true
;
}
SetSliderValue(currentProgress * 0.01f);
}
public
void
SetSliderValue(
float
value)
{
logingSlider.value = value;
progressText.text =
string
.Format(
"{0}%"
, (
int
) (value*100));
//创建一个空物体,把序列帧图片做子物体,父物体移动到开始位置,再移动子物体,看结束位置(此处950)
frameImage.transform .localPosition =
new
Vector3(950*value ,0,0);
}
}