高性能组件式框架,参考ET,GF,Entitas框架
-
需要odin插件
-
测试案例(将之放入到Assets目录下即可):
-
需要先运行一下GXGameFrame\Config\Excel\gen_code_bin 制作表格数据
集成UI框架(基于fgui),资源加载框架(基于AA的的拓展,可以做到一键出包,一键构建,只需要少量配置)
本框架特点:
1.可以做到逻辑和渲染完全分离,逻辑端只需要关注数据即可,即便是像是位移这种需求,也不需要等待模型加载完成,直接设置位置即可,模型创建完成会自动修改为你设置的位置.
//比如你想要创建一个实体
var cubeHero = entity.AddChild<Cube>();
cubeHero.Name = "Hero";
cubeHero.AddViewType(typeof(CubeView));
cubeHero.AddWorldPos(new Vector3(1.5f, 0, -5));
cubeHero.AddWorldRotate(Quaternion.identity);
cubeHero.AddInputDirection();
cubeHero.AddLocalScale(Vector3.one * 1.5f);
cubeHero.AddMeshRendererColor(Color.black);
cubeHero.AddMoveDirection();
cubeHero.AddMoveSpeed(10);
cubeHero.AddDirectionSpeed(360);
cubeHero.AddDirection(Vector3.forward);
cubeHero.AddAssetPath("Cube");
cubeHero.AddCampComponent(Camp.SELF);
cubeHero.AddUnitTypeComponent(UnitTypeEnum.HERO);
2.全游戏只有一份的GameObject数据类,WorldPos ,LocalPos ,LocalScale,WorldScale,WorldRot,localRot 等等只有一个源头.
3.强大的UI系统,入场动画,出场动画,等各种期间的调用都可以,且顺序完全按照你调用的方式进行,允许打开之前进行资源加载和通讯等耗时操作,且两个界面完全连续,以及UI的延迟删除复用.
4.强大的资源管理系统,脱离AA原本的设计,无论你是出单机包,还是网络包,配置基本一致,同时也满足上线整包1.0之后,更新一段时间之后,重新上线了整包2.0版本, 1.0的用户不需要删除也能和2.0的用户一致.
5.基于Entitas的设计,在使用ecs系统的时候绝大多数都是数组操作,所以响应极快.
6.所见即所得,生命周期接口以及事件接口,想要什么事件自己创建接口就行,顺带一体,事件中去除其他的事件或者删除自己也是不会有问题的.
public abstract class UIEntity : Entity, IStartSystem, IPreShowSystem, IShowSystem, IHideSystem, IUpdateSystem
public class UICardListWindow : UIEntity, ITestEvent
7.全方面的editor工具提供,包含打包,事件绑定,ecs绑定,实体审查工具,如果你使用rider就可以在ilviewer中查看c#的il代码或者 低等高等代码.
8.如果你实在不想用ecs部分的系统,可以使用行为机(内置)
编辑器功能 看图识功能: