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場景匯入iOSAPP求助UnityiOSAPP
- unity實現場景跳轉Unity
- Unity C# 打包AssetBundle與場景UnityC#
- unity入門—資源匯入與場景建立Unity
- 八個Docker的真實應用場景Docker
- GameFramework框架——ConfigComponentGAMFramework框架GC
- GameFramework食用指南GAMFramework
- Unity大密度建築場景載入解決方案Unity
- Unity遊戲框架設計之場景管理器Unity遊戲框架
- LUA-天龍八部場景指令碼指令碼
- Unity3d:程式碼自動新增場景到BuildSettingsUnity3DUI
- 在Unity中快速搭建一個3A級別的場景Unity
- 手遊逆向分析: Unity內還原遊戲場景/角色渲染效果Unity遊戲
- 實現原理揭祕:如何用Unity製作逼真的自然場景?Unity
- Unity遮罩之Mask、RectMask2D與Sprite Mask適用場景分析Unity遮罩
- iPaaS丨API低程式碼平臺適用的業務場景API
- “農民世界”鏈遊系統開發應用場景講解丨FarmersWorld(農民世界)DAPP遊戲場景程式碼APP遊戲
- 超詳細實戰教程丨多場景解析如何遷移Rancher ServerServer
- 索引失效場景索引
- Vuex使用場景Vue
- Redis使用場景Redis
- RabbitMQ 使用場景MQ
- HMS Core華為分析丨受眾細分,多場景促進精益運營
- 八、Abp vNext 基礎篇丨標籤聚合功能
- 計算機視覺與影像:八大熱點公司以及九大應用場景計算機視覺
- 幹線物流:自動駕駛商業化場景的新風口丨曼孚科技自動駕駛
- Spark適用於哪些場景?不適用於哪些場景?Spark
- 技術筆記(7)Unity匯入人物和場景資源,出現的材質顯示問題筆記Unity
- redis實用場景Redis
- git常用使用場景Git
- RocketMQ場景使用技巧MQ
- 3.4 應用場景
- grep 的使用場景
- DDD應用場景
- 泛型使用場景泛型
- ES 應用場景
- snapshot應用場景