2.导入GameFramework

tech2025-12-21  2

本节将导入GameFramework框架,并修改E大的案例 StarForce,保留对于我们有用的内容。

打开StarForce,导入GameFramework

从GameFramework官网下载框架(本节用2020.07.30版本延时),并在GitHub或者码云下载StarForce案例(老版本会有一个update分支,最新的删除了)。

使用unity(我这里用的是2019.3.1f1版本)打开解压好的StarForce案例,此时会报错

不过不用担心,只需导入刚下载的GameFramework框架即可

删除多余脚本

1.修改ProcedureMenu.cs和ProcedureMain.cs,清空多余代码

ProcedureMenu.cs和ProdureMain.cs分别是菜单流程和主流程,这里涉及到GameFramework框架中流程的概念,按照E大的说法,流程贯穿整个游戏,这里不多说,下一张会具体介绍流程,并设计简单的明日方舟的流程

ProcedureMain:

using System.Collections.Generic; using UnityGameFramework.Runtime; using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>; namespace StarForce { public class ProcedureMain : ProcedureBase { public override bool UseNativeDialog { get { return false; } } protected override void OnInit(ProcedureOwner procedureOwner) { base.OnInit(procedureOwner); } protected override void OnDestroy(ProcedureOwner procedureOwner) { base.OnDestroy(procedureOwner); } protected override void OnEnter(ProcedureOwner procedureOwner) { base.OnEnter(procedureOwner); } protected override void OnLeave(ProcedureOwner procedureOwner, bool isShutdown) { base.OnLeave(procedureOwner, isShutdown); } protected override void OnUpdate(ProcedureOwner procedureOwner, float elapseSeconds, float realElapseSeconds) { base.OnUpdate(procedureOwner, elapseSeconds, realElapseSeconds); } } }

ProcedureMenu:

using GameFramework.Event; using UnityGameFramework.Runtime; using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>; namespace StarForce { public class ProcedureMenu : ProcedureBase { public override bool UseNativeDialog { get { return false; } } protected override void OnEnter(ProcedureOwner procedureOwner) { base.OnEnter(procedureOwner); } protected override void OnLeave(ProcedureOwner procedureOwner, bool isShutdown) { base.OnLeave(procedureOwner, isShutdown); } protected override void OnUpdate(ProcedureOwner procedureOwner, float elapseSeconds, float realElapseSeconds) { base.OnUpdate(procedureOwner, elapseSeconds, realElapseSeconds); } } }

2.删除StarForce的UI脚本

以下的UIForm实现的是StarForce的UI界面,我们用不上,所以删掉

3.删除Game文件夹

Game文件夹下的脚本是各种游戏模式,我们需要自己设计,所以删除

4.删除Entity文件夹中的内容

Enity文件夹包含实体信息和实体类,还有加载实体的额外方法,我们删除StarForce中的Data,实体类,并在EntityExtension.cs中删除显示其实体对应的拓展方法 5.删除AIUtility

后续我们需要自己设计AIUility,所以删除

6.删除StarForce资源

根据需求删除相关资源文件

这里删除了有关StarForce的一些配置表文件

还删除了Entities下所有的预制体(保留Entities文件夹)

导出.package

导出package文件,以后用框架可以直接导入工程

Scripts中各个文件夹介绍

文件夹说明Base游戏入口脚本DataTable数据表脚本,使用StarForce->Generate DataTables自动生成Definition一些结构体,enum,常量Entity实体Data和实体类Localization本地化相关脚本,就是解析XML的辅助器Network网络模块Procedure流程脚本,其中保留了StarForce案例中的流程,到时候按需更改Sound声音相关的拓展模块,好用故保留UIUI相关的拓展模块,和好用的辅助器,故保留Utility工具类存放的文件夹

an逞祥的:https://blog.csdn.net/qq_30448401 an逞祥的个人博客:http://anchengxiang.qicp.io

最新回复(0)