GameFramework框架新建场景及流程跳转

本文档介绍了如何在Unity中利用GameFramework框架新建游戏场景Gameone,并配置UI预制体。详细步骤包括创建GameoneForm脚本,配置DefaultConfig、Scene、UIForm和UIFormId表格,以及构建流程ProcedureGameone。在ProcedureCreate流程中添加切换场景代码,并设置按钮监听事件,以在按钮点击时触发流程变更和场景跳转。
摘要由CSDN通过智能技术生成
  1. 新建场景Gameone,拼好UI并拖入UI预制体,例如GameoneForm
  2. 创建GameoneForm脚本挂载在UI预制上,并实现下面两个方法,否则场景UI会歪

在这里插入图片描述

  1. 在DefaultConfig表中添加Scene.Gameone(即场景名)
    在这里插入图片描述
  2. 在Scene表中添加场景编号和资源名称
    在这里插入图片描述
  3. 在UIForm表中添加界面编号,备注,和资源名称,UI预制的名字要打对
    在这里插入图片描述
  4. 在UIFormId中添加新UI预制的名字与编号
    在这里插入图片描述
  5. 新建流程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();
            //获取上一流程设置的NextSceneId
            int 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, realElapseSeconds);
        }
        

        public override
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值