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的脚本