using System.Collections;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class InPanel : MonoBehaviour
{
public GameObject Load;
public Slider sl;
public Text text,next;
private void Awake()
{
Load.SetActive(false);
}
void Update()
{
if (Input .GetKeyDown (KeyCode.E ))
{
StartCoroutine(LoadLeve());
}
}
IEnumerator LoadLeve()
{
Load.SetActive(true);
AsyncOperation operation = SceneManager.LoadSceneAsync(SceneManager.GetActiveScene().buildIndex + 1);
operation.allowSceneActivation = false;
while (!operation.isDone )
{
sl.value = operation.progress;
text.text = operation.progress * 100 + "%";
if (operation .progress >=0.9f)
{
sl.value = 1;
text.text = "100%";
next.text = "Pass Any Ket To Next";
if (Input. anyKeyDown)
{
operation.allowSceneActivation = true;
}
}
yield return null;
}
}
}
//方式2
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class LoadGame : MonoBehaviour {
public Slider processView;
// Use this for initialization
void Start () {
LoadGameMethod();
}
// Update is called once per frame
void Update () {
}
public void LoadGameMethod()
{
StartCoroutine(StartLoading_4(2));
}
private IEnumerator StartLoading_4(int scene)
{
int displayProgress = 0;
int toProgress = 0;
AsyncOperation op = SceneManager.LoadSceneAsync(scene);
op.allowSceneActivation = false;
while (op.progress < 0.9f)
{
toProgress = (int)op.progress * 100;
while (displayProgress < toProgress)
{
++displayProgress;
SetLoadingPercentage(displayProgress);
yield return new WaitForEndOfFrame();
}
}
toProgress = 100;
while (displayProgress < toProgress)
{
++displayProgress;
SetLoadingPercentage(displayProgress);
yield return new WaitForEndOfFrame();
}
op.allowSceneActivation = true;
}
private void SetLoadingPercentage(float v)
{
processView.value = v / 100;
}
}