本框架尚处于初期开发阶段,功能尚待完善,仅作为个人探索与实践的成果。 旨在为 Unity 开发者提供一个轻量级、可扩展的游戏开发框架。该框架设计思想将逐步会以文章的形式登录个人博客Blog。
框架汲取了 Hybridclr、Yooasset 和 Luan 的热更新技术,并融合了 GameFramework 的模块设计、状态机和流程控制思想, 力求在轻量级框架的基础上进行创新,探索更高效的游戏开发模式。为追求轻量又存在很多不一样的实现方式。
代码检查器负责编译和启动阶段的代码检查,包括代码格式、命名规范、代码规范、代码质量、代码效率等。
//通过事件管理器调用
EventManager.Instance.Register<TEventArgs,TGroup>(onEvent); //注册事件
EventManager.Instance.UnRegister<TEventArgs,TGroup>(onEvent); //注销事件
EventManager.Instance.SendNow<TEventArgs,TGroup>(sender,e); //立即发送事件
EventManager.Instance.Send<TEventArgs,TGroup>(sender,e); //发送事件(线程安全)
//通过接口扩展调用
this.Register<TEventArgs, TGroup>(onEvent); //注册事件继承 IEventReceiver
this.UnRegister<TEventArgs,TGroup>(onEvent); //注销事件继承 IEventReceiver
this.SendNow<TEventArgs, TGroup>(sender,EventArgs); //立即发送事件继承 IEventSender
// 打开界面
await UIUtility.ShowAndTryCreateUIForm<LoginUI>(UIID.LoginUI);
// 关闭界面
UIUtility.CloseUIForm(UIID.LoginUI);
// 播放音频
GameEntry.GetModule<AudioManager>().PlayAudio("Bullet Impact 21","UI");
// 获取音频Guid
IAudioHandle audioObject = GameEntry.GetModule<AudioManager>().PlayAudio("Railgun - Shot 6","Sound");
Guid audioId = audioObject.Guid;
// 停止音频
GameEntry.GetModule<AudioManager>().StopAudio(audioId,3); // 3秒淡出时间
// 空间音频
(audioObject.Target as GameObject).transform.position = Vector3.zero;
//加载场景
GameEntry.GetModule<SceneManager>().LoadScene("Home", OnSceneLoadedActin) //同步
GameEntry.GetModule<SceneManager>().LoadSceneAsync("Home", default, OnSceneLoadedActin, OnSceneLoadingAction,false); //异步
private void OnSceneLoadingAction(float progress, string sceNename)
{
EDebug.Log($"OnSceneLoadingAction progress: {progress.ToString()}");
}
private void OnSceneLoadedActin(bool isSuccess, string sceNename)
{
//卸载场景
GameEntry.GetModule<SceneManager>().UnloadScene("Main");
}
本框架包含双端的网络框架,支持KCP协议,消息使用 MemoryPack 进行序列化。提供 .Net 平台上最快的struct序列化能力。
本框架的开发离不开众多前辈的智慧结晶,包括 GameFramework、ET 和 QFramework 等,以及 Hybridclr、Luban、YooAsset 和 UniTask 等优秀工具和解决方案的支持。 我们将持续学习和借鉴,不断提升框架的完善度和实用性。
GitHub - EllanJiang/GameFramework GitHub - egametang/ET GitHub - liangxiegame/QFramework
GitHub - focus-creative-games/hybridclr GitHub - focus-creative-games/luban GitHub - tuyoogame/YooAsset GitHub - Cysharp/UniTask