unity客户端开源框架

这篇具有很好参考价值的文章主要介绍了unity客户端开源框架。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

TinaX Framework

链接:https://github.com/yomunsam/TinaX/tree/master
TinaX 主要实现了以下功能:
Lua 语言支持
出于普遍的热更新需求,TinaX原生提供了基于 Tencent/xlua 的Lua语言运行环境,并为主要功能提供了Lua层面的API支持。

如果不需要Lua环境的话,也可以在项目中将Lua相关功能完全关闭,不会影响包体体积。

虚拟文件系统
虚拟文件系统(VFS: Virtual File System)是TinaX 中实现的基于用来管理资源的功能模块。VFS为业务逻辑开发提供了可虚拟寻址的、统一的资源加载API,并在系统内部处理AssetBundle的依赖加载与释放。
VFS支持热更新。

UIKit 用户界面系统
基于uGUI提供的UIKit工具,提供了统一的、基于页面的UI管理框架。

其他
I18N 国际化系统
跨语言的事件消息广播
场景管理工具
简单音频管理
wwise扩展接口
全局时间任务调度
……

uFrame

链接:https://github.com/uFrame/uFrame.MVVM
uFrame MVVM是uFrame视觉编码引擎实现的MVVM框架。

xasset

链接:https://github.com/xasset/xasset
xasset 是跨平台 Unity 资源系统。
xasset 提供开箱即用的分包、加密和边玩边下等技术解决方案,可以实现更快的开发效率和更流畅的用户体验。

ColaFrameWork

链接: https://github.com/XINCGer/ColaFrameWork

数据配置表管理
事件/消息处理中心
UI框架(View层)
资源管理 基于xasset
资源引用查找与依赖关系分析插件
编辑器拓展与工具
日志控制台拓展
网络通信与协议
寻路系统
值动画/缓动动画

IFramework

链接: https://github.com/OnClick9927/IFramework

GUI的扩展,方便编辑器扩展 支持链式,标签形式以及最基本的形式
LOG界面
多语言?
A星寻路
对象池
代码自动创建
自定义线程池(无需自己管理线程)
net 支持TCP UDP WS

MyUnityFrameWork

链接: https://github.com/GaoKaiHaHa/MyUnityFrameWork
  Unity框架,组件可插拔,可视化编辑,代码自动生成。
  包含资源加载,配置加载,数据加载,UI管理,音频管理,日志管理,动画系统,特效系统等,以及对应编辑器工具
  支持Android、Ios、PC、WEBGL
  项目中的Script/Core目录就是完整框架

游戏流程管理
资源加载
热更新管理器
Lua
配置加载
数据加载
持久化数据
游戏数据查看器
输入管理器
联网系统
UI系统
新手引导系统
游戏对象管理器
反射查看器
Unity内置GUIStyle查看器
Unity内置Icon查看器
SDK管理器
音频管理
开发者工具 框架内置复盘模式,重放Bug出现的所有输入,方便复现Bug,并支持导出操作记录
动画系统
特效系统

TEngine

链接: https://github.com/ALEXTANGXIAO/TEngine
TEngine是一个简单(新手友好)且强大的Unity框架,对于需要一套上手快、文档清晰、高性能且可拓展性极强的开发者或者团队来说是一个很好的游戏开发框架解决方案。
五分钟即可上手整套开发流程,代码整洁,思路清晰,功能强大。
高效的事件系统GameEventMgr,可以指定事件ID/事件String监听和分发事件。
健壮的资源模块TResources,开发者只用关注一个接口便可以通用的在编辑器进行资源加载或者真机加载AB。
救世的HybirdCLR(huatuo)热更新
可选择的高效网络模块
可选择的商业化的UI框架,配合强大的TResource您可以直接进行游戏的UI开发。

KEngine

链接:https://github.com/mr-kelly/KEngine

KEngine是一个用于Unity3D引擎的AssetBundle框架。

她的核心,资源模块(ResourceModule)为AssetBundle的资源加载、打包提供完整的一套工程规范,减少在项目开发过程中踩坑的时间; 同时基于资源模块,提供了UI模块(UIModule)、配置表模块(SettingModule),实现完整的项目协作工作流。

特点 / Features

代码精简, 运行时没有使用反射机制,高性能
适用于PC/Android/IOS平台开发
良好扩展性,支持资源的高清版、低清版
两种异步风格的AssetBundle加载
具备完整的策划->美术->程序工作流
[美术资源]包含AssetBundle的加载、打包
[美术资源]编辑器模式下AssetBundle的性能调试器
[UI界面]基于约定的、无配置式的UI模块
[策划配置]基于Excel进行编译,配置表可添加图表、注释、批注
[策划配置]配置表加载支持运行时热重载, 无需重启立即生效
[策划配置]自动生成文档完善的静态代码,大大便捷开发流程

KIT

链接: https://github.com/tdouguo/KIT

新手引导(NoviceGuide)
(Timeline)新手引导编辑器
(Timeline)剧情编辑器
任务编辑器
技能编辑器
动画编辑器
特效编辑器
2D地图编辑器
根据刷的方块或其他自动生成1个物理碰撞或安装指定规则生成大的碰撞
刷地图版块功能
Setting 实现本地数据缓存, key=value
Network 实现网络连接 tcp,udp,kcp
socket-tcp 功能:断线重连、心跳检测、粘包、拆包 扩展协议 protobuf
scoket-udp
socket-kcp
net-htpp Get、Post请求, 提供自定义请求头,RES非对称加密 等技术处理
FSM 有限状态机
Download 实现并发下载,多线程下载
Res 集成 Resources,StreamingAssets-AB,网络下载AB,管理资源, 基于XAsset实现 AssetBundle,自定义开发AssetBundleEditor指定打包规则.
Scene 基于Res(编辑器、AB),实现场景之间切换,附加,移除.
Audio 基于Res(编辑器、AB),网络动态下载,网络在线资源(mp3,wav)等
Picture 基于Res(编辑器、AB),实现Sprite自动化引用管理以及释放,网络动态下载,网络在线资源
Entity 基于Res(编辑器、AB),实现GameObject 对象池处理资源加载卸载
pool 对象池
Video 视频
Data
data-table 二维表结构(excle,sqlite)
data-node 节点结构(xml,json)
Event 提供模块之间消息通讯, 以及异步线程之间通讯
内嵌Web浏览器(BuiltInWeb)
热更新(xLua\IRuntime)
Utility 工具
[依赖Unity] 截屏、GPS定位、IO处理、音频转换(AudioClip)、Windows对话框、Misc(WWW请求、图片、UI、Input)等
时间戳、 数据处理、Misc(string相关处理)等
i18n 国际化
Process 流程 控制游戏/App整体流程
unity 自动打包

ET

链接: https://github.com/egametang/ET

可用VS单步调试的分布式服务端,N变1
随意可拆分功能的分布式服务端,1变N
跨平台的分布式服务端
提供协程支持
提供类似erlang的actor消息机制
提供服务器不停服动态更新逻辑功能
客户端使用C#热更新,热更新一键切换
客户端全热更新
客户端服务端用同一种语言,并且共享代码
KCP ENET TCP Websocket协议无缝切换
3D Recast寻路功能
服务端支持repl,也可以动态执行一段新代码
打包工具

QFramework

链接: https://github.com/liangxiegame/QFramework

PackageKit: 生态(插件管理)
Core:核心工具库
ResKit:资源管理套件(快速开发)
UIKit:UI 管理套件(支持自动绑定、代码生成)
Audio:音频方案

Loxodon Framework

链接: https://github.com/cocowolf/loxodon-framework

MVVM框架;
支持XLua,可以完全使用Lua脚本开发(可选)
多平台支持;
高扩展性,面向接口开发;
支持线程和协程的异步结果和异步任务,采用Future/Promise设计模式;
多线程组件和定时执行器;
支持消息系统,订阅和发布事件;
支持对象池
支持Properties的配置文件
可加密的配置文件,支持对象存取,可以自定义对象转换器,支持更多的对象;
本地化支持,支持xml、csv、asset等多种配置方式,支持图片等多媒体资源本地化;
数据绑定支持:
Field绑定,只支持OneTime的模式,因无法支持改变通知;
属性绑定,支持TwoWay双向绑定,值修改自动通知;
普通字典、列表绑定,不支持改变通知;
支持C#事件绑定;
支持Unity3D的EventBase事件绑定;
支持静态类的属性和Field的绑定;
支持方法绑定;
支持命令绑定,通过命令绑定可以方便控制按钮的有效无效状态;
支持可观察属性、字典、列表的绑定,支持改变通知,视图模型修改自动更改UI显示;
支持表达式的绑定;
支持类型转换器,可以将图片名称转换为图集中的Sprite

Game Framework

链接: https://github.com/EllanJiang/GameFramework

框架特点:
全局配置
数据结点
数据表
调试器
下载
实体
事件
有限状态机
本地化
网络
对象池
流程
资源
场景
配置
声音
界面
Web 请求

BDFramework

链接: https://github.com/yimengfan/BDFramework.Core

框架特点:
一键C#热更
一键版本发布
完善的资源管理系统,一套API各平台自动切换
完善的UI工作流:
SQL化表格管理:
发现式业务注册:
模块管理、调度

CatLib

链接: https://github.com/CatLib/CatLib

框架特点:

CatLib是渐进式的框架,可以无缝和现有框架融合。无论您的项目处于哪个阶段您都可以轻易的接入CatLib。
CatLib提供的依赖注入方案,可以极大程度的帮助项目解耦。
CatLib提供了大量可靠,可持续的公共组件,帮助企业降低开发成本。
基于MIT协议,企业可以通过CatLib的组件化方案建立私有的公共组件库,提高项目研发效率和质量。
轻量级的框架,所有的组件都是可以被移除的,您可以只选择适合您的组件。
中文文档完善,极低的学习成本。
面向接口编程,底层组件无感知替换。

KSFramework

链接: https://github.com/mr-kelly/KSFramework

热重载
资源模块
配置表模块
UI模块
脚本模块
多语言模块
Unity编辑器强化

JKFrame

链接:https://github.com/Joker-YF/JKFrame
KFrame2.0设想的是为独立游戏服务的,小团队甚至只有一个人的情况下使用的!

JKFrame2.0比较像是个工具箱,除了UI窗口外的大多情况下,你并不需要继承什么类或接口,而提供的功能也不是非用不可~所以比较接近工具箱
主要功能系统:

对象池系统:重复利用GameObject或普通class实例,并且支持设置对象池容量

事件系统:解耦工具,不需要持有引用来进行函数的调用

资源系统

Resources版本:关联对象池进行资源的加载卸载
Addressables版本:关联对象池进行资源的加载卸载,可结合事件工具做到销毁时自动从Addressables Unload
MonoSystem:为不继承MonoBehaviour的对象提供Update、FixedUpdate、协程等功能

音效系统:背景音乐、背景音乐轮播、特效音乐、音量全局控制等

存档系统:

支持多存档
自动缓存,避免频繁读磁盘
存玩家设置类数据,也就是不关联任何一个存档
支持二进制和Json存档,开发时使用Json调试,上线后使用二进制加密与减少文件体积
日志系统:日志控制、保存等

UI系统:UI窗口的层级管理、Tips功能

配置系统:目前版本较鸡肋

场景系统:对Unity场景加载封装了一层,主要用于监听场景加载进度

其他功能:

状态机:脚本逻辑状态机
事件工具:给物体绑定 碰撞、触发、点击、拖拽、自定义等事件
协程工具:协程避免GC
内置:

Odin插件,方便做一些序列化和调试
JKLog,日志

热更

HybridCLR

旧Huatuo重生为HybridCLR,https://github.com/focus-creative-games/hybridclr。
HybridCLR 是一个特性完整、零成本、高性能、低内存的近乎完美的Unity全平台原生c#热更方案。

ILRuntime

链接: https://github.com/Ourpalm/ILRuntime
ILRuntime项目为基于C#的平台(例如Unity)提供了一个纯C#实现,快速、方便且可靠的IL运行时,使得能够在不支持JIT的硬件环境(如iOS)能够实现代码的热更新

ILRuntime的优势
同市面上的其他热更方案相比,ILRuntime主要有以下优点:

无缝访问C#工程的现成代码,无需额外抽象脚本API
直接使用VS2015进行开发,ILRuntime的解译引擎支持.Net 4.6编译的DLL
执行效率是L#的10-20倍
选择性的CLR绑定使跨域调用更快速,绑定后跨域调用的性能能达到slua的2倍左右(从脚本调用GameObject之类的接口)
支持跨域继承
完整的泛型支持
拥有Visual Studio的调试插件,可以实现真机源码级调试。支持Visual Studio 2015 Update3、Visual Studio 2017、Visual Studio 2019和Visual Studio 2022
支持VS Code源码级调试,支持Mac OSX
最新的2.0版引入的寄存器模式将数学运算性能进行了大幅优化

InjecFix

链接:https://gitee.com/Tencent/InjectFix
InjectFix 是腾讯开源的 Unity 代码逻辑热修复方案,可实现在 Unity 线上客户端内,不用迭代新版本,就能快速修复游戏的线上 bug
Unity代码逻辑热修复
可用于Unity业务的bug修复,支持Unity全系列,全平台。
几个亮点
直接在Unity工程上修改C#即可更新
老项目无需修改原有代码即可使用
每个游戏一份私有补丁格式,安全更有保障文章来源地址https://www.toymoban.com/news/detail-792052.html

到了这里,关于unity客户端开源框架的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【Unity】Socket网络通信(TCP) - 最基础的客户端通信流程

    【Unity】Socket网络通信(TCP) - 最基础的客户端通信流程

    这篇文章主要内容是客户端与服务器通信的内容,服务端代码可以看我的这一篇文章【Unity】Socket网络通信(TCP) - 最基础的C#服务端通信流程 客户端与服务器的整个流程比较相似,客户端会更加简单一些: 创建socket 连接服务器 收发消息 释放socket,关闭连接 和服务端创建

    2024年02月03日
    浏览(7)
  • Flask服务器与客户端基本通信【Unity网络编程(三)】

    Flask服务器与客户端基本通信【Unity网络编程(三)】

    这里先演示基于Python的客户端和服务器的登录实现。 1.Flask服务器端(GET和POST请求接收实现) 1.GET和POST区别:(简单理解) 1.GET因为是读取,就可以对GET请求的数据 做缓存 (浏览器)。不能随意多次执行。POST不能缓存(所以如果重新执行POST请求,浏览器会弹框提示你可能对丢

    2023年04月09日
    浏览(9)
  • Unity进阶–通过PhotonServer实现联网登录注册功能(客户端)–PhotonServer(三)

    Unity进阶–通过PhotonServer实现联网登录注册功能(客户端)–PhotonServer(三)

    单例泛型类 ManagerBase 消息中心 manager下的组件基础 uiManager(绑在canvas上) PhotonManager 搭个页面 panel上挂上脚本 绑定对象,绑定事件

    2024年02月12日
    浏览(8)
  • 韩版传奇 2 源码分析与 Unity 重制(二)客户端启动与交互流程

    该专题将会分析 LOMCN 基于韩版传奇 2,使用 .NET 重写的传奇源码(服务端 + 客户端),分析数据交互、状态管理和客户端渲染等技术,此外笔者还会分享将客户端部分移植到 Unity 和服务端用现代编程语言重写的全过程。 在这一篇文章中,我们将从客户端入手,分析从 TCP 连接

    2024年02月03日
    浏览(36)
  • 基于Unity客户端与服务端实现登录与注册以及多人在线聊天

    1.在Unity下,创建一个GameManager空对象,用于启动客户端连接以及实例化一个登录页面LoginView的Prefab,并将脚本LoginView挂载在上面。 2.创建一个Client类,用于客户端向服务端发起连接请求,并且发送给服务端消息以及接收服务端的响应 3.创建一个脚本LoginView挂载在LoginView对象上

    2024年04月16日
    浏览(9)
  • unity学习(19)——客户端与服务器合力完成注册功能(1)入门准备

    unity学习(19)——客户端与服务器合力完成注册功能(1)入门准备

    逆向服务器用了三天的时间,但此时觉得一切都值,又可以继续学习了。 服务器中登录请求和注册请求由command变量进行区分,上一层的type变量都是login。 从注册入手!视频对应的应该是第七讲。 点击注册按钮,输入账号密码,实测可以在服务器收到编码后的字符串,但此时

    2024年02月21日
    浏览(4)
  • unity学习(22)——客户端与服务器合力完成注册功能(4)数据库化

    unity学习(22)——客户端与服务器合力完成注册功能(4)数据库化

    单纯的账号密码这种非频繁读写,实现起来很简单的,游戏的属性信息到时候也许会比较麻烦。 思路:每次加入有新键值TryAdd,如果加入成功,直接重写账号密码文件即可。 C#JsonConvert.DeserializeObject反序列化与JsonConvert.SerializeObject序列化(一)-CSDN博客 在vs中-项目-NuGet,搜索

    2024年02月19日
    浏览(7)
  • Unity使用webSocket与服务器通信(三)——C#服务端(Fleck)与Unity客户端( NativeWebSocket)传输多种数据数据

    Unity使用webSocket与服务器通信(三)——C#服务端(Fleck)与Unity客户端( NativeWebSocket)传输多种数据数据

    1、字符串数据 简单的字符串:比如登录请求信息,登录结果返回的信息。 用json系列化的字符串:比如上传一个表到服务器,让它写入到数据库中。 读取文件的时候,读取的是string内容。 2、二进制数据 比如传输的是文件:例如myword.doc,myexcel.xls或者是assetboundle文件。 比如

    2023年04月08日
    浏览(10)
  • unity 使用vrtk4的插件 打包htv vive VR客户端包,手柄不生效

    unity 使用vrtk4的插件 打包htv vive VR客户端包,手柄不生效

    背景: 目的:u3d使用vrtk开发pico应用(vrtk是为了到时候无缝衔接后续要买的htc vive pro 2) 先导入了tilia importer(也就是vrtk4.0,根据教程模块化使用功能)和pico官网下的“PICO Unity IntegrationSDK-214-20230302-SupportU3 d2020.3.21-2021.3.21” 到u3d2020.3.47,成功完成pico apk vr包的安装和使用(打安卓

    2024年02月12日
    浏览(8)
  • unity的学习,准备搞一款mmo小游戏,服务器和客户端从零学

    unity的学习,准备搞一款mmo小游戏,服务器和客户端从零学

    先学一下unity,mmo服务器框架到时候在学习一下,暂时服务器简单做一下 如代码所示,简单了解一下。 我个人感觉不要一个放在Awake函数中,一个放在Start中。因为这只适合两个脚本使用,如果多个脚本还是没有办法解决脚本执行的顺序。在这里设置脚本的执行顺序,添加进

    2023年04月21日
    浏览(6)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包