跳转"/>
GameFramework框架新建场景及流程跳转
- 新建场景Gameone,拼好UI并拖入UI预制体,例如GameoneForm
- 创建GameoneForm脚本挂载在UI预制上,并实现下面两个方法,否则场景UI会歪
- 在DefaultConfig表中添加Scene.Gameone(即场景名)
- 在Scene表中添加场景编号和资源名称
- 在UIForm表中添加界面编号,备注,和资源名称,UI预制的名字要打对
- 在UIFormId中添加新UI预制的名字与编号
- 新建流程ProcedureGameone
using GameFramework;
using GameFramework.DataTable;
using GameFramework.Event;
using GameFramework.Fsm;
using GameFramework.Procedure;
using GameFramework.Resource;using System.Collections.Generic;
using UnityEngine;
using UnityGameFramework.Runtime;
using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;namespace StarForce
{public class ProcedureGameone : ProcedureBase{private const int gameOneSceneId = 5;public bool changeToGameOne = false;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();//获取上一流程设置的NextSceneIdint sceneId = procedureOwner.GetData<VarInt>(Constant.ProcedureData.NextSceneId).Value;//读表 IDataTable<DRScene> dRScenes = GameEntry.DataTable.GetDataTable<DRScene>();//获取其中的某一行数据DRScene dRScene = dRScenes.GetDataRow(gameOneSceneId);//切换场景GameEntry.Scene.LoadScene(AssetUtility.GetSceneAsset(dRScene.AssetName), this);//(某一行数据中的名称,此流程)//打开登录UI 参数为(枚举脚本里的LoginForm,此流程)GameEntry.UI.OpenUIForm(UIFormId.GameoneForm, this);}protected override void OnUpdate(ProcedureOwner procedureOwner, float elapseSeconds, float realElapseSeconds){base.OnUpdate(procedureOwner, elapseSeconds
更多推荐
GameFramework框架新建场景及流程跳转
发布评论