<span style="color:#3333ff">加载游戏场景,首先要引入场景管理的命名空间:using UnityEngine.SceneManagement;
然后在调用你需要加载的游戏场景在SceneManage.LoadScene(); 这个方法是有四种重载的 </span>
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement; //记住一定要引入场景管理的命名空间
public class Scene : MonoBehaviour
{
void Start ()
{
}
void Update ()
{
}
public void Scene()
{
SceneManager.LoadScene(0);//加载索引值是0的游戏场景
}
}
using UnityEngine.SceneManagement; //记住一定要引入场景管理的命名空间
public class Scene : MonoBehaviour
{
void Start ()
{
}
void Update ()
{
}
public void Scene()
{
SceneManager.LoadScene(0);//加载索引值是0的游戏场景
}
}
LoadSceneMode:加载场景的模式
下面是我学习的异步加载场景的学习路程,我只是记录自己的学习过程,小白一个,如果有不对的地方还希望大家可以指出,我一定认真学习。
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class LoadScence1 : MonoBehaviour {
public Image imageProcress;//滚动条
public Text imageText;//进度显示文本
private int processNumber;//临时存储进度用来控制进度条的滑动,因为自己定义可以从零开始可控制
private int currentProcessNumber;//最终text文本显示的数字
public AsyncOperation result;//加载结果
void Start ()
{
StartCoroutine(LoadScene()); //调用接口
}
void Update ()
{
if (result == null)//确保一定获得加载结果,其实加不加都可以但是要保持逻辑的严谨性
{
return;
}
//数据在加载到90%的时候,暂停了。使用临时变量来存储内部数据加载结果。以90%作为分界点,分开处理
if (result.progress < 0.9f) //0.9f需要加f不加的话processNumber的值一直是0
{
processNumber = (int)result.progress * 100;
}
else
{
processNumber = 100;
}
if (currentProcessNumber < processNumber)
{
currentProcessNumber++;
imageText.text = currentProcessNumber + "%";//显示数字
imageProcress.fillAmount = currentProcessNumber / 100f;//保持进度条同步滚动
}
if (currentProcessNumber == 100)
{
result.allowSceneActivation = true;//内部数据的加载和外部数据显示 同步的时候,要加载的场景被激活
}
}
//接口的使用
IEnumerator LoadScene()
{
result = SceneManager.LoadSceneAsync("BagSystem2");//异步加载场景然后他返回一个值,这个值可以用来给Progress赋值,这个值能正好在0-1之间
//allowSceneActivation意思就是尽快的显示下一个场景
result.allowSceneActivation = false;//不激活下一个场景,意思就是其实当进度条加载到90%的时候就直接跳转到了游戏场景,90%-100%是不显示的
//但是这样不符合常理,我们要让进度条走完需要手动控制,不让他自动加载
yield return null;//返回结果
}
}