游戏有多个场景组成(新手村,某某副本,主城)
场景是有多个物体组成(怪物,地形,玩家等)
物体是有多个组件组成(刚体组件,自定义脚本)
创建场景
编辑场景
在另一个场景加载自创建的场景
做好准备工作,开始写场景类
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;//场景类需要导入public class game : MonoBehaviour
{void Start(){//两个类 场景类,场景管理类//通过索引或者索引名称跳转// SceneManager.LoadScene(1);// SceneManager.LoadScene(0);//SceneManager.LoadScene("SampleScene");//SceneManager.LoadScene("myscenes");//获取当前场景Scene scene = SceneManager.GetActiveScene();//场景名称Debug.Log(scene.name);//是否被加载Debug.Log(scene.isLoaded);//场景路径Debug.Log(scene.path);//场景索引Debug.Log(scene.buildIndex);//场景物体GameObject[] gos = scene.GetRootGameObjects();Debug.Log(gos.Length);SceneManager.LoadScene("myscenes", LoadSceneMode.Additive);}void Update(){}
}
开始了解场景管理类
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;//场景类需要导入public class game : MonoBehaviour
{void Start(){//两个类 场景类,场景管理类//场景管理类//创建新场景Scene newScene = SceneManager.CreateScene("newScene");//加载的场景数量Debug.Log(SceneManager.sceneCount);//卸载场景SceneManager.UnloadSceneAsync(newScene);//加载场景替换场景(替换当前场景,和跳转类型)SceneManager.LoadScene("myscenes", LoadSceneMode.Single);//加载场景添加加载(两个场景会叠加在一起,会卡顿)SceneManager.LoadScene("myscenes", LoadSceneMode.Additive);}void Update(){}
}
异步加载场景添加加载
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;//场景类需要导入public class game : MonoBehaviour
{//声明一下 operationAsyncOperation operation;//跳转时间float timer = 0;void Start(){//场景管理类StartCoroutine(loadScene());}//创建协程方法用来异步记载场景 IEnumerator loadScene() {operation = SceneManager.LoadSceneAsync(0);//加载完成后不要跳转operation.allowSceneActivation = false;yield return operation;}void Update(){//读取加载进度,进度最大0-0.9Debug.Log(operation.progress);timer += Time.deltaTime;//上一帧到这一帧所用的游戏时间//Debug.Log(Time.deltaTime);//如果大于3秒if (timer > 5){operation.allowSceneActivation = true;}}
}