{"id":13711394,"url":"https://github.com/winddyhe/knight","last_synced_at":"2025-05-06T20:33:09.078Z","repository":{"id":40614180,"uuid":"81402891","full_name":"winddyhe/knight","owner":"winddyhe","description":"Knight is a game framework based on Unity3D engine. It includes a complete assetbundle manager, a c# hotfix module based on ILRuntime, and a UI module based on MVVM, and other basic functions support.","archived":false,"fork":false,"pushed_at":"2020-12-21T07:09:46.000Z","size":272779,"stargazers_count":366,"open_issues_count":2,"forks_count":77,"subscribers_count":28,"default_branch":"master","last_synced_at":"2024-08-03T23:23:30.578Z","etag":null,"topics":["framework","gameplay","hotfix","ilruntime","mvvm","mvvm-databinding","unity","unity-framework","unity3d","unity3d-framework"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/winddyhe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-02-09T03:06:46.000Z","updated_at":"2024-07-19T08:12:49.000Z","dependencies_parsed_at":"2022-08-26T12:33:47.988Z","dependency_job_id":null,"html_url":"https://github.com/winddyhe/knight","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winddyhe%2Fknight","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winddyhe%2Fknight/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winddyhe%2Fknight/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winddyhe%2Fknight/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/winddyhe","download_url":"https://codeload.github.com/winddyhe/knight/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224528410,"owners_count":17326361,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["framework","gameplay","hotfix","ilruntime","mvvm","mvvm-databinding","unity","unity-framework","unity3d","unity3d-framework"],"created_at":"2024-08-02T23:01:07.786Z","updated_at":"2024-11-13T21:31:50.818Z","avatar_url":"https://github.com/winddyhe.png","language":"C#","readme":"# knight\n支持一波996.ICU\n\u003ca href=\"https://996.icu\"\u003e\u003cimg src=\"https://img.shields.io/badge/link-996.icu-red.svg\" alt=\"996.icu\"\u003e\u003c/a\u003e\n\nKnight是一个基于Unity引擎的游戏GamePlay框架，提供一些简单易用的游戏框架接口，目的让开发者更加专注于游戏内容的开发。\n\n它包含了一个完整的资源管理模块（打包、下载、加载、版本管理），一个基于ILRuntime的C#热更模块，一个基于MVVM的UI框架（支持热更新）以及其他基础功能的支持。\n\n本框架将会持续更新，后期会不断修改和完善框架中的内容。目前使用的Unity版本为Unity2019.1.2f1。\n目前Master分支中将所有的模块全部移到Packages里面去了，并使用PackageManager来管理他们，以实现使用时可随时插拔。\n![knight的框架结构](https://github.com/winddyhe/knight/blob/master/Doc/res/images/img_1.png)\n### 更新日志（2019/5/13）\n* 更新Unity版本到Unity2019.1.0f2。\n* UI模块重构，ViewModel可以在UI模块间复用，纯数据信息在全局任意地方通过ViewModelManager访问。\n* UI模块重构，新增DatabindingConvert转换器，可以支持BindOneWay两个不同类型变量之间的转化。\n* UI模块重构，新增DatabindingRelated关联标签，支持ViewModel中一个变量改变了，其关联的其他变量也会随着一起更新到UI中。\n* UI模块重构，通过Mono.Ceil静态注入的方法，让ViewModel不用再手写this.PropChanged了。\n* UI模块重构，UI的资源加载方式变成同步加载，以避免界面闪烁。\n* Tweening模块重构，新增多段式的补间动画类，TweeningAnimator。\n\n### 更新日志（2019/3/31）\n* 框架中所有模块完全解耦，除了Knight.Core模块是必须的公共依赖模块之外，每个模块被分成了单个的Package包，可以自己选择性的使用这些框架模块。\n* ILRuntime更新到最新版本，支持Unity2018.3以上的版本，并且可以断点调试异步逻辑了。\n* 热更新逻辑放在Assets中进行管理，使用Unity自身进行编译并自动生成.bytes的DLL文件，无需另开vs再对热更工程进行手动编译了。\n* Assetbundle资源管理模块，支持Editor完全无需构建Assetbundle操作就可以直接运行游戏。\n* 暂时去掉ET服务器部分，但是客户端网络模块继续保留。\n\n### 运行游戏\n* 运行菜单Tools/Assetbundle/Assetbundle Build命令，构建Assetbundle资源包，如果勾上Tools/Develope Mode和Simulate Mode的话，就可以不用该步骤。\n* 打开Assets/Game/Scene/Game.unity场景，点Play运行游戏Demo。\n\n### 主要功能介绍\n* [框架结构](https://github.com/winddyhe/knight/blob/master/Doc/%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3/%E6%A1%86%E6%9E%B6%E7%BB%93%E6%9E%84.md)\n* [Assetbundle资源模块](https://github.com/winddyhe/knight/blob/master/Doc/%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3/Assetbundle%E8%B5%84%E6%BA%90%E6%A8%A1%E5%9D%97.md)\n* [ILRuntime热更新模块](https://github.com/winddyhe/knight/blob/master/Doc/%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3/ILRuntime%E7%83%AD%E6%9B%B4%E6%96%B0%E6%A8%A1%E5%9D%97.md)\n* [WindJson](https://github.com/winddyhe/knight/blob/master/Doc/%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3/WindJson.md)\n* [WindUI](https://github.com/winddyhe/knight/blob/master/Doc/%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3/WindUI.md)\n* [Coroutine协程模块](https://github.com/winddyhe/knight/blob/master/Doc/%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3/Coroutine%E5%8D%8F%E7%A8%8B%E6%A8%A1%E5%9D%97.md)\n* [服务器集成](https://github.com/winddyhe/knight/blob/master/Doc/%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3/%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%9B%86%E6%88%90.md)\n* [游戏中的配置](https://github.com/winddyhe/knight/blob/master/Doc/%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3/%E6%B8%B8%E6%88%8F%E4%B8%AD%E7%9A%84%E9%85%8D%E7%BD%AE.md)\n\n### 插件(感谢以下插件和框架对knight的底层功能的支持)\n* ILRuntime: 一个使用C#编写的解释运行C# IL代码的库，用来实现热更新机制，地址：https://github.com/Ourpalm/ILRuntime\n* ET: 一个包含了分布式的.Net Core服务器的双端unity游戏框架。knight用到了它的服务器部分。地址：https://github.com/egametang/ET\n* NaughtyAttributes: 一个脚本Inspector UI扩展库，通过Attribute标签来实现的Editor扩展。地址：https://github.com/dbrizov/NaughtyAttributes\n\n### 联系方式\n* Email: hgplan@126.com \n* QQ群: 651543479\n","funding_links":[],"categories":["Frameworks"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinddyhe%2Fknight","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwinddyhe%2Fknight","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinddyhe%2Fknight/lists"}