84 lines
2.4 KiB
C#
84 lines
2.4 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.SceneManagement;
|
|
using UnityEngine.UI;
|
|
|
|
public class SceneLoad : MonoSingleton<SceneLoad>
|
|
{
|
|
public GameObject loadingPanel;
|
|
public Slider loadSlider;
|
|
public Text loadingInfoText;
|
|
public bool isLoad = false;
|
|
public bool isOnece = true;
|
|
|
|
private void Start()
|
|
{
|
|
loadingPanel.SetActive(false);
|
|
}
|
|
public void SceneChange(string Scenename)
|
|
{
|
|
isLoad = true;
|
|
StartCoroutine(LoadScene(Scenename));
|
|
}
|
|
|
|
|
|
private void Update()
|
|
{
|
|
if (isLoad)
|
|
{
|
|
float tt = loadSlider.value += Time.deltaTime * 0.05f;
|
|
loadingInfoText.text = "加载中 " + (tt * 100f).ToString("0") + "%";
|
|
}
|
|
}
|
|
private IEnumerator LoadScene(string loadSceneName)
|
|
{
|
|
MaskLoadInfoPanel();
|
|
UIManager.Instance.time.PauseTimer();
|
|
AsyncOperation operation = SceneManager.LoadSceneAsync(loadSceneName);
|
|
operation.allowSceneActivation = false;
|
|
while (!operation.isDone)
|
|
{
|
|
if (operation.progress >= 0.9f)
|
|
{
|
|
isLoad = false;
|
|
loadSlider.value = 1;
|
|
loadingInfoText.text = "100%";
|
|
operation.allowSceneActivation = true;
|
|
isOnece = true;
|
|
}
|
|
yield return null;
|
|
}
|
|
loadingPanel.SetActive(false);
|
|
if (loadSceneName == "工具间场景" || loadSceneName == "农贸市场" || loadSceneName == "小商户" || loadSceneName == "农家乐" || loadSceneName == "自建房")
|
|
{
|
|
UIManager.Instance.time.RunTimer();
|
|
if (GlobalFlag.isRecord == "1")
|
|
{
|
|
Camera uiCamera = GameObject.FindGameObjectWithTag("UICamera").GetComponent<Camera>();
|
|
if (uiCamera != null)
|
|
{
|
|
UIManager.Instance.canvas.worldCamera = uiCamera;
|
|
}
|
|
UIManager.Instance.uis.OnStartRecorad();
|
|
}
|
|
}
|
|
}
|
|
|
|
public void MaskLoadInfoPanel()
|
|
{
|
|
if (isOnece)
|
|
{
|
|
ResetLoadInfoPanel(true);
|
|
isOnece = false;
|
|
}
|
|
}
|
|
public void ResetLoadInfoPanel(bool isEnabel)
|
|
{
|
|
loadingInfoText.text = "0%";
|
|
loadSlider.value = 0;
|
|
isLoad = isEnabel;
|
|
loadingPanel.SetActive(isEnabel);
|
|
}
|
|
}
|