分享

Unity3d 100个开源项目推荐!

 雅藏轩 2023-09-04 发布于河北

热更新

热更新是一种手游及App常用的更新方式,举例来说,游戏上线后,玩家需要通过应用商店及其他渠道下载第一个版本。在运营的过程中,如游戏需要更换UI、修改逻辑、开放功能等,此时若不使用热更新技术,就需要重新打包,那么玩家也就需要通过应用商店或其他渠道重新下载游戏。 热更新可以在不重新下载客户端的情况下,更新游戏的内容。
然而c#是一门编译型语言,其运行之前需要进行编译,而编译的过程在移动平台无法完成,所以当我们游戏的逻辑更改,代码发生变化时,我们就需要重新在开发环境下编译,然后重新打包,让玩家下载最新版本。这个过程中,会下载很多不需要更新的资源,便会增加玩家的时间及流量消耗,造成不好的用户体验。因此在移动平台中便就出现了热更新技术。

Unity在手游平台主要的热更新方式Lua、ILRuntime。其中Lua热门的方案就是Tolua、Xlua及Slua。
Lua热更新主要由三部分组成:
1、C# 与 Lua 的互相调用机制;
2、Lua 文件的打包;
3、网络传输,校验。

tolua:https://github.com/topameng/tolua 

slua:https://github.com/pangweiwei/slua 

xlua:https://github.com/Tencent/xLua 

ILRuntime:https://github.com/Ourpalm/ILRuntime

————————————————

ILRuntime star:2K

Pure C# IL Intepreter Runtime, which is fast and reliable for scripting requirement on enviorments, where jitting isn't possible.

纯C#IL解释器运行时,对于无法进行拼写的环境中的脚本要求,它是快速而可靠的。

 

xLua star:6.4K

xLua is a lua programming solution for C# ( Unity, .Net, Mono) , it supports android, ios, windows, linux, osx, etc.

C#下Lua编程支持

xLua为Unity、 .Net、 Mono等C#环境增加Lua脚本编程的能力,借助xLua,这些Lua代码可以方便的和C#相互调用。

xLua的突破

xLua在功能、性能、易用性都有不少突破,这几方面分别最具代表性的是:

·         可以运行时把C#实现(方法,操作符,属性,事件等等)替换成lua实现;

·         出色的gc优化,自定义struct,枚举在Lua和C#间传递无C# gc alloc;

·         编辑器下无需生成代码,开发更轻量;

slua star:1.2K

Fastest lua binding via static code generating for Unity3D or mono

tolua star:2.4K

The fastest unity lua binding solution

 

【游戏框架】KSFramework star:1.1K

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

https://mr-kelly./KSFramework/

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

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

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

 

KEngine + SLua | XLua | ILRuntime+ Framework = KSFramework

KSFramework是一个整合KEngine、SLua/XLua/ILRuntime 的Unity3D Asset Bundle开发框架,并为程序、美术、策划、运营提供辅助工具集。

ShowCase(商业案例)

showcase 列表:https://github.com/mr-kelly/KSFramework/wiki

《仙剑奇侠传4》手游是大宇授权,西山居研发的官方正版MMORPG手游

新游抢先《仙剑奇侠传4》手游试玩:

https://www.bilibili.com/video/av28372883/

天域幻想

《天域幻想》是一款由西山居“剑侠”团队研发、胜利游戏发行的创新性飞天动作卡牌手游!

巴青传

《巴清传》是一款以春秋战国七雄争霸为背景的3D回合制MMORPG, [1]  由盛大游戏、杭州心光流美联合发行。

《巴清传》将MMO的传统养成玩法、沙盒游戏的全开放自由探索、集换卡牌游戏的策略烧脑、半即时回合制游戏的互动社交、动作游戏的强烈感和平衡竞技等游戏特色进行了融合创新。

少年剑影

KSFramework

热重载是KSFramework的开发重点——在不重启游戏的前提下,重载代码、配置表可立刻看到修改效果,最大限度的提升开发、调试的速度,方便运营阶段热更新。

对于程序人员,可以使用AssetBundle加载与打包、脚本化的UI、配置表代码自动生成、下载更新等基础功能模块,大大减少游戏周边基础功能的工作量;

对于策划人员,使用Excel进行编辑,可以在编辑过程中添加注释、图标、预编译指令,KSFramework会根据配置内容自动生成代码供程序使用。

对于美术人员,只需将项目需要用到资源放到指定目录,将会自动的生成Asset Bundle;程序加载Asset Bundle跟Resources.Load一样方便。

对于运营人员,利用KSFramework的热重载特性,可以针对运营需求,在项目运行过程中配置表、脚本代码在用户无知觉的情况下进行热更新。

ILSpy 

star :12.1k

https://github.com/icsharpcode/ILSpy

NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!

.NET反编译器,支持PDB生成,ReadyToRun,元数据(及更多)-跨平台!

Ml Agents

Unity Machine Learning Agents Toolkit 

Unity机器学习代理工具包

Stars  10.6K

https://github.com/Unity-Technologies/ml-agents/issues

3d Game Shaders For Beginners

Stars 8.1k

A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.

一个循序渐进的指导,实现了SSAO,景深,光照,法线贴图,以及更多

https://github.com/lettier/3d-game-shaders-for-beginners

Xlua

xLua is a lua programming solution for C# ( Unity, .Net, Mono) , it supports android, ios, windows, linux, osx, etc.

xLua是用于C#(Unity,.Net,Mono)的lua编程解决方案,它支持android,ios,windows,linux,osx等。

https://github.com/Tencent/xLua

Assetstudio

AssetStudio is a tool for exploring, extracting and exporting assets and assetbundles.

AssetStudio是一个用于探索、提取和导出资产和资产包的工具

https://github.com/Perfare/AssetStudio

Entitas Csharp

Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity

Entitas是一个超级快速的实体组件系统(ECS)框架,专门为c#和Unity而设计

https://github.com/sschmid/Entitas-CSharp

Unirx

Reactive Extensions for Unity

https://github.com/neuecc/UniRx

Wavefunctioncollapse

Walk through an infinite, procedurally generated city

一个无限的,程序生成的城市

https://github.com/marian42/wavefunctioncollapse

【Flutter 集录指南 App】The unity of flutter, The unity of coder.
https://github.com/toly1994328/FlutterUnit

UIEffect

UIEffect is an effect component for uGUI element in Unity. Let's decorate your UI with effects!

UIEffect是Unity中uGUI元素的一个效果组件。让我们用效果装饰你的UI !

https://github.com/mob-sakai/UIEffect

Game Framework 简介

https://github.com/EllanJiang/GameFramework

Game Framework 是一个基于 Unity 引擎的游戏框架,主要对游戏开发过程中常用模块进行了封装,很大程度地规范开发过程、加快开发速度并保证产品质量。

在最新的 Game Framework 版本中,包含以下 19 个内置模块,后续我们还将开发更多的扩展模块供开发者使用。

  1. 全局配置 (Config) - 存储一些全局的只读的游戏配置,如玩家初始速度、游戏初始音量等。

  2. 数据结点 (Data Node) - 将任意类型的数据以树状结构的形式进行保存,用于管理游戏运行时的各种数据。

  3. 数据表 (Data Table) - 可以将游戏数据以表格(如 Microsoft Excel)的形式进行配置后,使用此模块使用这些数据表。数据表的格式是可以自定义的。

  4. 调试器 (Debugger) - 当游戏在 Unity 编辑器中运行或者以 Development 方式发布运行时,将出现调试器窗口,便于查看运行时日志、调试信息等。用户还可以方便地将自己的功能注册到调试器窗口上并使用。

  5. 下载 (Download) - 提供下载文件的功能,支持断点续传,并可指定允许几个下载器进行同时下载。更新资源时会主动调用此模块。

  6. 实体 (Entity) - 我们将游戏场景中,动态创建的一切物体定义为实体。此模块提供管理实体和实体组的功能,如显示隐藏实体、挂接实体(如挂接武器、坐骑,或者抓起另一个实体)等。实体使用结束后可以不立刻销毁,从而等待下一次重新使用。

  7. 事件 (Event) - 游戏逻辑监听、抛出事件的机制。Game Framework 中的很多模块在完成操作后都会抛出内置事件,监听这些事件将大大解除游戏逻辑之间的耦合。用户也可以定义自己的游戏逻辑事件。

  8. 文件系统 (File System) - 虚拟文件系统使用类似磁盘的概念对零散文件进行集中管理,优化资源加载时产生的内存分配,甚至可以对资源进行局部片段加载,这些都将极大提升资源加载时的性能。

  9. 有限状态机 (FSM) - 提供创建、使用和销毁有限状态机的功能,一些适用于有限状态机机制的游戏逻辑,使用此模块将是一个不错的选择。

  10. 本地化 (Localization) - 提供本地化功能,也就是我们平时所说的多语言。Game Framework 在本地化方面,不但支持文本的本地化,还支持任意资源的本地化,比如游戏中释放烟花特效也可以做出几个多国语言的版本,使得中文版里是“新年好”字样的特效,而英文版里是“Happy New Year”字样的特效。

  11. 网络 (Network) - 提供使用 Socket 长连接的功能,当前我们支持 TCP 协议,同时兼容 IPv4 和 IPv6 两个版本。用户可以同时建立多个连接与多个服务器同时进行通信,比如除了连接常规的游戏服务器,还可以连接语音聊天服务器。如果想接入 ProtoBuf 之类的协议库,只要派生自 Packet 类并实现自己的消息包类即可使用。

  12. 对象池 (Object Pool) - 提供对象缓存池的功能,避免频繁地创建和销毁各种游戏对象,提高游戏性能。除了 Game Framework 自身使用了对象池,用户还可以很方便地创建和管理自己的对象池。

  13. 流程 (Procedure) - 是贯穿游戏运行时整个生命周期的有限状态机。通过流程,将不同的游戏状态进行解耦将是一个非常好的习惯。对于网络游戏,你可能需要如检查资源流程、更新资源流程、检查服务器列表流程、选择服务器流程、登录服务器流程、创建角色流程等流程,而对于单机游戏,你可能需要在游戏选择菜单流程和游戏实际玩法流程之间做切换。如果想增加流程,只要派生自 ProcedureBase 类并实现自己的流程类即可使用。

  14. 资源 (Resource) - 为了保证玩家的体验,我们不推荐再使用同步的方式加载资源,由于 Game Framework 自身使用了一套完整的异步加载资源体系,因此只提供了异步加载资源的接口。不论简单的数据表、本地化字典,还是复杂的实体、场景、界面,我们都将使用异步加载。同时,Game Framework 提供了默认的内存管理策略(当然,你也可以定义自己的内存管理策略)。多数情况下,在使用 GameObject 的过程中,你甚至可以不需要自行进行 Instantiate 或者是 Destroy 操作。

  15. 场景 (Scene) - 提供场景管理的功能,可以同时加载多个场景,也可以随时卸载任何一个场景,从而很容易地实现场景的分部加载。

  16. 配置 (Setting) - 以键值对的形式存储玩家数据,对 UnityEngine.PlayerPrefs 进行封装,也可以将这些数据直接存储在磁盘上。

  17. 声音 (Sound) - 提供管理声音和声音组的功能,用户可以自定义一个声音的音量、是 2D 声音还是 3D 声音,甚至是直接绑定到某个实体上跟随实体移动。

  18. 界面 (UI) - 提供管理界面和界面组的功能,如显示隐藏界面、激活界面、改变界面层级等。不论是 Unity 内置的 uGUI 还是其它类型的 UI 插件(如 NGUI),只要派生自 UIFormLogic 类并实现自己的界面类即可使用。界面使用结束后可以不立刻销毁,从而等待下一次重新使用。

  19. Web 请求 (Web Request) - 提供使用短连接的功能,可以用 Get 或者 Post 方法向服务器发送请求并获取响应数据,可指定允许几个 Web 请求器进行同时请求。

Il2cppdumper

Unity il2cpp reverse engineer

Unity il2cpp逆向工程

https://github.com/Perfare/Il2CppDumper/issues

Tolua

The fastest unity lua binding solution

https://github.com/topameng/tolua

Mathutilities

Mathutilities A collection of some of the neat math and physics tricks that I've collected over the last few years.

这是我在过去几年里收集的一些简洁的数学和物理技巧的集合。

https://github.com/zalo/MathUtilities

https://github.com/pardeike/Harmony

A library for patching, replacing and decorating .NET and Mono methods during runtime

Mirror

 Open Source Unity Networking Library

https://github.com/vis2k/Mirror

Awesome Unity Shader

⛵️ 关于炫酷的Unity3D Shader | About Cool Unity3D Shaders

https://github.com/QianMo/Awesome-Unity-Shader

https://github.com/github-for-unity/Unity

https://github.com/Tencent/behaviac

behaviac是游戏AI的开发框架组件,也是游戏原型的快速设计工具

支持行为树BT,状态机FSM,HTN等多种范式

QFramework

Your first K.I.S.S Unity 3D Framework.

QFramework 简介 Intro

QFramework 是一套 渐进式 的 快速开发 框架。目标是作为无框架经验的公司、独立开发者、以及 Unity3D 初学者们的 第一套框架。框架内部积累了多个项目的在各个技术方向的解决方案。学习成本低,接入成本低,重构成本低,二次开发成本低,文档内容丰富(提供使用方式以及原理、开发文档)、插件丰富。

https://github.com/ColinLeung-NiloCat/UnityURPToonLitShaderExample

A very simple toon lit shader example, for you to learn writing custom lit shader in Unity URP

一个非常简单的卡通灯光着色器的例子,让你学习在Unity URP中编写自定义灯光着色器

Il2cppinspector

Powerful automated tool for reverse engineering Unity IL2CPP binaries

强大的自动化逆向工程工具Unity IL2CPP二进制文件

https://github.com/djkaty/Il2CppInspector

https://github.com/liuhaopen/UnityMMO

UnityMMO

an unity mmo demo, base on ecs(game play), xlua(ui)

很多东西不好在工作项目上尝试(比如 ECS),所以就有了本项目,我打算利用业余时间从头制作一个 3D-MMO 游戏,大部分功能虽然都多少接触过,但我想换个做法,不然就不好玩了.前端的玩法系统用 c#,界面用 lua 开发.后端用 skynet.

https://github.com/imadr/Unity-game-hacking

Unity Game Hacking

A guide for hacking unity games

https://github.com/spr1ngd/UnityCodes

SpringGUI是对UGUI的拓展,提供十多种UI组件用于快速开发。

Gameproject3

https://github.com/ylmbtm/GameProject3

跨平台的多进程游戏服务器框架,网络层分别使用SocketApi, Boost Asio, Libuv三种方式实现, 框架内使用共享内存,无锁队列,对象池,内存池来提高服务器性能。

还有一个不断完善的Unity3D客户端,游戏包含大量完整资源,坐骑,宠物,伙伴,装备, 这些均可上阵和穿戴, 并可进入副本战斗,多人玩法也己实现,持续开发中

https://github.com/EllanJiang/UnityGameFramework

https://github.com/luxkun/ReGoap

Generic C# GOAP (Goal Oriented Action Planning) library with Unity3d examples

通用c# GOAP(面向目标的行动计划)库和Unity3d示例

https://github.com/AsPJT/DungeonTemplateLibrary

Dungeon free resources (terrain & roguelike generation)

地下城资源(地形和roguelike生成)

Texturepanner

This repository hosts a shader for Unity3D whose main goal is to facilitate the creation of neon-like signs, conveyor belts and basically whatever based on scrolling textures

这个库托管了Unity3D的着色器,它的主要目标是促进霓虹灯一样的标志,传送带和基本上基于滚动纹理的任何东西的创建

https://github.com/AdultLink/TexturePanner

Unity3d Rainbow Folders

This asset allows you to set custom icons for any folder in unity project browser.

https://github.com/PhannGor/unity3d-rainbow-folders

这个资源允许你在unity项目浏览器中为任何文件夹设置自定义图标。

https://github.com/radiatoryang/hedera

About paint 3D ivy in the Unity Editor, watch procedurally generated meshes simulate growth and clinging in real-time

在Unity编辑器中绘制3D常春藤,观察程序生成的网格模拟生长和实时依附

https://github.com/JasonXuDeveloper/JEngine

JENGINE v0.6.1

JEngine是针对Unity开发者设计的开箱即用的框架,封装了强大的功能,小白也能快速上手轻松制作可以热更新的游戏

Assetsextractor

『Assets提取工具』是一款OSX平台上用于将Assets.car或xxx.app中打包的png图片、pdf等资源重新提取出来的开发者工具。Assets.car常见于iOS/Mac/Unity等开发中的资源打包。

https://github.com/pcjbird/AssetsExtractor

Socket.io Unity

socket.io client for Unity, power game client with node.js back-end

https://github.com/floatinghotpot/socket.io-unity

https://github.com/Reinisch/Darkest-Dungeon-Unity

Unity的黑暗地牢端口。和原来的几乎完全一样。Android平台:PC /。

https://github.com/mofr/Diablerie

Diablo 2 reimplementation on unity

在unity上重新执行《暗黑破坏神2》

https://github.com/winddyhe/knight

Knight是一个基于Unity引擎的游戏GamePlay框架,提供一些简单易用的游戏框架接口,目的让开发者更加专注于游戏内容的开发。

它包含了一个完整的资源管理模块(打包、下载、加载、版本管理),一个基于ILRuntime的C#热更模块,一个基于MVVM的UI框架(支持热更新)以及其他基础功能的支持。

https://github.com/996icu/996.ICU/blob/master/README_CN.md

https://github.com/996icu/996.ICU/blob/master/blacklist/README.md

https://github.com/keijiro/WfcMaze

https://github.com/yukiarrr/Il2cppSpy

Unity IL2CPP Disassembler (for apk)

Unity IL2CPP反汇编程序(适用于apk)

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

KSFramework是一个整合KEngine、SLua/XLua/ILRuntime 的Unity3D Asset Bundle开发框架,并为程序、美术、策划、运营提供辅助工具集。

KSFramework ShowCase(商业案例)

KSFramework

热重载是KSFramework的开发重点——在不重启游戏的前提下,重载代码、配置表可立刻看到修改效果,最大限度的提升开发、调试的速度,方便运营阶段热更新。

对于程序人员,可以使用AssetBundle加载与打包、脚本化的UI、配置表代码自动生成、下载更新等基础功能模块,大大减少游戏周边基础功能的工作量;

对于策划人员,使用Excel进行编辑,可以在编辑过程中添加注释、图标、预编译指令,KSFramework会根据配置内容自动生成代码供程序使用。

对于美术人员,只需将项目需要用到资源放到指定目录,将会自动的生成Asset Bundle;程序加载Asset Bundle跟Resources.Load一样方便。

对于运营人员,利用KSFramework的热重载特性,可以针对运营需求,在项目运行过程中配置表、脚本代码在用户无知觉的情况下进行热更新。

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

[中]简单!简单!强大的Unity3d游戏工作流程!Unity3d框架:c#热修复(ILRuntime),资产管理器,ui工作流,网络调试…等等

https://github.com/martinhodler/unity-aseprite-importer

https://github.com/huailiang/face-nn

网易的研究者提出了一种游戏角色自动创建方法,利用 Face-to-Parameter 的转换快速创建游戏角色,用户还可以自行基于模型结果再次进行修改,直到得到自己满意的人物。此项目按照论文里的描述建立。

https://github.com/Reinisch/Warcraft-Arena-Unity

World of Warcraft client-server combat system implementation in Unity with Photon Bolt.

魔兽世界客户端-服务器战斗系统的统一使用Photon与 Bolt。

服务器实例和客户端连接Photon Bolt

魔兽世界的玩家控制器和相机

竞技场位置设置,洛丹伦地图

单位帧,动作栏,自定义热键,大厅UI

浮动文本,单位选择圆形投影

基本的本地化和拼写错误通知

咒语,ui和角色声音

法术、投射物和光环的视觉效果

法术,法术效果,光环和光环效果

https://github.com/Justin-sky/Nice-Lua

基于xlua的MVVM框架,支持Addressables, 统一渲染管线等Unity新特性

https://github.com/MEyes/uMVVM

参考文献:https:///projects/unity/unity3d

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多