unity异步加载场景+进度条
LoadingScene。cs放在在加载场景中
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class LoadingScene : MonoBehaviour {
public Text LoadingText;
public Slider loadingSlider;
private AsyncOperation operation;
int process;
private float targetValue;
private float loadingSpeed = 1;
// Use this for initialization
void Start ()
{
//Cursor.visible = false;
loadingSlider.value = 0.0f;
if (SceneManager.GetActiveScene().name == "NewLoading")
{
StartCoroutine(OnLoadingScene());
//OnLoadSceneTest();
}
}
// Update is called once per frame
void Update ()
{
//Cursor.visible = false;
targetValue = operation.progress;
if (operation.progress >= 0.9f)
{
targetValue = 1.0f;
}
if (targetValue != loadingSlider.value)
{
loadingSlider.value = Mathf.Lerp(loadingSlider.value,targetValue,Time .deltaTime*loadingSpeed);
if (Mathf.Abs(loadingSlider.value-targetValue)<0.01f)
{
loadingSlider.value = targetValue;
}
}
LoadingText.text = ((int)loadingSlider.value * 100).ToString() + "%";
LoadingText.text = System.Math.Truncate(loadingSlider.value * 100) + "%";
// Debug.LogError("***"+System.Math.Truncate(loadingSlider.value*100));
if ((int)(loadingSlider.value*100)==100)
{
operation.allowSceneActivation = true;
}
process = (int)(operation.progress*100);
// Debug.LogError(process);
}
private void OnGUI()
{
}
void OnLoadSceneTest()
{
//SceneManager.LoadSceneAsync(Global.global_LoadSceneName);
SceneManager.LoadScene(Global.global_LoadSceneName);
}
IEnumerator OnLoadingScene()
{
operation = SceneManager.LoadSceneAsync(Global.global_LoadSceneName);
operation.allowSceneActivation = false;
yield return operation;
}
//private void OnGUI()
//{
//}
}

全局变量Global
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Global
{
public static string global_LoadSceneName;
public static int currentScannerQRCodeID;
public static bool IsStartThisEquipmentCheck=false;
public static bool IsNormalStartThisStepTwo=false;
public static bool IsAbnormalStartWordReport = false;
public static bool IsConfirmStartThisStepTwo = false;
public static bool IsConfirmStartThisStepThree = false;
public static bool isCurrentTypeAlreadyCreateText = false;
public static string FirstScannerQRCode;
public static string ScannerUserNameText;
}
点击toggle加载场景。
ConfirmLinePanelUI.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UIlogic;
using UnityEngine.SceneManagement;
public class ConfirmLinePanelUI : MainUI
{
public Toggle ConfirmReadyToggle;
void Start()
{
OnBindEvent();
OnInit();
OnSetCurrentPanelInfomation();
}
//绑定按钮事件
public override void OnBindEvent()
{
//Toggle绑定
ConfirmTaskToggle.onValueChanged.AddListener(OnBindClickConfirmTaskToggle);
ConfirmLineToggle.onValueChanged.AddListener(OnBindClickConfirmLineToggle);
ConfirmReadyToggle.onValueChanged.AddListener(OnBindClickConfirmReadyToggle);
}
public void OnBindClickConfirmReadyToggle(bool bol)
{
OnClickConfirmReadyToggle();
// Debug.LogError("Toggle IsClick"+ bol);
}
public void OnClickConfirmReadyToggle()
{
Global.global_LoadSceneName = "NewTestARRecognition";
//GameTemplateMethodSingleton.singleton.OnLoadLevel("NewLoading");
SceneManager.LoadSceneAsync("NewLoading");
}
}

浙公网安备 33010602011771号