1. 程式人生 > >GameFramework學習之新增場景

GameFramework學習之新增場景

首先Ctrl+N新建一個場景
然後在
在這裡插入圖片描述
在這裡插入圖片描述
這兩個表中將新的場景資訊加進去
注意名字一樣別弄錯
然後建立流程指令碼

在這裡插入圖片描述
指令碼建完之後這裡要勾選,不然會報錯
在這裡插入圖片描述
然後在上一個指令碼中寫載入流程
在這裡插入圖片描述

新的場景中
的相關指令碼

using GameFramework;
using GameFramework.DataTable;
using GameFramework.Event;
using GameFramework.Fsm;
using System;
using GameFramework.Procedure;
using GameFramework.Resource;
using
System.Collections; using System.Collections.Generic; using UnityEngine; using UnityGameFramework.Runtime; using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>; namespace StarForce { public class ProcedureFight : ProcedureBase { private const
int fightSceneId = 6; protected override void OnInit(ProcedureOwner procedureOwner) { base.OnInit(procedureOwner); } protected override void OnEnter(ProcedureOwner procedureOwner) { base.OnEnter(procedureOwner); //停止所有聲音
GameEntry.Entity.HideAllLoadingEntities(); GameEntry.Entity.HideAllLoadedEntities(); //隱藏所有實體 GameEntry.Entity.HideAllLoadingEntities(); GameEntry.Entity.HideAllLoadedEntities(); //解除安裝所有場景 string[] loadedSceneAssetNames = GameEntry.Scene.GetLoadedSceneAssetNames(); for (int i = 0; i < loadedSceneAssetNames.Length; i++) { GameEntry.Scene.UnloadScene(loadedSceneAssetNames[i]); } //還原遊戲速度 GameEntry.Base.ResetNormalGameSpeed(); //獲取上一流程設定的NextSceneId int sceneId = procedureOwner.GetData<VarInt>(Constant.ProcedureData.NextSceneId).Value; //載入實體 //獲取實體元件 EntityComponent entityComponent = UnityGameFramework.Runtime.GameEntry.GetComponent<EntityComponent>(); //建立實體 entityComponent.ShowEntity<EntityLogicInFightScene>(1, "Assets/GameMain/Scripts/hennysky/" + NaturePool.ModeName + ".prefab", "EntityTest"); //讀表 IDataTable<DRScene> dRScenes = GameEntry.DataTable.GetDataTable<DRScene>(); //獲取其中的某一行資料 DRScene dRScene = dRScenes.GetDataRow(fightSceneId); //切換場景 GameEntry.Scene.LoadScene(AssetUtility.GetSceneAsset(dRScene.AssetName), this);//(某一行資料中的名稱,此流程) //開啟登入UI 引數為(列舉腳本里的LoginForm,此流程) GameEntry.UI.OpenUIForm(UIFormId.FightForm, this); } public override bool UseNativeDialog { get { return false; } } } }

在這裡插入圖片描述
這裡的UI可以是替換成你想開啟的UI.但加載出來的預製體會帶有別的指令碼
比如我這裡想載入LoginForm的UIForm,但上面會帶有LoginForm的指令碼