Unity GameFramework丨(八)場景
大家好,我是SKODE。
小提示:選中左側目錄,可快速找到所需內容
本系列部落格地址:傳送門
一、本章講什麼
UGF載入場景的機制
如何切換場景
如何解除安裝場景
二、UGF載入場景的機制
UGF切換場景,都是將原場景(之前的所有場景)疊加在新場景上的。
所以你需要先解除安裝所有場景,再載入。
注意:最開始的啟動場景(帶有 GameFramework 的場景),不會被解除安裝掉,即使你用了解除安裝的程式碼,也不需要被解除安裝。
因為 GameFramework 的流程,是貫穿整個專案的,所以 GameFramework 能被解除安裝呢。
三、如何切換場景
1、直接在流程中切換
using GameFramework.Procedure;
using UnityGameFramework.Runtime;
using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;
public class Demo2_ProcedureLaunch : ProcedureBase
{
protected override void OnEnter(ProcedureOwner procedureOwner)
{
base.OnEnter(procedureOwner);
//得到框架場景元件
SceneComponent sceneComponent = GameEntry.GetComponent<SceneComponent>();
// 切換場景
sceneComponent.LoadScene("Assets/Demo2/Demo2_Menu.unity", this);
// 切換流程
ChangeState<Demo2_ProcedureMenu>(procedureOwner);
}
}
2、使用方法載入
可以看出來,切換場景的方法都是一樣的。
就是:
- 獲取框架場景元件
- 切換場景
using UnityEngine;
using UnityGameFramework.Runtime;
public class Demo2_Controller : MonoBehaviour
{
public void EnterGame()
{
// 獲取框架場景元件
SceneComponent Scene = GameEntry.GetComponent<SceneComponent>();
// 載入遊戲場景
Scene.LoadScene("Assets/Demo2/Demo2_Game.unity", this);
}
}
四、如何解除安裝場景
我們在切換場景時,發現都是將原場景(之前的所有場景)疊加在新場景上的。
場景會變得越來越多。那我們在載入新場景時,就需要解除安裝場景。
注意:
放心,解除安裝的程式碼不會解除安裝掉 GameFramework啟動場景,它只解除安裝掉除啟動場景外的其他場景。
using UnityEngine;
using UnityGameFramework.Runtime;
public class Demo2_Controller : MonoBehaviour
{
public void EnterGame()
{
// 獲取框架場景元件
SceneComponent Scene = GameEntry.GetComponent<SceneComponent>();
// 解除安裝所有場景(並不會解除安裝掉 GameFramework啟動場景)
string[] loadedSceneAssetNames = Scene.GetLoadedSceneAssetNames();
for (int i = 0; i < loadedSceneAssetNames.Length; i++)
{
Scene.UnloadScene(loadedSceneAssetNames[i]);
}
// 載入遊戲場景
Scene.LoadScene("Assets/Demo2/Demo2_Game.unity", this);
}
}
一起進步
我是SKODE
相關文章
- Unity GameFramework丨(二十三)使用 AssetBundle 編輯工具UnityGAMFramework
- Unity製作遊戲中的場景Unity遊戲
- [Unity-24] Unity的四種載入場景的方法Unity
- Unity C# 打包AssetBundle與場景UnityC#
- Unity3D裡場景跳轉Unity3D
- unity場景匯入iOSAPP求助UnityiOSAPP
- unity入門—資源匯入與場景建立Unity
- 八個Docker的真實應用場景Docker
- LUA-天龍八部場景指令碼指令碼
- 八個 Docker 的真實應用場景Docker
- GameFramework食用指南GAMFramework
- Unity大密度建築場景載入解決方案Unity
- 手遊逆向分析: Unity內還原遊戲場景/角色渲染效果Unity遊戲
- 在Unity中快速搭建一個3A級別的場景Unity
- Unity3d:程式碼自動新增場景到BuildSettingsUnity3DUI
- 實現原理揭祕:如何用Unity製作逼真的自然場景?Unity
- Unity遮罩之Mask、RectMask2D與Sprite Mask適用場景分析Unity遮罩
- GameFramework框架——ConfigComponentGAMFramework框架GC
- 遊戲場景管理的八叉樹演算法是怎樣的?遊戲演算法
- mongodb 使用場景和不使用場景MongoDB
- 超詳細實戰教程丨多場景解析如何遷移Rancher ServerServer
- “農民世界”鏈遊系統開發應用場景講解丨FarmersWorld(農民世界)DAPP遊戲場景程式碼APP遊戲
- Unity2D遊戲開發基礎教程1.2專案、資源和場景Unity遊戲開發
- Unity2D遊戲開發基礎教程1.2 專案、資源和場景Unity遊戲開發
- HMS Core華為分析丨受眾細分,多場景促進精益運營
- RabbitMQ 使用場景MQ
- Vuex使用場景Vue
- 索引失效場景索引
- Block使用場景BloC
- 業務流程場景
- 幹線物流:自動駕駛商業化場景的新風口丨曼孚科技自動駕駛
- Spark適用於哪些場景?不適用於哪些場景?Spark
- 小程式使用最高效的場景:線上+線下混合場景
- max場景瘦身,加快場景的開啟速度(多種方法)
- ES 應用場景
- RocketMQ場景使用技巧MQ
- redis實用場景Redis
- Zookeeper應用場景