Compare commits

...

172 Commits

Author SHA1 Message Date
Alex-Rachel
eaccfdad5b #156 初始化资源包支持直接初始化Otherpackage,单机可以这样,热更项目建议修改Procedure
#156 初始化资源包支持直接初始化Otherpackage,单机可以这样,热更项目建议修改Procedure
2025-07-30 23:40:22 +08:00
ALEX
b6fbdf1d22 Merge pull request #171 from Alex-Rachel/obfuz
support Obfuz
2025-07-30 23:14:10 +08:00
Alex-Rachel
e2de2ba994 Define Symbols for obfuz 2025-07-30 23:11:58 +08:00
Alex-Rachel
3b68cb1519 Update BattleMainUI.cs 2025-07-30 23:09:13 +08:00
Alex-Rachel
be12d1024a Update ScriptGenerator.cs 2025-07-30 23:09:03 +08:00
Alex-Rachel
55ffdf4edb Update GameApp.cs 2025-07-30 23:08:45 +08:00
Alex-Rachel
511619cb71 Update obfuz version 2025-07-30 23:00:47 +08:00
ALEX
5b8793de40 Merge pull request #169 from tpxxn/main
fix 打图集工具对有子图的图片只会打第一张子图的问题
2025-07-28 12:18:52 +08:00
tpxxn
9c9079c55b fix 打图集工具对有子图的图片只会打第一张子图的问题 2025-07-28 12:13:25 +08:00
Alex-Rachel
c8482799c5 接入obfuz->3.0 2025-07-26 18:16:16 +08:00
Alex-Rachel
cb86d8868e 接入obfuz->2.0 2025-07-26 08:10:41 +08:00
ALEX
f2c7ff4336 Merge pull request #165 from KMUS1997/patch-1
Update LauncherMgr.cs
2025-07-10 13:09:51 +08:00
KMUS1997
c18cdacdbb Update LauncherMgr.cs
// 解决秘之Bug,如果你旋转了UI相机会导致 界面也跟着旋转
2025-07-09 23:56:58 +08:00
Alex-Rachel
b18298cbd9 Update Hybridclr 7.6.0->8.3.0 2025-07-08 23:04:21 +08:00
Alex-Rachel
86b1ff5d7b Update YooAsset 2.3.8 -> 2.3.12 2025-07-08 23:02:24 +08:00
Alex-Rachel
71eb698038 Debugger Add ObjectPoolInfomationWindow 2025-07-07 19:33:52 +08:00
Alex-Rachel
57c08d4e92 Update ReleaseTools.cs 2025-07-07 12:05:07 +08:00
ALEX
45f5bf3dc7 Merge pull request #164 from Eatjune/Local
Update SceneModule.cs
2025-07-02 23:22:03 +08:00
Eatjune
7a86b80c2b Update SceneModule.cs
修复无法异步加载 挂起的场景
2025-07-02 20:12:26 +08:00
ALEX
07fb31cc1c Merge pull request #163 from XiaoBojun/TE_EGamePlay
Tween:新增MaterialColor
2025-06-28 00:17:09 +08:00
xiaobo
4a1f2b52f6 Tween:新增MaterialColor 2025-06-26 14:23:14 +08:00
Alex-Rachel
aee8a4a3dc Update GameEvent.cs 2025-06-18 23:20:04 +08:00
ALEX
7621ba4b4a Merge pull request #162 from XiaoBojun/main
一键打包ab包新增,UpdateSetting新增
2025-06-16 13:02:05 +08:00
xiaobo
53e16dc1ff Aot补充UnityEngine.CoreModule.dll 2025-06-16 12:47:48 +08:00
xiaobo
e26a2937a7 1:一键打包ab包:新增快捷键,暂定f8。自动生成dll,打包资源,自动将项目的StreamingAssets复制到打包后的StreamingAssets文件夹下
2:UpdateSetting
(1)新增webgl设置,选择访问远程还是StreamingAssets
(2)构建资源设置:是否自动复制资源包到打包地址;打包地址如:../../Builds/Unity_Data/StreamingAssets,支持绝对路径和相对路径
2025-06-16 11:39:50 +08:00
ALEX
e7344db57d Merge pull request #160 from SaberArtoriaFan/main
[Fix] 修复namespace 缺失
2025-06-11 18:46:20 +08:00
Saber
8ab792b778 [Fix] 修复namespace 缺失 2025-06-11 17:35:15 +08:00
ALEX
d6917f28b7 Merge pull request #159 from tpxxn/main
SetSpriteExtension 回调
2025-06-11 16:29:16 +08:00
tpxxn
9aef4d4081 SetSpriteExtension 回调 2025-06-11 11:16:25 +08:00
Alex-Rachel
7d1de6e9a3 Update AssetsReference.cs 2025-06-05 16:07:38 +08:00
ALEX
9e0e762a39 Merge pull request #158 from liang530/main
AssetsReference的自动销毁计数处理完善,兼容unity Instantiate和不可见对象
2025-06-05 16:06:11 +08:00
liang
ad2bde9259 AssetsReference的自动销毁计数处理完善,兼容unity Instantiate和不可见对象 2025-06-05 15:30:44 +08:00
Alex-Rachel
cb8f15ad88 #157 AssetsReference的自动销毁计数处理
#157 AssetsReference的自动销毁计数处理
2025-06-05 11:13:21 +08:00
ALEX
b4639fcbdc Update README.md 2025-06-03 11:11:08 +08:00
Alex-Rachel
cc9002fe9a F10快捷键 TEngine/查找资产引用
F10快捷键 TEngine/查找资产引用
2025-05-26 19:24:33 +08:00
ALEX
e64926a66a Merge pull request #155 from Molth/main
添加引用分析
2025-05-26 19:16:57 +08:00
Molth Nevin
32c1edd0a5 添加引用分析 2025-05-26 15:07:50 +08:00
ALEX
c6f1508e84 Merge pull request #154 from XiaoBojun/main
toolbar拓展布局自适应优化,以及场景切换分组:初始场景、默认包、其他场景。
2025-05-26 14:10:33 +08:00
XiaoBojun
1f129118a7 toolbar拓展布局自适应优化,以及场景切换分组:初始场景、默认包、其他场景。 2025-05-26 12:16:46 +08:00
ALEX
6dac7b44a6 Update README.md 2025-05-25 23:37:25 +08:00
ALEX
2e8d181bed Update README.md 2025-05-25 23:36:56 +08:00
Alex-Rachel
b42daa035e Update AssetsReference.cs 2025-05-20 18:00:49 +08:00
Alex-Rachel
e7b07dfea2 AssetsReference支持Unity实例化接口GameObject.Instantiate
AssetsReference支持Unity实例化接口GameObject.Instantiate
2025-05-20 12:54:15 +08:00
ALEX
62c05e7c2b Merge pull request #149 from 6ag/main
移除luban生成脚本在Mac环境中的无效命令
2025-05-19 22:46:52 +08:00
feng
4c4a882b21 移除luban生成脚本在Mac环境中的无效命令 2025-05-19 22:40:28 +08:00
Alex-Rachel
58d7847079 Update TEngine.Runtime.asmdef 2025-05-16 23:33:32 +08:00
Alex-Rachel
724f52bbab Update TEngine.Runtime.asmdef 2025-05-16 23:24:36 +08:00
Alex-Rachel
0b409436a0 一键打包需要支持SBP构建内置着色器资源包
一键打包需要支持SBP构建内置着色器资源包
2025-05-13 12:36:58 +08:00
Alex-Rachel
cc799ce426 Update YooAsset
Update YooAsset
2025-05-10 20:58:24 +08:00
Alex-Rachel
35a9729930 Update SceneSwitcher.cs.meta 2025-05-10 20:55:29 +08:00
Alex-Rachel
0e34c99398 Remove
Remove
2025-05-10 19:25:59 +08:00
Alex-Rachel
240da47fc3 移除LoadSubAssetsSync 2025-05-10 19:25:26 +08:00
ALEX
04109a43b6 Merge pull request #148 from tpxxn/main
fix ExternalTypeUtil namespace
2025-05-09 14:15:44 +08:00
tpxxn
bc82685ec7 fix ExternalTypeUtil namespace 2025-05-09 13:51:47 +08:00
Alex-Rachel
1894cd4d72 Extension for LoadSubSprite
Extension for LoadSubSprite
2025-05-07 12:53:27 +08:00
ALEX
4c903e8da5 Merge pull request #147 from tpxxn/main
refactor AtlasMakerEditor & luban gen code code.lineEnding=crlf &  luban Vector ExternalTypeUtil
2025-05-06 17:22:30 +08:00
tpxxn
03aabf6b08 luban Vector ExternalTypeUtil 2025-05-06 14:15:20 +08:00
tpxxn
c1d9fe5ca7 luban gen code code.lineEnding=crlf 2025-05-06 14:02:24 +08:00
tpxxn
122b5b27ad refactor AtlasMakerEditor 2025-05-06 13:58:02 +08:00
ALEX
9a8de43e95 Merge pull request #145 from lvshiling/main
Fix currentPath DirectorySeparatorChar
2025-05-03 12:13:31 +08:00
lvshiling
06d826d4b2 Fix currentPath DirectorySeparatorChar 2025-04-30 11:42:38 +08:00
ALEX
afd0c6a24e Merge pull request #143 from 6ag/main
修正UIWindow中用于记录UI隐藏的IsHide字段在HideUI时赋值又被覆盖的问题
2025-04-28 18:39:21 +08:00
ALEX
7f9dddaec0 Merge pull request #144 from tpxxn/main
fix GenerateAtlas -> LoadValidSprites
2025-04-28 18:39:09 +08:00
tpxxn
d97538481e fix GenerateAtlas -> LoadValidSprites 2025-04-28 16:14:05 +08:00
feng
c72ef8e197 修正UIWindow中用于记录UI隐藏的IsHide字段在HideUI时赋值又被覆盖的问题 2025-04-28 09:14:14 +08:00
ALEX
7c9393051c Merge pull request #142 from Vorik-S/main
UIModule关闭的倒计时应该先进行判断原计时器是否销毁,避免多次Hide导致计时器多次添加
2025-04-27 17:29:09 +08:00
沈挺
e4c3247546 UIModule关闭的倒计时应该先进行判断原计时器是否销毁,避免多次Hide导致计时器多次添加 2025-04-27 14:08:15 +08:00
Alex-Rachel
6e9d23b2dc WEBGL下的文件系统初始化修正 2025-04-22 16:43:06 +08:00
Alex-Rachel
eae827a600 WEBGL下的remoteServices初始化修正(资源路径走HostServer)
WEBGL下的remoteServices初始化修正(资源路径走HostServer)
2025-04-22 14:25:31 +08:00
Alex-Rachel
f916adb71b 更新YooAsset 2.3.7 -> 2.3.8
更新YooAsset 2.3.7 -> 2.3.8
2025-04-18 00:16:29 +08:00
Alex-Rachel
227283864f 更新YooAsset 2.3.3 -> 2.3.7 优化YooAsset.RuntimeExtension以及YooAsset.EditorExtension目录结构
更新YooAsset 2.3.3 -> 2.3.7 优化YooAsset.RuntimeExtension以及YooAsset.EditorExtension目录结构
2025-04-17 12:59:23 +08:00
Alex-Rachel
32418326b1 Update ProcedureInitResources.cs 2025-03-28 17:43:17 +08:00
Alex-Rachel
6570f87074 Create SceneSwitcher.cs.meta 2025-03-26 21:10:45 +08:00
ALEX
81b00ae913 Merge pull request #135 from XiaoBojun/main
修改工具栏切换场景布局
2025-03-26 20:58:56 +08:00
XiaoBojun
322aaa0a46 Merge branch 'main' of https://github.com/XiaoBojun/TEngine
# Conflicts:
#	UnityProject/Assets/Editor/ToolbarExtender/Custom/SceneSwitcher/Editor/SceneSwitcher.cs   resolved by main version
2025-03-26 00:30:17 +08:00
XiaoBojun
8f5b1b2117 修改工具栏切换场景布局 2025-03-26 00:23:18 +08:00
Alex-Rachel
54a4c55f3c Remove SceneSwitcher 2025-03-25 23:40:10 +08:00
Alex-Rachel
e37c066f9f 简化流程,支持非强制更新,移除冗余UpdateMainFest与UpdateVersion的流程,因为Yoo统一了编辑器单机和联网的流程了。
简化流程,支持非强制更新,移除冗余UpdateMainFest与UpdateVersion的流程,因为Yoo统一了编辑器单机和联网的流程了。
2025-03-25 19:10:39 +08:00
Alex-Rachel
b1d06ecef5 Update Singleton.cs 2025-03-25 19:09:01 +08:00
Alex-Rachel
27ce7e8ecc Update UpdateSettingEditor.cs 2025-03-25 16:39:14 +08:00
Alex-Rachel
8b715ffc8e 新增Setting面板设置
新增Setting面板设置
2025-03-24 19:11:51 +08:00
Alex-Rachel
e8fa910f1f Main logic assembly missing Tips. 2025-03-24 18:49:42 +08:00
Alex-Rachel
3b3bc7822a Update SceneModule.cs 2025-03-24 17:28:22 +08:00
Alex-Rachel
3c662e489e UpdateSetting Editor不限定路径
UpdateSetting Editor不限定路径
2025-03-24 09:26:26 +08:00
Alex-Rachel
5cebc82ba1 TweenHelper
TweenHelper
2025-03-23 21:06:05 +08:00
Alex-Rachel
5cb72e0b08 Update ResourceExtComponent.Resource.cs 2025-03-23 12:36:41 +08:00
Alex-Rachel
500e012f2e Update TEngine.Runtime.asmdef 2025-03-23 01:08:39 +08:00
Alex-Rachel
82332ba5b4 Utility.Unity.FindObjectOfType 2025-03-23 00:26:33 +08:00
Alex-Rachel
55a6ab1ffb Update Utility.Tween.cs 2025-03-23 00:18:04 +08:00
Alex-Rachel
24313b61ab Utility.Unity Unity6下过时API修正 2025-03-21 20:26:24 +08:00
Alex-Rachel
876b36b3b9 LocalizationTools支持Unity6
LocalizationTools支持Unity6
2025-03-21 20:26:03 +08:00
Alex-Rachel
2a62a1f320 AOT补充元数据默认增加UniTask与YooAsset 2025-03-21 13:20:04 +08:00
Alex-Rachel
b6e6c1c423 AOT补充元数据默认增加UniTask与YooAsset
AOT补充元数据默认增加UniTask与YooAsset
2025-03-21 13:19:27 +08:00
Alex-Rachel
230f6a0be5 Update UpdateSettingEditor.cs 2025-03-21 13:18:56 +08:00
Alex-Rachel
25ca5f3f2b Update BuildDLLCommand.cs 2025-03-21 13:18:51 +08:00
Alex-Rachel
66c5a41be5 增加ENABLE_HYBRIDCLR的宏支持
增加ENABLE_HYBRIDCLR的宏支持
2025-03-21 10:26:12 +08:00
ALEX
61ba472346 Merge pull request #130 from Wkeasy/main
添加重启流程接口
2025-03-21 00:07:49 +08:00
Alex-Rachel
9ce4fb9d88 默认不校验CRC,CRC影响AB加载的速度 2025-03-20 15:12:19 +08:00
Wkeasy
e405236d4d 添加重启流程接口 2025-03-20 14:54:15 +08:00
Alex-Rachel
2e27941755 同步GameApp、Procedure里简化IUpdateDriver的调用 2025-03-20 11:53:35 +08:00
Alex-Rachel
14bbb993f8 YooAsset Extension程序集 因为MIniGame的FileSystem是写死了这个程序集
YooAsset Extension程序集 因为MIniGame的FileSystem是写死了这个程序集
2025-03-20 10:29:49 +08:00
ALEX
0ba9d1a8b7 Merge pull request #129 from 6ag/main
UI脚本生成,区分UIWidget和UIWindow
2025-03-20 00:06:31 +08:00
feng
2818edb575 UI脚本生成,区分UIWidget和UIWindow 2025-03-19 22:04:10 +08:00
Alex-Rachel
5210c1d36b ToolbarExtender
ToolbarExtender
2025-03-19 21:12:28 +08:00
Alex-Rachel
cdc7a8f688 Update SourceGenerator 忽略除了默认程序集的生成
Update SourceGenerator 忽略除了默认程序集的生成
2025-03-19 20:18:09 +08:00
Alex-Rachel
c20f8285d8 Update ResourceModule.Services.cs 2025-03-19 12:55:52 +08:00
Alex-Rachel
f2a63978da 增加MiniGameFileSystem的支持,增加EncryptType的解密枚举类型,以及ResourceModule解密方法实现
增加MiniGameFileSystem的支持,增加EncryptType的解密枚举类型,以及ResourceModule解密方法实现
2025-03-19 12:40:13 +08:00
Alex-Rachel
36db2f3aba 增加UnLoadAsync, 调整LoadSceneAsync的命名,增加_handlingScene当前正在处理的Scene保护
增加UnLoadAsync, 调整LoadSceneAsync的命名,增加_handlingScene当前正在处理的Scene保护
2025-03-19 09:30:27 +08:00
Alex-Rachel
61b2baeaf7 LocalizationUtility 命名规范 2025-03-18 22:34:43 +08:00
ALEX
7aab91215c Merge pull request #128 from 6ag/main
脚本自动生成增加Toggle
2025-03-18 19:31:55 +08:00
feng
4ae417337b 脚本自动生成增加Toggle 2025-03-18 18:56:37 +08:00
Alex-Rachel
52ac77d5e4 SceneModule增加UniTask的LoadScene方法 2025-03-18 14:39:08 +08:00
Alex-Rachel
515d55e19a Update UpdateSettingEditor.cs 2025-03-18 14:37:24 +08:00
Alex-Rachel
a4221e36f8 HotUpdateAssemblies 剔除.dll后缀
HotUpdateAssemblies 剔除.dll后缀
2025-03-18 13:46:32 +08:00
Alex-Rachel
58cecd2071 Update UpdateSettingEditor.cs 2025-03-18 00:36:34 +08:00
Alex-Rachel
81a794cff3 Update Utility.Http.cs 2025-03-18 00:24:54 +08:00
Alex-Rachel
5e6d98764c Update GameModule.cs 2025-03-18 00:21:56 +08:00
Alex-Rachel
385de69cb9 规范化LocalizationModule 2025-03-18 00:20:44 +08:00
Alex-Rachel
b68a5a84b9 自动同步UpdateSetting到HybridCLRSetting 2025-03-17 18:51:52 +08:00
Alex-Rachel
8ede4c7faa 增加DisStripCode防止裁剪组件 2025-03-17 18:28:26 +08:00
Alex-Rachel
f4d89bb420 EmitHelper动态方法不支持IL2CPP 2025-03-17 17:31:42 +08:00
Alex-Rachel
202df9ff62 GetUIAsyncAwait CancellationToken nullable 2025-03-17 14:11:11 +08:00
Alex-Rachel
e4989425e8 优化Activator.CreateInstance, 已知类型优先使用new 代替反射,其次使用EmitHelper。耗时对比:直接new 1,EmitHelper 3, Activator 10。 2025-03-17 12:01:25 +08:00
ALEX
a7b6d6f478 Merge pull request #126 from tpxxn/main
ShellHelper 在 Unity 输出 Log
2025-03-17 02:51:52 +08:00
tpxxn
db3fd11cb2 ShellHelper 在 Unity 输出 Log 2025-03-17 00:23:27 +08:00
Alex-Rachel
a2fe29af24 GameApp #pragma warning disable CS0436 2025-03-16 23:47:28 +08:00
Alex-Rachel
bf92b4d568 GameApp #pragma warning disable CS0436 2025-03-16 23:46:33 +08:00
Alex-Rachel
b060057c36 合理化目录结构,UIScriptGenerator、AssetBundleCollector挪到Assets/Editor目录下方便用户自行修改。 2025-03-16 18:41:49 +08:00
Alex-Rachel
9bffcce30e UIScriptGenerator 2025-03-15 00:42:23 +08:00
Alex-Rachel
be3b6eb8f2 newtonsoftJson 2025-03-14 23:41:13 +08:00
ALEX
a61d8bd668 Merge pull request #125 from yuliuren/main
Atlas工具增加2021版本支持
2025-03-14 20:16:50 +08:00
陈思海
fae2afd3c8 Atlas工具增加2021版本支持
目前支持2021.x  ~ 6000.x
2025-03-14 19:56:05 +08:00
ALEX
a309cd2f98 Merge pull request #124 from yuliuren/main
新增Altas图集编辑器
2025-03-14 16:15:26 +08:00
陈思海
3dc478c509 modify
修改初次报错
2025-03-14 16:00:05 +08:00
陈思海
c728dc4c0f 新增Altas图集编辑器
增加可视化定制化的路径配置
增加图集冗余机制判断 自动更新自动移除冗余依赖图集
增加各平台打包图集设定
增加V2和v1图集切换打包 ps:新旧想用哪个都行
2025-03-14 15:52:23 +08:00
Alex-Rachel
e9d6c27006 ShowUIAsyncAwait 2025-03-13 19:46:14 +08:00
Alex-Rachel
33bdcbd913 Update SpritePostprocessor.cs 2025-03-13 10:30:16 +08:00
Alex-Rachel
ac236e4b6a Merge branch 'main' of https://github.com/Alex-Rachel/TEngine 2025-03-13 10:27:22 +08:00
Alex-Rachel
d6f5e65ab4 规范化protected的Fields 命名规范。
protected一定程度上与private类似,外部无法访问。
2025-03-13 10:27:16 +08:00
ALEX
95412017e3 Merge pull request #122 from 6ag/main
SpritePostprocessor回退,已注释新版内容
2025-03-12 20:59:04 +08:00
feng
07f02acb1e 整理SpritePostprocessor图集打包脚本 2025-03-12 20:57:42 +08:00
feng
c03170e860 SpritePostprocessor回退,已注释新版内容 2025-03-12 20:52:03 +08:00
Alex-Rachel
aa5dc9dcb4 Update GameEntry.cs 2025-03-12 18:46:08 +08:00
ALEX
53665f669c Merge pull request #120 from 6ag/main
修复Image/SpriteRenderer设置Sprite时,类型转换错误
2025-03-12 17:34:52 +08:00
feng
91403615bc 修复Image/SpriteRenderer设置Sprite时,类型转换错误 2025-03-12 17:32:37 +08:00
ALEX
77b2fdceb8 Merge pull request #119 from 6ag/main
给UIModule中UI摄像机赋值
2025-03-12 16:50:05 +08:00
feng
7b7b14a8c3 给UIModule中UI摄像机赋值 2025-03-12 16:39:44 +08:00
ALEX
c7f3511bd3 Merge pull request #118 from 6ag/main
设置图片支持CancellationToken取消
2025-03-12 14:32:01 +08:00
Alex-Rachel
e089aead36 Update ProcedureInitResources.cs 2025-03-12 14:31:21 +08:00
feng
d169b62fc5 设置图片支持CancellationToken取消 2025-03-12 14:26:38 +08:00
Alex-Rachel
ab10c587f8 Fixed AudioSetting.asset 2025-03-12 13:18:38 +08:00
Alex-Rachel
bbeecb2855 LanguageModule And Procedure InitLanguage 2025-03-12 13:18:21 +08:00
Alex-Rachel
39c9d327a1 Update BattleMainUI.prefab 2025-03-12 13:17:06 +08:00
Alex-Rachel
50c72fb341 Update README.md 2025-03-12 12:13:58 +08:00
Alex-Rachel
b0c357bba2 Change the TestEvent 2025-03-12 12:13:51 +08:00
Alex-Rachel
6a1ea3d9b8 Update UpdateSetting.cs 2025-03-12 12:13:31 +08:00
Alex-Rachel
6a6caebcff Update GameEvent.cs 2025-03-12 12:13:21 +08:00
Alex-Rachel
e3bf57f485 Update ResourceModule.cs 2025-03-12 12:13:05 +08:00
Alex-Rachel
77d07e175a LubanTools支持 2025-03-12 11:40:05 +08:00
Alex-Rachel
106d90da4d 整理Attribute CodeStype 2025-03-10 00:20:22 +08:00
ALEX
dd471eed08 Merge pull request #116 from tpxxn/main
const 变量名
2025-03-09 08:18:25 +08:00
tpxxn
f32e5e79a3 const 变量名 2025-03-09 02:33:14 +08:00
Alex-Rachel
4c325f7ca6 Update MainScene 2025-03-08 22:51:28 +08:00
Alex-Rachel
d11b6e628e Update HostMode Procedure 2025-03-08 21:21:25 +08:00
Alex-Rachel
5e568b203b HybridCLR BuildDLLCommond 2025-03-08 21:03:18 +08:00
Alex-Rachel
5bb168a958 Rmv 2025-03-08 19:44:33 +08:00
Alex-Rachel
6cf5aa46c1 统一命名规范private变量_filedInfo 2025-03-08 19:44:06 +08:00
Alex-Rachel
9b72cbcb7c ProjectSettings 2025-03-08 18:38:40 +08:00
Alex-Rachel
32fbb971e7 Utility.Http 2025-03-08 14:18:35 +08:00
Alex-Rachel
d6d2f66902 Utility.PlayerPref 2025-03-08 14:05:41 +08:00
Alex-Rachel
4a1876897c Utility.Unity 2025-03-08 13:46:35 +08:00
Alex-Rachel
551727687f TEngine 6 2025-03-07 23:09:46 +08:00
2398 changed files with 88764 additions and 76642 deletions

View File

@@ -1,5 +1,4 @@
using Luban;
using GameBase;
using GameConfig;
using TEngine;
using UnityEngine;
@@ -7,8 +6,12 @@ using UnityEngine;
/// <summary>
/// 配置加载器。
/// </summary>
public class ConfigSystem : Singleton<ConfigSystem>
public class ConfigSystem
{
private static ConfigSystem _instance;
public static ConfigSystem Instance => _instance ??= new ConfigSystem();
private bool _init = false;
private Tables _tables;
@@ -25,6 +28,8 @@ public class ConfigSystem : Singleton<ConfigSystem>
return _tables;
}
}
private IResourceModule _resourceModule;
/// <summary>
/// 加载配置。
@@ -42,9 +47,12 @@ public class ConfigSystem : Singleton<ConfigSystem>
/// <returns>ByteBuf</returns>
private ByteBuf LoadByteBuf(string file)
{
TextAsset textAsset = GameModule.Resource.LoadAsset<TextAsset>(file);
if (_resourceModule == null)
{
_resourceModule = ModuleSystem.GetModule<IResourceModule>();
}
TextAsset textAsset = _resourceModule.LoadAsset<TextAsset>(file);
byte[] bytes = textAsset.bytes;
GameModule.Resource.UnloadAsset(textAsset);
return new ByteBuf(bytes);
}
}

View File

@@ -0,0 +1,29 @@
using UnityEngine;
public static class ExternalTypeUtil
{
public static Vector2 NewVector2(GameConfig.vector2 v)
{
return new Vector2(v.X, v.Y);
}
public static Vector3 NewVector3(GameConfig.vector3 v)
{
return new Vector3(v.X, v.Y, v.Z);
}
public static Vector4 NewVector4(GameConfig.vector4 v)
{
return new Vector4(v.X, v.Y, v.Z, v.W);
}
public static Vector2Int NewVector2Int(GameConfig.vector2int v)
{
return new Vector2Int(v.X, v.Y);
}
public static Vector3Int NewVector3Int(GameConfig.vector3int v)
{
return new Vector3Int(v.X, v.Y, v.Z);
}
}

View File

@@ -1,17 +1,46 @@
<module name="">
<bean name="vector2" valueType="1" sep=",">
<var name="x" type="float"/>
<var name="y" type="float"/>
<var name="x" type="float" />
<var name="y" type="float" />
<mapper target="client" codeTarget="cs-bin,cs-simple-json,cs-newtonsoft-json">
<option name="type" value="UnityEngine.Vector2" />
<option name="constructor" value="ExternalTypeUtil.NewVector2" />
</mapper>
</bean>
<bean name="vector3" valueType="1" sep=",">
<var name="x" type="float"/>
<var name="y" type="float"/>
<var name="z" type="float"/>
<var name="x" type="float" />
<var name="y" type="float" />
<var name="z" type="float" />
<mapper target="client" codeTarget="cs-bin,cs-simple-json,cs-newtonsoft-json">
<option name="type" value="UnityEngine.Vector3" />
<option name="constructor" value="ExternalTypeUtil.NewVector3" />
</mapper>
</bean>
<bean name="vector4" valueType="1" sep=",">
<var name="x" type="float"/>
<var name="y" type="float"/>
<var name="z" type="float"/>
<var name="w" type="float"/>
<var name="x" type="float" />
<var name="y" type="float" />
<var name="z" type="float" />
<var name="w" type="float" />
<mapper target="client" codeTarget="cs-bin,cs-simple-json,cs-newtonsoft-json">
<option name="type" value="UnityEngine.Vector4" />
<option name="constructor" value="ExternalTypeUtil.NewVector4" />
</mapper>
</bean>
<bean name="vector2int" valueType="1" sep=",">
<var name="x" type="int" />
<var name="y" type="int" />
<mapper target="client" codeTarget="cs-bin,cs-simple-json,cs-newtonsoft-json">
<option name="type" value="UnityEngine.Vector2Int" />
<option name="constructor" value="ExternalTypeUtil.NewVector2Int" />
</mapper>
</bean>
<bean name="vector3int" valueType="1" sep=",">
<var name="x" type="int" />
<var name="y" type="int" />
<var name="z" type="int" />
<mapper target="client" codeTarget="cs-bin,cs-simple-json,cs-newtonsoft-json">
<option name="type" value="UnityEngine.Vector3" />
<option name="constructor" value="ExternalTypeUtil.NewVector3" />
</mapper>
</bean>
</module>

View File

@@ -8,12 +8,14 @@ set DATA_OUTPATH=%WORKSPACE%/UnityProject/Assets/AssetRaw/Configs/bytes/
set CODE_OUTPATH=%WORKSPACE%/UnityProject/Assets/GameScripts/HotFix/GameProto/GameConfig/
xcopy /s /e /i /y "%CONF_ROOT%\CustomTemplate\ConfigSystem.cs" "%WORKSPACE%\UnityProject\Assets\GameScripts\HotFix\GameProto\ConfigSystem.cs"
xcopy /s /e /i /y "%CONF_ROOT%\CustomTemplate\ExternalTypeUtil.cs" "%WORKSPACE%\UnityProject\Assets\GameScripts\HotFix\GameProto\ExternalTypeUtil.cs"
dotnet %LUBAN_DLL% ^
-t client ^
-c cs-bin ^
-d bin^
--conf %CONF_ROOT%\luban.conf ^
-x code.lineEnding=crlf ^
-x outputCodeDir=%CODE_OUTPATH% ^
-x outputDataDir=%DATA_OUTPATH%
pause

View File

@@ -11,14 +11,14 @@ export CODE_OUTPATH="${WORKSPACE}/UnityProject/Assets/GameScripts/HotFix/GamePro
cp -R "${CONF_ROOT}/CustomTemplate/ConfigSystem.cs" \
"${WORKSPACE}/UnityProject/Assets/GameScripts/HotFix/GameProto/ConfigSystem.cs"
cp -R "${CONF_ROOT}/CustomTemplate/ExternalTypeUtil.cs" \
"${WORKSPACE}/UnityProject/Assets/GameScripts/HotFix/GameProto/ExternalTypeUtil.cs"
dotnet "${LUBAN_DLL}" \
-t client \
-c cs-bin \
-d bin \
--conf "${CONF_ROOT}/luban.conf" \
-x code.lineEnding=crlf \
-x outputCodeDir="${CODE_OUTPATH}" \
-x outputDataDir="${DATA_OUTPATH}"
echo "操作完成,按任意键退出..."
read -k1

View File

@@ -8,6 +8,7 @@ set DATA_OUTPATH=%WORKSPACE%/UnityProject/Assets/AssetRaw/Configs/bytes/
set CODE_OUTPATH=%WORKSPACE%/UnityProject/Assets/GameScripts/HotFix/GameProto/GameConfig/
xcopy /s /e /i /y "%CONF_ROOT%\CustomTemplate\ConfigSystem.cs" "%WORKSPACE%\UnityProject\Assets\GameScripts\HotFix\GameProto\ConfigSystem.cs"
xcopy /s /e /i /y "%CONF_ROOT%\CustomTemplate\ExternalTypeUtil.cs" "%WORKSPACE%\UnityProject\Assets\GameScripts\HotFix\GameProto\ExternalTypeUtil.cs"
dotnet %LUBAN_DLL% ^
-t client ^
@@ -15,6 +16,7 @@ dotnet %LUBAN_DLL% ^
-d bin^
--conf %CONF_ROOT%\luban.conf ^
--customTemplateDir %CONF_ROOT%\CustomTemplate\CustomTemplate_Client_LazyLoad ^
-x code.lineEnding=crlf ^
-x outputCodeDir=%CODE_OUTPATH% ^
-x outputDataDir=%DATA_OUTPATH%
pause

View File

@@ -11,6 +11,8 @@ export CODE_OUTPATH="${WORKSPACE}/UnityProject/Assets/GameScripts/HotFix/GamePro
cp -R "${CONF_ROOT}/CustomTemplate/ConfigSystem.cs" \
"${WORKSPACE}/UnityProject/Assets/GameScripts/HotFix/GameProto/ConfigSystem.cs"
cp -R "${CONF_ROOT}/CustomTemplate/ExternalTypeUtil.cs" \
"${WORKSPACE}/UnityProject/Assets/GameScripts/HotFix/GameProto/ExternalTypeUtil.cs"
dotnet "${LUBAN_DLL}" \
-t client \
@@ -18,8 +20,6 @@ dotnet "${LUBAN_DLL}" \
-d bin \
--conf "${CONF_ROOT}/luban.conf" \
--customTemplateDir "${CONF_ROOT}/CustomTemplate/CustomTemplate_Client_LazyLoad" \
-x code.lineEnding=crlf \
-x outputCodeDir="${CODE_OUTPATH}" \
-x outputDataDir="${DATA_OUTPATH}"
echo "操作完成,按任意键退出..."
read -k1

View File

@@ -12,6 +12,7 @@ dotnet %LUBAN_DLL% ^
-c cs-bin ^
-d bin^
--conf %CONF_ROOT%\luban.conf ^
-x code.lineEnding=crlf ^
-x outputCodeDir=%CODE_OUTPATH% ^
-x outputDataDir=%DATA_OUTPATH%
pause

View File

@@ -14,8 +14,6 @@ dotnet "${LUBAN_DLL}" \
-c cs-bin \
-d bin \
--conf "${CONF_ROOT}/luban.conf" \
-x code.lineEnding=crlf \
-x outputCodeDir="${CODE_OUTPATH}" \
-x outputDataDir="${DATA_OUTPATH}"
echo "操作完成,按任意键退出..."
read -k1

View File

@@ -23,12 +23,14 @@
<a style="text-decoration:none">
<img src="https://img.shields.io/github/languages/top/ALEXTANGXIAO/TEngine" alt="topLanguage" />
</a>
<a href="https://deepwiki.com/Alex-Rachel/TEngine" style="text-decoration:none">
<img src="https://deepwiki.com/badge.svg" alt="DeepWiki" />
</a>
<br>
<br>
</p>
# <strong>TEngine
#### TEngine是一个简单(新手友好开箱即用)且强大的Unity框架全平台解决方案,对于需要一套上手快、文档清晰、高性能且可拓展性极强的商业级解决方案的开发者或者团队来说是一个很好的选择。
@@ -75,13 +77,11 @@ Assets
├── Scenes // 主场景目录
├── TEngine // 框架核心目录
└── GameScripts // 程序集目录
├── Main // 主程序程序集(启动器与流程)
├── Procedure // 启动器与流程
└── HotFix // 游戏热更程序集目录 [Folder]
├── GameBase // 游戏基础框架程序集 [Dll]
├── GameProto // 游戏配置协议程序集 [Dll]
└── GameLogic // 游戏业务逻辑程序集 [Dll]
── GameApp.cs // 热更主入口
└── GameApp_RegisterSystem.cs // 热更主入口注册系统
── GameApp.cs // 热更主入口
TEngine
@@ -89,9 +89,6 @@ TEngine
└── Runtime // TEngine运行时核心代码
```
- 必要:项目使用了以下第三方插件,请自行购买导入:
- /UnityProject/Assets/Plugins/Sirenix
---
## <strong>优质开源项目推荐
@@ -105,6 +102,8 @@ TEngine
#### <a href="https://github.com/ALEXTANGXIAO/GameNetty"><strong>GameNetty</strong></a> - GameNetty是一套源于ETServer首次拆分最新的ET8.1的前后端解决方案客户端最精简大约750k完美做成包的形式几乎零成本 无侵入的嵌入进你的框架。
#### <a href="https://github.com/Herta-Space-Station/FixedPoint"><strong>FixedPoint</strong></a> - 性能极限的定点数学库FixedPoint。
## <strong>Buy me a 奶茶.

View File

@@ -0,0 +1,13 @@
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/modules.xml
/projectSettingsUpdater.xml
/.idea.SourceGenerator.iml
/contentModel.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View File

@@ -0,0 +1 @@
SourceGenerator

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
</project>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
</component>
</project>

View File

@@ -0,0 +1,568 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.Diagnostics;
using Microsoft.CodeAnalysis.FlowAnalysis;
using Exception = System.Exception;
namespace Analyzer
{
public static class AnalyzerHelper
{
/// <summary>
/// 获取语法树节点的子节点中第一个指定类型节点
/// </summary>
/// <param name="syntaxNode">语法树节点</param>
/// <typeparam name="T">指定语法节点类型</typeparam>
/// <returns>第一个指定类型节点</returns>
public static T? GetFirstChild<T>(this SyntaxNode syntaxNode) where T : SyntaxNode
{
foreach (SyntaxNode? childNode in syntaxNode.ChildNodes())
{
if (childNode.GetType() == typeof(T))
{
return childNode as T;
}
}
return null;
}
public static SyntaxNode? GetFirstChild(this SyntaxNode syntaxNode)
{
var childNodes = syntaxNode.ChildNodes();
if (childNodes.Count() > 0)
{
return childNodes.First();
}
return null;
}
/// <summary>
/// 获取语法树节点的子节点中最后一个指定类型节点
/// </summary>
/// <param name="syntaxNode">语法树节点</param>
/// <typeparam name="T">指定语法节点类型</typeparam>
/// <returns>最后一个指定类型节点</returns>
public static T? GetLastChild<T>(this SyntaxNode syntaxNode) where T : SyntaxNode
{
foreach (SyntaxNode? childNode in syntaxNode.ChildNodes().Reverse())
{
if (childNode.GetType() == typeof(T))
{
return childNode as T;
}
}
return null;
}
/// <summary>
/// 获取语法节点所属的ClassDeclarationSyntax
/// </summary>
public static ClassDeclarationSyntax? GetParentClassDeclaration(this SyntaxNode syntaxNode)
{
SyntaxNode? parentNode = syntaxNode.Parent;
while (parentNode != null)
{
if (parentNode is ClassDeclarationSyntax classDeclarationSyntax)
{
return classDeclarationSyntax;
}
parentNode = parentNode.Parent;
}
return null;
}
/// <summary>
/// INamedTypeSymbol 是否有指定的Attribute
/// </summary>
public static bool HasAttribute(this ITypeSymbol typeSymbol, string AttributeName)
{
foreach (AttributeData? attributeData in typeSymbol.GetAttributes())
{
if (attributeData.AttributeClass?.ToString() == AttributeName)
{
return true;
}
}
return false;
}
public static bool HasAttributeInTypeAndBaseTyes(this ITypeSymbol typeSymbol, string AttributeName)
{
if (typeSymbol.HasAttribute(AttributeName))
{
return true;
}
foreach (var baseType in typeSymbol.BaseTypes())
{
if (baseType.HasAttribute(AttributeName))
{
return true;
}
}
return false;
}
public static IEnumerable<ITypeSymbol> BaseTypes(this ITypeSymbol typeSymbol)
{
ITypeSymbol? baseType = typeSymbol.BaseType;
while (baseType != null)
{
yield return baseType;
baseType = baseType.BaseType;
}
}
/// <summary>
/// INamedTypeSymbol 是否有指定的基类Attribute
/// </summary>
public static bool HasBaseAttribute(this INamedTypeSymbol namedTypeSymbol, string AttributeName)
{
foreach (AttributeData? attributeData in namedTypeSymbol.GetAttributes())
{
INamedTypeSymbol? attributeType = attributeData.AttributeClass?.BaseType;
while (attributeType != null)
{
if (attributeType.ToString() == AttributeName)
{
return true;
}
attributeType = attributeType.BaseType;
}
}
return false;
}
/// <summary>
/// INamedTypeSymbol 获取指定类型的第一个Attribute
/// </summary>
public static AttributeData? GetFirstAttribute(this INamedTypeSymbol namedTypeSymbol, string AttributeName)
{
foreach (AttributeData? attributeData in namedTypeSymbol.GetAttributes())
{
if (attributeData.AttributeClass?.ToString() == AttributeName)
{
return attributeData;
}
}
return null;
}
/// <summary>
/// INamedTypeSymbol 是否含有指定接口
/// </summary>
public static bool HasInterface(this INamedTypeSymbol namedTypeSymbol, string InterfaceName)
{
foreach (INamedTypeSymbol? iInterface in namedTypeSymbol.AllInterfaces)
{
if (iInterface.IsInterface(InterfaceName))
{
return true;
}
}
return false;
}
/// <summary>
/// 某个接口symbol 是否是指定的接口
/// </summary>
public static bool IsInterface(this INamedTypeSymbol namedTypeSymbol, string InterfaceName)
{
return $"{namedTypeSymbol.GetNameSpace()}.{namedTypeSymbol.Name}" == InterfaceName;
}
/// <summary>
/// 判断指定的程序集是否需要分析
/// </summary>
public static bool IsAssemblyNeedAnalyze(string? assemblyName, params string[] analyzeAssemblyNames)
{
if (assemblyName == null)
{
return false;
}
foreach (string analyzeAssemblyName in analyzeAssemblyNames)
{
if (assemblyName == analyzeAssemblyName)
{
return true;
}
}
return false;
}
/// <summary>
/// 获取 成员访问语法节点的父级类型
/// </summary>
public static ITypeSymbol? GetMemberAccessSyntaxParentType(this MemberAccessExpressionSyntax memberAccessExpressionSyntax,
SemanticModel semanticModel)
{
SyntaxNode? firstChildSyntaxNode = memberAccessExpressionSyntax.GetFirstChild();
if (firstChildSyntaxNode == null)
{
return null;
}
ISymbol? firstChildSymbol = semanticModel.GetSymbolInfo(firstChildSyntaxNode).Symbol;
if (firstChildSymbol == null)
{
return null;
}
if (firstChildSymbol is ILocalSymbol localSymbol)
{
return localSymbol.Type;
}
if (firstChildSymbol is IParameterSymbol parameterSymbol)
{
return parameterSymbol.Type;
}
if (firstChildSymbol is IPropertySymbol propertySymbol)
{
return propertySymbol.Type;
}
if (firstChildSymbol is IMethodSymbol methodSymbol)
{
return methodSymbol.ReturnType;
}
if (firstChildSymbol is IFieldSymbol fieldSymbol)
{
return fieldSymbol.Type;
}
if (firstChildSymbol is IEventSymbol eventSymbol)
{
return eventSymbol.Type;
}
return null;
}
/// <summary>
/// 获取最近的指定类型祖先节点
/// </summary>
public static T? GetNeareastAncestor<T>(this SyntaxNode syntaxNode) where T : SyntaxNode
{
foreach (var ancestorNode in syntaxNode.Ancestors())
{
if (ancestorNode is T Tancestor)
{
return Tancestor;
}
}
return null;
}
/// <summary>
/// 判断函数是否是否含有指定类型的参数
/// </summary>
public static bool HasParameterType(this IMethodSymbol methodSymbol, string parameterType, out IParameterSymbol? cencelTokenSymbol)
{
foreach (var parameterSymbol in methodSymbol.Parameters)
{
if (parameterSymbol.Type.ToString() == parameterType)
{
cencelTokenSymbol = parameterSymbol;
return true;
}
}
cencelTokenSymbol = null;
return false;
}
/// <summary>
/// 获取所有指定类型的子节点
/// </summary>
public static IEnumerable<T> DescendantNodes<T>(this SyntaxNode syntaxNode) where T : SyntaxNode
{
foreach (var descendantNode in syntaxNode.DescendantNodes())
{
if (descendantNode is T node)
{
yield return node;
}
}
}
/// <summary>
/// 获取与该语法节点同层级的上一个节点
/// </summary>
public static SyntaxNode? PreviousNode(this SyntaxNode syntaxNode)
{
if (syntaxNode.Parent == null)
{
return null;
}
int index = 0;
foreach (var childNode in syntaxNode.Parent.ChildNodes())
{
if (childNode == syntaxNode)
{
break;
}
index++;
}
if (index == 0)
{
return null;
}
return syntaxNode.Parent.ChildNodes().ElementAt(index - 1);
}
/// <summary>
/// 获取与该语法节点同层级的下一个节点
/// </summary>
public static SyntaxNode? NextNode(this SyntaxNode syntaxNode)
{
if (syntaxNode.Parent == null)
{
return null;
}
int index = 0;
foreach (var childNode in syntaxNode.Parent.ChildNodes())
{
if (childNode == syntaxNode)
{
break;
}
index++;
}
if (index == syntaxNode.Parent.ChildNodes().Count() - 1)
{
return null;
}
return syntaxNode.Parent.ChildNodes().ElementAt(index + 1);
}
/// <summary>
/// 获取await表达式所在的控制流block
/// </summary>
public static BasicBlock? GetAwaitStatementControlFlowBlock(StatementSyntax statementSyntax, AwaitExpressionSyntax awaitExpressionSyntax, SemanticModel semanticModel)
{
// 跳过 return 表达式
if (statementSyntax.IsKind(SyntaxKind.ReturnStatement))
{
return null;
}
var methodSyntax = statementSyntax.GetNeareastAncestor<MethodDeclarationSyntax>();
if (methodSyntax == null)
{
return null;
}
// 构建表达式所在函数的控制流图
var controlFlowGraph = ControlFlowGraph.Create(methodSyntax, semanticModel);
if (controlFlowGraph == null)
{
return null;
}
if (statementSyntax is LocalDeclarationStatementSyntax)
{
return null;
}
BasicBlock? block = controlFlowGraph.Blocks.FirstOrDefault(x => x.Operations.Any(y => y.Syntax.Contains(statementSyntax)));
return block;
}
/// <summary>
/// 判断类是否为partial类
/// </summary>
public static bool IsPartial(this ClassDeclarationSyntax classDeclaration)
{
foreach (var modifier in classDeclaration.Modifiers)
{
if (modifier.IsKind(SyntaxKind.PartialKeyword))
{
return true;
}
}
return false;
}
public static string? GetNameSpace(this INamedTypeSymbol namedTypeSymbol)
{
INamespaceSymbol? namespaceSymbol = namedTypeSymbol.ContainingNamespace;
string? namespaceName = namespaceSymbol?.Name;
while (namespaceSymbol?.ContainingNamespace != null)
{
namespaceSymbol = namespaceSymbol.ContainingNamespace;
if (string.IsNullOrEmpty(namespaceSymbol.Name))
{
break;
}
namespaceName = $"{namespaceSymbol.Name}.{namespaceName}";
}
if (string.IsNullOrEmpty(namespaceName))
{
return null;
}
return namespaceName;
}
/// <summary>
/// 根据语义模型的文件路径 判断是否需要分析
/// </summary>
public static bool IsSemanticModelNeedAnalyze(SemanticModel semanticModel, params string[] filePaths)
{
foreach (var filePath in filePaths)
{
if (semanticModel.SyntaxTree.FilePath.Contains(filePath))
{
return true;
}
}
return false;
}
/// <summary>
/// 类型symbol是否有指定名字 指定参数的方法
/// </summary>
public static bool HasMethodWithParams(this INamedTypeSymbol namedTypeSymbol, string methodName, params ITypeSymbol[] typeSymbols)
{
foreach (var member in namedTypeSymbol.GetMembers())
{
if (member is not IMethodSymbol methodSymbol)
{
continue;
}
if (methodSymbol.Name != methodName)
{
continue;
}
if (typeSymbols.Length != methodSymbol.Parameters.Length)
{
continue;
}
if (typeSymbols.Length == 0)
{
return true;
}
bool isEqual = true;
for (int i = 0; i < typeSymbols.Length; i++)
{
if (typeSymbols[i].ToString() != methodSymbol.Parameters[i].Type.ToString())
{
isEqual = false;
break;
}
}
if (isEqual)
{
return true;
}
}
return false;
}
/// <summary>
/// 类型symbol是否有指定名字 指定参数的方法
/// </summary>
public static bool HasMethodWithParams(this INamedTypeSymbol namedTypeSymbol, string methodName, params string[] typeSymbols)
{
foreach (var member in namedTypeSymbol.GetMembers())
{
if (member is not IMethodSymbol methodSymbol)
{
continue;
}
if (methodSymbol.Name != methodName)
{
continue;
}
if (typeSymbols.Length != methodSymbol.Parameters.Length)
{
continue;
}
if (typeSymbols.Length == 0)
{
return true;
}
bool isEqual = true;
for (int i = 0; i < typeSymbols.Length; i++)
{
if (typeSymbols[i] != methodSymbol.Parameters[i].Type.ToString())
{
isEqual = false;
break;
}
}
if (isEqual)
{
return true;
}
}
return false;
}
/// <summary>
/// 方法symbol 是否有指定的attribute
/// </summary>
public static bool HasAttribute(this IMethodSymbol methodSymbol, string AttributeName)
{
foreach (AttributeData? attributeData in methodSymbol.GetAttributes())
{
if (attributeData?.AttributeClass?.ToString() == AttributeName)
{
return true;
}
}
return false;
}
}
}

View File

@@ -0,0 +1,41 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.002.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SourceGenerator", "SourceGenerator\SourceGenerator.csproj", "{26B3F75F-AB7F-48F8-B234-F5A26E8CA319}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{57F17CC8-F26D-496E-B8E9-2601F9FF3CE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{57F17CC8-F26D-496E-B8E9-2601F9FF3CE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{57F17CC8-F26D-496E-B8E9-2601F9FF3CE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{57F17CC8-F26D-496E-B8E9-2601F9FF3CE5}.Release|Any CPU.Build.0 = Release|Any CPU
{26B3F75F-AB7F-48F8-B234-F5A26E8CA319}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{26B3F75F-AB7F-48F8-B234-F5A26E8CA319}.Debug|Any CPU.Build.0 = Debug|Any CPU
{26B3F75F-AB7F-48F8-B234-F5A26E8CA319}.Release|Any CPU.ActiveCfg = Release|Any CPU
{26B3F75F-AB7F-48F8-B234-F5A26E8CA319}.Release|Any CPU.Build.0 = Release|Any CPU
{F02E4A8C-07E7-4C7F-B30A-3D5BE1C7CB98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F02E4A8C-07E7-4C7F-B30A-3D5BE1C7CB98}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F02E4A8C-07E7-4C7F-B30A-3D5BE1C7CB98}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F02E4A8C-07E7-4C7F-B30A-3D5BE1C7CB98}.Release|Any CPU.Build.0 = Release|Any CPU
{23425ADC-1091-46A0-94BF-8EA6A7F5EFD7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{23425ADC-1091-46A0-94BF-8EA6A7F5EFD7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{23425ADC-1091-46A0-94BF-8EA6A7F5EFD7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{23425ADC-1091-46A0-94BF-8EA6A7F5EFD7}.Release|Any CPU.Build.0 = Release|Any CPU
{CA734AB9-F825-4DDA-BCB1-AD5FC464CAB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CA734AB9-F825-4DDA-BCB1-AD5FC464CAB0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CA734AB9-F825-4DDA-BCB1-AD5FC464CAB0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CA734AB9-F825-4DDA-BCB1-AD5FC464CAB0}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FCBB04E4-2793-4CF8-9278-E932D3B254AC}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,7 @@
public class Definition
{
public const string FrameworkNameSpace = "TEngine";
public const string NameSpace = "GameLogic";
public const string EventInterface = "EventInterface";
public const string StringToHash = "RuntimeId.ToRuntimeId";
}

View File

@@ -0,0 +1,192 @@
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Analyzer;
[Generator]
public class EventInterfaceGenerator : ISourceGenerator
{
public void Initialize(GeneratorInitializationContext context)
{
// 可以在这里进行初始化
}
public void Execute(GeneratorExecutionContext context)
{
// 获取当前语法树
var syntaxTrees = context.Compilation.SyntaxTrees;
List<string> classNameList = new List<string>();
foreach (var tree in syntaxTrees)
{
var root = tree.GetRoot();
var interfaces = root.DescendantNodes()
.OfType<InterfaceDeclarationSyntax>()
.Where(i => i.AttributeLists.Count > 0 &&
i.AttributeLists
.Any(a => a.Attributes
.Any(attr => attr.Name.ToString() == $"{Definition.EventInterface}")));
foreach (var interfaceNode in interfaces)
{
var interfaceName = interfaceNode.Identifier.ToString();
var fullName = interfaceNode.SyntaxTree.GetRoot()
.DescendantNodes()
.OfType<NamespaceDeclarationSyntax>()
.Select(ns => ns.Name.ToString())
.Concat(new[] { interfaceName })
.Aggregate((a, b) => a + "." + b);
var eventClassName = $"{interfaceName}_Event";
var eventClassCode = GenerateEventClass(interfaceName, eventClassName, interfaceNode);
context.AddSource($"{eventClassName}.g.cs", eventClassCode);
// 生成实现类
var implementationClassCode = GenerateImplementationClass(fullName, interfaceName, interfaceNode,context);
context.AddSource($"{interfaceName}_Gen.g.cs", implementationClassCode);
classNameList.Add($"{interfaceName}_Gen");
}
}
string uniqueFileName = $"GameEventHelper.g.cs";
context.AddSource(uniqueFileName, GenerateGameEventHelper(classNameList));
}
private string GenerateGameEventHelper(List<string> classNameList)
{
var sb = new StringBuilder();
sb.AppendLine($"//------------------------------------------------------------------------------");
sb.AppendLine($"// <auto-generated>");
sb.AppendLine($"// This code was generated by autoBindTool.");
sb.AppendLine($"// Changes to this file may cause incorrect behavior and will be lost if");
sb.AppendLine($"// the code is regenerated.");
sb.AppendLine($"// </auto-generated>");
sb.AppendLine($"//------------------------------------------------------------------------------");
sb.AppendLine();
sb.AppendLine($"using UnityEngine;");
sb.AppendLine($"using UnityEngine.UI;");
sb.AppendLine($"using {Definition.FrameworkNameSpace};");
sb.AppendLine();
sb.AppendLine($"namespace {Definition.NameSpace}");
sb.AppendLine($"{{");
sb.AppendLine($" public static class GameEventHelper");
sb.AppendLine(" {");
sb.AppendLine($" public static void Init()");
sb.AppendLine(" {");
foreach (var className in classNameList)
{
sb.AppendLine($" var m_{className} = new {className}(GameEvent.EventMgr.GetDispatcher());");
}
sb.AppendLine(" }");
sb.AppendLine(" }");
sb.AppendLine("}");
return sb.ToString();
}
private string GenerateEventClass(string interfaceName, string className, InterfaceDeclarationSyntax interfaceNode)
{
var methods = interfaceNode.Members.OfType<MethodDeclarationSyntax>();
var sb = new StringBuilder();
sb.AppendLine($"//------------------------------------------------------------------------------");
sb.AppendLine($"// <auto-generated>");
sb.AppendLine($"// This code was generated by autoBindTool.");
sb.AppendLine($"// Changes to this file may cause incorrect behavior and will be lost if");
sb.AppendLine($"// the code is regenerated.");
sb.AppendLine($"// </auto-generated>");
sb.AppendLine($"//------------------------------------------------------------------------------");
sb.AppendLine();
sb.AppendLine($"using UnityEngine;");
sb.AppendLine($"using UnityEngine.UI;");
sb.AppendLine($"using {Definition.FrameworkNameSpace};");
sb.AppendLine();
sb.AppendLine($"namespace {Definition.NameSpace}");
sb.AppendLine("{");
sb.AppendLine($" public partial class {className}");
sb.AppendLine(" {");
foreach (var method in methods)
{
var methodName = method.Identifier.ToString();
var parameters = string.Join(", ", method.ParameterList.Parameters.Select(p => $"{p.Type} {p.Identifier}"));
sb.AppendLine($" public static readonly int {methodName} = {Definition.StringToHash}(\"{className}.{methodName}\");");
}
sb.AppendLine(" }");
sb.AppendLine("}");
return sb.ToString();
}
private string GenerateImplementationClass(string interfaceFullName, string interfaceName, InterfaceDeclarationSyntax interfaceNode,GeneratorExecutionContext context)
{
var semanticModel = context.Compilation.GetSemanticModel(interfaceNode.SyntaxTree);
var sb = new StringBuilder();
sb.AppendLine($"//------------------------------------------------------------------------------");
sb.AppendLine($"// <auto-generated>");
sb.AppendLine($"// This code was generated by autoBindTool.");
sb.AppendLine($"// Changes to this file may cause incorrect behavior and will be lost if");
sb.AppendLine($"// the code is regenerated.");
sb.AppendLine($"// </auto-generated>");
sb.AppendLine($"//------------------------------------------------------------------------------");
sb.AppendLine();
sb.AppendLine($"using UnityEngine;");
sb.AppendLine($"using UnityEngine.UI;");
sb.AppendLine($"using {Definition.FrameworkNameSpace};");
sb.AppendLine();
sb.AppendLine($"namespace {Definition.NameSpace}");
sb.AppendLine($"{{");
sb.AppendLine($" public partial class {interfaceName}_Gen : {interfaceName}");
sb.AppendLine(" {");
sb.AppendLine(" private EventDispatcher _dispatcher;");
sb.AppendLine($" public {interfaceName}_Gen(EventDispatcher dispatcher)");
sb.AppendLine(" {");
sb.AppendLine(" _dispatcher = dispatcher;");
sb.AppendLine($" GameEvent.EventMgr.RegWrapInterface(\"{interfaceFullName}\", this);");
sb.AppendLine(" }");
foreach (var method in interfaceNode.Members.OfType<MethodDeclarationSyntax>())
{
var methodName = method.Identifier.ToString();
var parameters = GenerateParameters(method, semanticModel);
sb.AppendLine($" public void {methodName}({parameters})");
sb.AppendLine(" {");
if (method.ParameterList.Parameters.Count > 0)
{
var paramNames = string.Join(", ", method.ParameterList.Parameters.Select(p => p.Identifier.ToString()));
sb.AppendLine($" _dispatcher.Send({interfaceName}_Event.{methodName}, {paramNames});");
}
else
{
sb.AppendLine($" _dispatcher.Send({interfaceName}_Event.{methodName});");
}
sb.AppendLine(" }");
}
sb.AppendLine(" }");
sb.AppendLine("}");
return sb.ToString();
}
private string GenerateParameters(MethodDeclarationSyntax method, SemanticModel semanticModel)
{
return string.Join(", ", method.ParameterList.Parameters.Select(p =>
{
var typeSymbol = semanticModel.GetTypeInfo(p.Type).Type;
return typeSymbol != null
? $"{typeSymbol.ToDisplayString()} {p.Identifier}"
: $"{p.Type} {p.Identifier}";
}));
}
}

View File

@@ -0,0 +1,34 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<IncludeBuildOutput>false</IncludeBuildOutput>
<Nullable>enable</Nullable>
<LangVersion>12</LangVersion>
<IncludeBuildOutput>false</IncludeBuildOutput>
<DevelopmentDependency>true</DevelopmentDependency>
<IncludeSymbols>false</IncludeSymbols>
<NoWarn>1701;1702;RS2008</NoWarn>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<SatelliteResourceLanguages>en</SatelliteResourceLanguages>
</PropertyGroup>
<ItemGroup>
<Compile Include="../Analyzer/Extension/*.cs">
<Link>Extension\%(RecursiveDir)%(FileName)%(Extension)</Link>
</Compile>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.9.0" PrivateAssets="all" />
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<!-- <Target Name="PostBuild" AfterTargets="PostBuildEvent">-->
<!-- <Copy SourceFiles="$(TargetDir)/$(TargetName).dll" DestinationFolder="$(ProjectDir)/../../Unity/Assets/Plugins/" ContinueOnError="false" />-->
<!-- </Target>-->
</Project>

View File

@@ -0,0 +1,236 @@
{
"runtimeTarget": {
"name": ".NETStandard,Version=v2.0/",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETStandard,Version=v2.0": {},
".NETStandard,Version=v2.0/": {
"SourceGenerator/1.0.0": {
"dependencies": {
"Microsoft.CodeAnalysis.Analyzers": "3.3.3",
"Microsoft.CodeAnalysis.CSharp": "3.9.0",
"NETStandard.Library": "2.0.3"
},
"runtime": {
"SourceGenerator.dll": {}
}
},
"Microsoft.CodeAnalysis.Analyzers/3.3.3": {},
"Microsoft.CodeAnalysis.Common/3.9.0": {
"dependencies": {
"Microsoft.CodeAnalysis.Analyzers": "3.3.3",
"System.Collections.Immutable": "5.0.0",
"System.Memory": "4.5.4",
"System.Reflection.Metadata": "5.0.0",
"System.Runtime.CompilerServices.Unsafe": "5.0.0",
"System.Text.Encoding.CodePages": "4.5.1",
"System.Threading.Tasks.Extensions": "4.5.4"
},
"runtime": {
"lib/netstandard2.0/Microsoft.CodeAnalysis.dll": {
"assemblyVersion": "3.9.0.0",
"fileVersion": "3.900.21.12420"
}
}
},
"Microsoft.CodeAnalysis.CSharp/3.9.0": {
"dependencies": {
"Microsoft.CodeAnalysis.Common": "3.9.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.dll": {
"assemblyVersion": "3.9.0.0",
"fileVersion": "3.900.21.12420"
}
}
},
"Microsoft.NETCore.Platforms/1.1.0": {},
"NETStandard.Library/2.0.3": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0"
}
},
"System.Buffers/4.5.1": {
"runtime": {
"lib/netstandard2.0/System.Buffers.dll": {
"assemblyVersion": "4.0.3.0",
"fileVersion": "4.6.28619.1"
}
}
},
"System.Collections.Immutable/5.0.0": {
"dependencies": {
"System.Memory": "4.5.4"
},
"runtime": {
"lib/netstandard2.0/System.Collections.Immutable.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"System.Memory/4.5.4": {
"dependencies": {
"System.Buffers": "4.5.1",
"System.Numerics.Vectors": "4.4.0",
"System.Runtime.CompilerServices.Unsafe": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/System.Memory.dll": {
"assemblyVersion": "4.0.1.1",
"fileVersion": "4.6.28619.1"
}
}
},
"System.Numerics.Vectors/4.4.0": {
"runtime": {
"lib/netstandard2.0/System.Numerics.Vectors.dll": {
"assemblyVersion": "4.1.3.0",
"fileVersion": "4.6.25519.3"
}
}
},
"System.Reflection.Metadata/5.0.0": {
"dependencies": {
"System.Collections.Immutable": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/System.Reflection.Metadata.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"System.Runtime.CompilerServices.Unsafe/5.0.0": {
"runtime": {
"lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"System.Text.Encoding.CodePages/4.5.1": {
"dependencies": {
"System.Runtime.CompilerServices.Unsafe": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/System.Text.Encoding.CodePages.dll": {
"assemblyVersion": "4.1.1.0",
"fileVersion": "4.6.27129.4"
}
}
},
"System.Threading.Tasks.Extensions/4.5.4": {
"dependencies": {
"System.Runtime.CompilerServices.Unsafe": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/System.Threading.Tasks.Extensions.dll": {
"assemblyVersion": "4.2.0.1",
"fileVersion": "4.6.28619.1"
}
}
}
}
},
"libraries": {
"SourceGenerator/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Microsoft.CodeAnalysis.Analyzers/3.3.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==",
"path": "microsoft.codeanalysis.analyzers/3.3.3",
"hashPath": "microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512"
},
"Microsoft.CodeAnalysis.Common/3.9.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-HiWjF7PNIEngmFg2Xk8cZ/83lRIRkk9v+5ibbY5B7VvjNGdClGAMuWtZER9F5rGRR41VbJLco9ah73jFTh4vPw==",
"path": "microsoft.codeanalysis.common/3.9.0",
"hashPath": "microsoft.codeanalysis.common.3.9.0.nupkg.sha512"
},
"Microsoft.CodeAnalysis.CSharp/3.9.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-NTsiK3fnoZGemy4dBHrILwg9rL+jDnOJ7aixFu4EOWM1r6MZMrNCIhT2tO4AmIMdfICLPwj910uZRRLpbMnqHg==",
"path": "microsoft.codeanalysis.csharp/3.9.0",
"hashPath": "microsoft.codeanalysis.csharp.3.9.0.nupkg.sha512"
},
"Microsoft.NETCore.Platforms/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
"path": "microsoft.netcore.platforms/1.1.0",
"hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512"
},
"NETStandard.Library/2.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==",
"path": "netstandard.library/2.0.3",
"hashPath": "netstandard.library.2.0.3.nupkg.sha512"
},
"System.Buffers/4.5.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==",
"path": "system.buffers/4.5.1",
"hashPath": "system.buffers.4.5.1.nupkg.sha512"
},
"System.Collections.Immutable/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-FXkLXiK0sVVewcso0imKQoOxjoPAj42R8HtjjbSjVPAzwDfzoyoznWxgA3c38LDbN9SJux1xXoXYAhz98j7r2g==",
"path": "system.collections.immutable/5.0.0",
"hashPath": "system.collections.immutable.5.0.0.nupkg.sha512"
},
"System.Memory/4.5.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==",
"path": "system.memory/4.5.4",
"hashPath": "system.memory.4.5.4.nupkg.sha512"
},
"System.Numerics.Vectors/4.4.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==",
"path": "system.numerics.vectors/4.4.0",
"hashPath": "system.numerics.vectors.4.4.0.nupkg.sha512"
},
"System.Reflection.Metadata/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ==",
"path": "system.reflection.metadata/5.0.0",
"hashPath": "system.reflection.metadata.5.0.0.nupkg.sha512"
},
"System.Runtime.CompilerServices.Unsafe/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA==",
"path": "system.runtime.compilerservices.unsafe/5.0.0",
"hashPath": "system.runtime.compilerservices.unsafe.5.0.0.nupkg.sha512"
},
"System.Text.Encoding.CodePages/4.5.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==",
"path": "system.text.encoding.codepages/4.5.1",
"hashPath": "system.text.encoding.codepages.4.5.1.nupkg.sha512"
},
"System.Threading.Tasks.Extensions/4.5.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==",
"path": "system.threading.tasks.extensions/4.5.4",
"hashPath": "system.threading.tasks.extensions.4.5.4.nupkg.sha512"
}
}
}

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")]

View File

@@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("SourceGenerator")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+b7d75c0f6f518a5f2ca0ed9304411302709f8dbe")]
[assembly: System.Reflection.AssemblyProductAttribute("SourceGenerator")]
[assembly: System.Reflection.AssemblyTitleAttribute("SourceGenerator")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@@ -0,0 +1 @@
1f4b8d9919850399efa15c732e9aadbc83f7ae6889745a83831d20da225de402

View File

@@ -0,0 +1,12 @@
is_global = true
build_property.TargetFramework = netstandard2.0
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = SourceGenerator
build_property.ProjectDir = E:\WorkSpace\ZGame\Tools\GameEventSourceGenerator\SourceGenerator\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =

View File

@@ -0,0 +1 @@
ff752c9a870df6aafb4669266bbcfd2f80f90bfd76a1bae882d02d67457c3ec4

View File

@@ -0,0 +1,32 @@
G:\github\TEngine\Tools\SourceGenerator\SourceGenerator\bin\Debug\SourceGenerator.deps.json
G:\github\TEngine\Tools\SourceGenerator\SourceGenerator\bin\Debug\SourceGenerator.dll
G:\github\TEngine\Tools\SourceGenerator\SourceGenerator\bin\Debug\SourceGenerator.pdb
G:\github\TEngine\Tools\SourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.csproj.AssemblyReference.cache
G:\github\TEngine\Tools\SourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.GeneratedMSBuildEditorConfig.editorconfig
G:\github\TEngine\Tools\SourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.AssemblyInfoInputs.cache
G:\github\TEngine\Tools\SourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.AssemblyInfo.cs
G:\github\TEngine\Tools\SourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.csproj.CoreCompileInputs.cache
G:\github\TEngine\Tools\SourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.sourcelink.json
G:\github\TEngine\Tools\SourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.dll
G:\github\TEngine\Tools\SourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.pdb
C:\Users\Admin\Downloads\GameEventSourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.csproj.AssemblyReference.cache
C:\Users\Admin\Downloads\GameEventSourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\Admin\Downloads\GameEventSourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.AssemblyInfoInputs.cache
C:\Users\Admin\Downloads\GameEventSourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.AssemblyInfo.cs
C:\Users\Admin\Downloads\GameEventSourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.csproj.CoreCompileInputs.cache
C:\Users\Admin\Downloads\GameEventSourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.dll
C:\Users\Admin\Downloads\GameEventSourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.pdb
C:\Users\Admin\Downloads\GameEventSourceGenerator\SourceGenerator\bin\Debug\SourceGenerator.deps.json
C:\Users\Admin\Downloads\GameEventSourceGenerator\SourceGenerator\bin\Debug\SourceGenerator.dll
C:\Users\Admin\Downloads\GameEventSourceGenerator\SourceGenerator\bin\Debug\SourceGenerator.pdb
E:\WorkSpace\ZGame\Tools\GameEventSourceGenerator\SourceGenerator\bin\Debug\SourceGenerator.deps.json
E:\WorkSpace\ZGame\Tools\GameEventSourceGenerator\SourceGenerator\bin\Debug\SourceGenerator.dll
E:\WorkSpace\ZGame\Tools\GameEventSourceGenerator\SourceGenerator\bin\Debug\SourceGenerator.pdb
E:\WorkSpace\ZGame\Tools\GameEventSourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.csproj.AssemblyReference.cache
E:\WorkSpace\ZGame\Tools\GameEventSourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.GeneratedMSBuildEditorConfig.editorconfig
E:\WorkSpace\ZGame\Tools\GameEventSourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.AssemblyInfoInputs.cache
E:\WorkSpace\ZGame\Tools\GameEventSourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.AssemblyInfo.cs
E:\WorkSpace\ZGame\Tools\GameEventSourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.csproj.CoreCompileInputs.cache
E:\WorkSpace\ZGame\Tools\GameEventSourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.sourcelink.json
E:\WorkSpace\ZGame\Tools\GameEventSourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.dll
E:\WorkSpace\ZGame\Tools\GameEventSourceGenerator\SourceGenerator\obj\Debug\SourceGenerator.pdb

View File

@@ -0,0 +1 @@
{"documents":{"E:\\WorkSpace\\ZGame\\*":"https://raw.githubusercontent.com/Alex-Rachel/ZGame/b7d75c0f6f518a5f2ca0ed9304411302709f8dbe/*"}}

View File

@@ -0,0 +1,82 @@
{
"format": 1,
"restore": {
"E:\\WorkSpace\\ZGame\\Tools\\GameEventSourceGenerator\\SourceGenerator\\SourceGenerator.csproj": {}
},
"projects": {
"E:\\WorkSpace\\ZGame\\Tools\\GameEventSourceGenerator\\SourceGenerator\\SourceGenerator.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "E:\\WorkSpace\\ZGame\\Tools\\GameEventSourceGenerator\\SourceGenerator\\SourceGenerator.csproj",
"projectName": "SourceGenerator",
"projectPath": "E:\\WorkSpace\\ZGame\\Tools\\GameEventSourceGenerator\\SourceGenerator\\SourceGenerator.csproj",
"packagesPath": "C:\\Users\\Admin\\.nuget\\packages\\",
"outputPath": "E:\\WorkSpace\\ZGame\\Tools\\GameEventSourceGenerator\\SourceGenerator\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\Admin\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"netstandard2.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"netstandard2.0": {
"targetAlias": "netstandard2.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
}
},
"frameworks": {
"netstandard2.0": {
"targetAlias": "netstandard2.0",
"dependencies": {
"Microsoft.CodeAnalysis.Analyzers": {
"include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive",
"suppressParent": "All",
"target": "Package",
"version": "[3.3.3, )"
},
"Microsoft.CodeAnalysis.CSharp": {
"suppressParent": "All",
"target": "Package",
"version": "[3.9.0, )"
},
"NETStandard.Library": {
"suppressParent": "All",
"target": "Package",
"version": "[2.0.3, )",
"autoReferenced": true
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.300\\RuntimeIdentifierGraph.json"
}
}
}
}
}

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Admin\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.12.2</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\Admin\.nuget\packages\" />
</ItemGroup>
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props')" />
</ImportGroup>
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<PkgMicrosoft_CodeAnalysis_Analyzers Condition=" '$(PkgMicrosoft_CodeAnalysis_Analyzers)' == '' ">C:\Users\Admin\.nuget\packages\microsoft.codeanalysis.analyzers\3.3.3</PkgMicrosoft_CodeAnalysis_Analyzers>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)netstandard.library\2.0.3\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('$(NuGetPackageRoot)netstandard.library\2.0.3\build\netstandard2.0\NETStandard.Library.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets')" />
</ImportGroup>
</Project>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,22 @@
{
"version": 2,
"dgSpecHash": "YK6sSPNENOs=",
"success": true,
"projectFilePath": "E:\\WorkSpace\\ZGame\\Tools\\GameEventSourceGenerator\\SourceGenerator\\SourceGenerator.csproj",
"expectedPackageFiles": [
"C:\\Users\\Admin\\.nuget\\packages\\microsoft.codeanalysis.analyzers\\3.3.3\\microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\microsoft.codeanalysis.common\\3.9.0\\microsoft.codeanalysis.common.3.9.0.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\microsoft.codeanalysis.csharp\\3.9.0\\microsoft.codeanalysis.csharp.3.9.0.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\microsoft.netcore.platforms\\1.1.0\\microsoft.netcore.platforms.1.1.0.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\netstandard.library\\2.0.3\\netstandard.library.2.0.3.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\system.buffers\\4.5.1\\system.buffers.4.5.1.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\system.collections.immutable\\5.0.0\\system.collections.immutable.5.0.0.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\system.memory\\4.5.4\\system.memory.4.5.4.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\system.numerics.vectors\\4.4.0\\system.numerics.vectors.4.4.0.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\system.reflection.metadata\\5.0.0\\system.reflection.metadata.5.0.0.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\5.0.0\\system.runtime.compilerservices.unsafe.5.0.0.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\system.text.encoding.codepages\\4.5.1\\system.text.encoding.codepages.4.5.1.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\system.threading.tasks.extensions\\4.5.4\\system.threading.tasks.extensions.4.5.4.nupkg.sha512"
],
"logs": []
}

View File

@@ -0,0 +1 @@
"restore":{"projectUniqueName":"E:\\WorkSpace\\ZGame\\Tools\\GameEventSourceGenerator\\SourceGenerator\\SourceGenerator.csproj","projectName":"SourceGenerator","projectPath":"E:\\WorkSpace\\ZGame\\Tools\\GameEventSourceGenerator\\SourceGenerator\\SourceGenerator.csproj","outputPath":"E:\\WorkSpace\\ZGame\\Tools\\GameEventSourceGenerator\\SourceGenerator\\obj\\","projectStyle":"PackageReference","originalTargetFrameworks":["netstandard2.0"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"netstandard2.0":{"targetAlias":"netstandard2.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"}}"frameworks":{"netstandard2.0":{"targetAlias":"netstandard2.0","dependencies":{"Microsoft.CodeAnalysis.Analyzers":{"include":"Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive","suppressParent":"All","target":"Package","version":"[3.3.3, )"},"Microsoft.CodeAnalysis.CSharp":{"suppressParent":"All","target":"Package","version":"[3.9.0, )"},"NETStandard.Library":{"suppressParent":"All","target":"Package","version":"[2.0.3, )","autoReferenced":true}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\8.0.300\\RuntimeIdentifierGraph.json"}}

View File

@@ -0,0 +1 @@
17413576752312703

View File

@@ -0,0 +1 @@
17413576752312703

View File

@@ -0,0 +1,5 @@
[*]
# ReSharper properties
resharper_csharp_max_line_length = 180
resharper_place_attribute_on_same_line = false

View File

@@ -1,5 +1,7 @@
# UnityProject
# This .gitignore file should be placed at the root of your Unity project directory
#
# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore
#
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
@@ -7,11 +9,8 @@
/[Bb]uilds/
/[Ll]ogs/
/[Mm]emoryCaptures/
/EditorBuild/
/[Aa]ssets/StreamingAssets
/[Aa]ssets/StreamingAssets.meta
/BuildBundleInfo/
# Asset meta data should only be ignored when the corresponding asset is also ignored
!/[Aa]ssets/**/*.meta
@@ -44,6 +43,7 @@ ExportedObj/
*.mdb
*.opendb
*.VC.db
*.idea
# Unity3D generated meta files
*.pidb.meta
@@ -55,6 +55,7 @@ sysinfo.txt
# Builds
*.apk
*.unitypackage
# Crashlytics generated file
crashlytics-build.properties
@@ -65,13 +66,16 @@ crashlytics-build.properties
[Aa]ssets/HybridCLRGenerate/
[Aa]ssets/HybridCLRGenerate.meta
#AATemp
[Aa]ssets/AATemp/
[Aa]ssets/AATemp.meta
# Custom AATest
[Aa]ssets/AATest/
[Aa]ssets/AATest.meta
[Aa]ssets/StreamingAssets/
[Aa]ssets/StreamingAssets.meta
#Rider
/.idea/
#Bundles
Bundles/
@@ -79,6 +83,7 @@ Bundles/
#Sandbox
Sandbox/
package/
#MAC
.DS_Store

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3ab86ad0f95d7fd438621794de0e0f95
guid: 57c217ccee578d64ca627eb6f63e6503
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: af3c4646bcc0a6544a7a3ab41781be79
guid: 9d6134158c52933418338d95eebd1c39
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -0,0 +1,20 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!612988286 &1
SpriteAtlasAsset:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
serializedVersion: 2
m_MasterAtlas: {fileID: 0}
m_ImporterData:
packables:
- {fileID: 21300000, guid: c95935206d18f42399e9881ce6bdf61c, type: 3}
- {fileID: 21300000, guid: 1f44cb90b6ae648c783dac573bfe9cd0, type: 3}
- {fileID: 21300000, guid: bfad0e64f8ef1491c8def7e679187b89, type: 3}
- {fileID: 21300000, guid: a43cb397a444ce44f9becc183ced96ed, type: 3}
- {fileID: 21300000, guid: f43899c31dd434901b0422f98bcde88b, type: 3}
- {fileID: 21300000, guid: 01ccaea9b49214edda39f03f648b5b8b, type: 3}
m_IsVariant: 0

View File

@@ -0,0 +1,69 @@
fileFormatVersion: 2
guid: e6770285dceffae48b253f30f09cd3bc
SpriteAtlasImporter:
externalObjects: {}
textureSettings:
serializedVersion: 2
anisoLevel: 1
compressionQuality: 50
maxTextureSize: 2048
textureCompression: 0
filterMode: 1
generateMipMaps: 0
readable: 0
crunchedCompression: 0
sRGB: 1
platformSettings:
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: 50
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 1
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: 49
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 1
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: 50
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 1
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
packingSettings:
serializedVersion: 2
padding: 4
blockOffset: 1
allowAlphaSplitting: 0
enableRotation: 1
enableTightPacking: 1
enableAlphaDilation: 1
secondaryTextureSettings: {}
variantMultiplier: 1
bindAsDefault: 1
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,91 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!687078895 &4343727234628468602
SpriteAtlas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: UIRaw_Atlas_Common
m_EditorData:
serializedVersion: 2
textureSettings:
serializedVersion: 2
anisoLevel: 0
compressionQuality: 0
maxTextureSize: 0
textureCompression: 0
filterMode: 1
generateMipMaps: 0
readable: 0
crunchedCompression: 0
sRGB: 1
platformSettings:
- serializedVersion: 3
m_BuildTarget: iPhone
m_MaxTextureSize: 2048
m_ResizeAlgorithm: 0
m_TextureFormat: 49
m_TextureCompression: 1
m_CompressionQuality: 100
m_CrunchedCompression: 0
m_AllowsAlphaSplitting: 0
m_Overridden: 1
m_AndroidETC2FallbackOverride: 0
m_ForceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
m_BuildTarget: Android
m_MaxTextureSize: 2048
m_ResizeAlgorithm: 0
m_TextureFormat: 50
m_TextureCompression: 1
m_CompressionQuality: 100
m_CrunchedCompression: 0
m_AllowsAlphaSplitting: 0
m_Overridden: 1
m_AndroidETC2FallbackOverride: 0
m_ForceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
m_BuildTarget: WebGL
m_MaxTextureSize: 2048
m_ResizeAlgorithm: 0
m_TextureFormat: 50
m_TextureCompression: 1
m_CompressionQuality: 50
m_CrunchedCompression: 0
m_AllowsAlphaSplitting: 0
m_Overridden: 1
m_AndroidETC2FallbackOverride: 0
m_ForceMaximumCompressionQuality_BC6H_BC7: 0
packingSettings:
serializedVersion: 2
padding: 2
blockOffset: 1
allowAlphaSplitting: 0
enableRotation: 1
enableTightPacking: 0
enableAlphaDilation: 0
secondaryTextureSettings: {}
variantMultiplier: 1
packables:
- {fileID: 21300000, guid: f9a06e163014f4f46b14f4499d3e7240, type: 3}
- {fileID: 21300000, guid: 2761fc23b4aa7e34187ac5ffbc3fad9b, type: 3}
- {fileID: 21300000, guid: d623a2b7e069a4c4592d3da48f476189, type: 3}
- {fileID: 21300000, guid: 57e4117f4cd6ae54284898652e70d553, type: 3}
bindAsDefault: 1
isAtlasV2: 0
cachedData: {fileID: 0}
m_MasterAtlas: {fileID: 0}
m_PackedSprites:
- {fileID: 21300000, guid: 2761fc23b4aa7e34187ac5ffbc3fad9b, type: 3}
- {fileID: 21300000, guid: f9a06e163014f4f46b14f4499d3e7240, type: 3}
- {fileID: 21300000, guid: d623a2b7e069a4c4592d3da48f476189, type: 3}
- {fileID: 21300000, guid: 57e4117f4cd6ae54284898652e70d553, type: 3}
m_PackedSpriteNamesToIndex:
- red_button
- blue_button
- white_background
- white_button
m_RenderDataMap: {}
m_Tag: UIRaw_Atlas_Common
m_IsVariant: 0

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: c91b064c2cd7a34448ae0d6d7ee58e7f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 4343727234628468602
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8de5bf9d0c58b9042907faa7cfe9a7de
guid: 9db5607359854c348ad549dfe09fdb87
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -0,0 +1,99 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1953341725052257094
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6424758063307255349}
- component: {fileID: 8490144700851145232}
- component: {fileID: 8810305637038458871}
- component: {fileID: 3431397482178559869}
m_Layer: 0
m_Name: Cube
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6424758063307255349
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1953341725052257094}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &8490144700851145232
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1953341725052257094}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &8810305637038458871
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1953341725052257094}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &3431397482178559869
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1953341725052257094}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d6d710f0749bc734abe3d835ca0e56d9
guid: 14515f8505976b04fbdd66ddc61a661c
PrefabImporter:
externalObjects: {}
userData:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ecec8ee629e7e1945b209218a435b9cc
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,937 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &7590624231718858143
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7590624231718858140}
- component: {fileID: 7590624231718858138}
- component: {fileID: 7590624231718858141}
m_Layer: 5
m_Name: Placeholder
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7590624231718858140
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624231718858143}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7590624232011094235}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.5}
m_SizeDelta: {x: -20, y: -13}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7590624231718858138
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624231718858143}
m_CullTransparentMesh: 1
--- !u!114 &7590624231718858141
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624231718858143}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 28
m_FontStyle: 2
m_BestFit: 0
m_MinSize: 2
m_MaxSize: 40
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: "\u8BF7\u8F93\u5165\u5BC6\u7801"
--- !u!1 &7590624231737737112
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7590624231737737113}
- component: {fileID: 7590624231737737319}
- component: {fileID: 7590624231737737318}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7590624231737737113
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624231737737112}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7590624232011094235}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.5}
m_SizeDelta: {x: -20, y: -13}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7590624231737737319
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624231737737112}
m_CullTransparentMesh: 1
--- !u!114 &7590624231737737318
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624231737737112}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 28
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 2
m_MaxSize: 40
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 0
m_HorizontalOverflow: 1
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text:
--- !u!1 &7590624231809635999
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7590624231809635996}
- component: {fileID: 7590624231809635995}
- component: {fileID: 7590624231809635994}
- component: {fileID: 7590624231809635997}
m_Layer: 5
m_Name: m_btnLogin
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7590624231809635996
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624231809635999}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7590624233362660640}
m_Father: {fileID: 7590624233116553169}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: -384}
m_SizeDelta: {x: 320, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7590624231809635995
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624231809635999}
m_CullTransparentMesh: 1
--- !u!114 &7590624231809635994
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624231809635999}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &7590624231809635997
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624231809635999}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 7590624231809635994}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &7590624232011094234
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7590624232011094235}
- component: {fileID: 7590624232011094182}
- component: {fileID: 7590624232011094233}
- component: {fileID: 7590624232011094232}
m_Layer: 5
m_Name: m_inputPassword
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7590624232011094235
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624232011094234}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7590624231718858140}
- {fileID: 7590624231737737113}
m_Father: {fileID: 7590624233116553169}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: -295}
m_SizeDelta: {x: 320, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7590624232011094182
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624232011094234}
m_CullTransparentMesh: 1
--- !u!114 &7590624232011094233
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624232011094234}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &7590624232011094232
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624232011094234}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 7590624232011094233}
m_TextComponent: {fileID: 7590624231737737318}
m_Placeholder: {fileID: 7590624231718858141}
m_ContentType: 0
m_InputType: 0
m_AsteriskChar: 42
m_KeyboardType: 0
m_LineType: 0
m_HideMobileInput: 0
m_CharacterValidation: 0
m_CharacterLimit: 0
m_OnSubmit:
m_PersistentCalls:
m_Calls: []
m_OnDidEndEdit:
m_PersistentCalls:
m_Calls: []
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_CustomCaretColor: 0
m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
m_Text:
m_CaretBlinkRate: 0.85
m_CaretWidth: 1
m_ReadOnly: 0
m_ShouldActivateOnSelect: 1
--- !u!1 &7590624232479665381
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7590624232479665378}
- component: {fileID: 7590624232479665376}
- component: {fileID: 7590624232479665379}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7590624232479665378
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624232479665381}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7590624232596026019}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.5}
m_SizeDelta: {x: -20, y: -13}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7590624232479665376
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624232479665381}
m_CullTransparentMesh: 1
--- !u!114 &7590624232479665379
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624232479665381}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 28
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 2
m_MaxSize: 40
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 0
m_HorizontalOverflow: 1
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text:
--- !u!1 &7590624232596026018
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7590624232596026019}
- component: {fileID: 7590624232596026030}
- component: {fileID: 7590624232596026017}
- component: {fileID: 7590624232596026016}
m_Layer: 5
m_Name: m_inputAccount
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7590624232596026019
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624232596026018}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7590624233063842319}
- {fileID: 7590624232479665378}
m_Father: {fileID: 7590624233116553169}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: -220}
m_SizeDelta: {x: 320, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7590624232596026030
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624232596026018}
m_CullTransparentMesh: 1
--- !u!114 &7590624232596026017
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624232596026018}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &7590624232596026016
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624232596026018}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 7590624232596026017}
m_TextComponent: {fileID: 7590624232479665379}
m_Placeholder: {fileID: 7590624233063842316}
m_ContentType: 0
m_InputType: 0
m_AsteriskChar: 42
m_KeyboardType: 0
m_LineType: 0
m_HideMobileInput: 0
m_CharacterValidation: 0
m_CharacterLimit: 0
m_OnSubmit:
m_PersistentCalls:
m_Calls: []
m_OnDidEndEdit:
m_PersistentCalls:
m_Calls: []
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_CustomCaretColor: 0
m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
m_Text:
m_CaretBlinkRate: 0.85
m_CaretWidth: 1
m_ReadOnly: 0
m_ShouldActivateOnSelect: 1
--- !u!1 &7590624233063842318
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7590624233063842319}
- component: {fileID: 7590624233063842317}
- component: {fileID: 7590624233063842316}
m_Layer: 5
m_Name: Placeholder
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7590624233063842319
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624233063842318}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7590624232596026019}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.5}
m_SizeDelta: {x: -20, y: -13}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7590624233063842317
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624233063842318}
m_CullTransparentMesh: 1
--- !u!114 &7590624233063842316
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624233063842318}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 28
m_FontStyle: 2
m_BestFit: 0
m_MinSize: 2
m_MaxSize: 40
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: "\u8BF7\u8F93\u5165\u8D26\u53F7"
--- !u!1 &7590624233116553168
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7590624233116553169}
- component: {fileID: 7590624233116553183}
- component: {fileID: 7590624233116553182}
- component: {fileID: 7590624233116553181}
- component: {fileID: 7590624233116553180}
m_Layer: 5
m_Name: LoginUI
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7590624233116553169
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624233116553168}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7590624232596026019}
- {fileID: 7590624232011094235}
- {fileID: 7590624231809635996}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7590624233116553183
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624233116553168}
m_CullTransparentMesh: 1
--- !u!114 &7590624233116553182
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624233116553168}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0.392}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!223 &7590624233116553181
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624233116553168}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 2
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_AdditionalShaderChannelsFlag: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!114 &7590624233116553180
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624233116553168}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!1 &7590624233362660643
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7590624233362660640}
- component: {fileID: 7590624233362660654}
- component: {fileID: 7590624233362660641}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7590624233362660640
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624233362660643}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7590624231809635996}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7590624233362660654
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624233362660643}
m_CullTransparentMesh: 1
--- !u!114 &7590624233362660641
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7590624233362660643}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 28
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 2
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: "\u767B\u5F55"

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 3f4849d649e5a9647acda84aea936e20
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,6 +1,6 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &8750341085829442500
--- !u!1 &8795259644412428443
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -8,47 +8,85 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6219407630702172851}
- component: {fileID: 3884336621553324141}
- component: {fileID: 6532236131487937402}
- component: {fileID: 6072749800057847719}
m_Layer: 0
m_Name: UILoad
- component: {fileID: 8795259644412428440}
- component: {fileID: 8795259644412428447}
- component: {fileID: 8795259644412428446}
- component: {fileID: 8795259644412428441}
m_Layer: 5
m_Name: TestUI
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6219407630702172851
--- !u!224 &8795259644412428440
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8750341085829442500}
m_GameObject: {fileID: 8795259644412428443}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!223 &3884336621553324141
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8795259644412428447
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8795259644412428443}
m_CullTransparentMesh: 1
--- !u!114 &8795259644412428446
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8795259644412428443}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0.392}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!223 &8795259644412428441
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8750341085829442500}
m_GameObject: {fileID: 8795259644412428443}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 0
m_RenderMode: 2
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
@@ -56,47 +94,7 @@ Canvas:
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_AdditionalShaderChannelsFlag: 1
m_AdditionalShaderChannelsFlag: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!114 &6532236131487937402
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8750341085829442500}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 1
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 750, y: 1330}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 0
--- !u!114 &6072749800057847719
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8750341085829442500}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 55

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 9b969a6a722855c47be887dacd539056
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 6635aa4e94cc66546b8b89c48f0a0099
guid: fa8a171d58c208e41bef0afb19a3c334
folderAsset: yes
DefaultImporter:
externalObjects: {}

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 57e4117f4cd6ae54284898652e70d553
guid: f43899c31dd434901b0422f98bcde88b
TextureImporter:
internalIDToNameTable: []
externalObjects: {}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d623a2b7e069a4c4592d3da48f476189
guid: 01ccaea9b49214edda39f03f648b5b8b
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
@@ -48,7 +48,7 @@ TextureImporter:
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 39, y: 38, z: 40, w: 37}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 0
alphaUsage: 1
alphaIsTransparency: 1

Binary file not shown.

After

Width:  |  Height:  |  Size: 381 B

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 2761fc23b4aa7e34187ac5ffbc3fad9b
guid: 1f44cb90b6ae648c783dac573bfe9cd0
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
@@ -48,7 +48,7 @@ TextureImporter:
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 268, y: 79, z: 267, w: 82}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 0
alphaUsage: 1
alphaIsTransparency: 1
@@ -125,6 +125,18 @@ TextureImporter:
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

View File

@@ -0,0 +1,159 @@
fileFormatVersion: 2
guid: bfad0e64f8ef1491c8def7e679187b89
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 0
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 B

View File

@@ -0,0 +1,159 @@
fileFormatVersion: 2
guid: af67f6c46933441daaa64d6880890586
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 0
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

View File

@@ -0,0 +1,159 @@
fileFormatVersion: 2
guid: c95935206d18f42399e9881ce6bdf61c
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 7, y: 7, z: 8, w: 7}
spriteGenerateFallbackPhysicsShape: 0
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@@ -1,13 +1,13 @@
fileFormatVersion: 2
guid: 2a0112a98875dfd488b5d10bdb8a4903
guid: a43cb397a444ce44f9becc183ced96ed
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
@@ -23,6 +23,8 @@ TextureImporter:
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@@ -34,55 +36,71 @@ TextureImporter:
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
spriteGenerateFallbackPhysicsShape: 0
alphaUsage: 1
alphaIsTransparency: 0
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 10
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
applyGammaDecoding: 0
ignorePngGamma: 0
applyGammaDecoding: 1
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 16384
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 16384
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
@@ -94,32 +112,33 @@ TextureImporter:
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 16384
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
spriteID: 225f91b7ea2e27844960f24bd3108d6a
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

View File

@@ -1,96 +0,0 @@
fileFormatVersion: 2
guid: f9a06e163014f4f46b14f4499d3e7240
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 0
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3b549395c8849674b9cafbbf4c694e57
guid: 1b35096feecdb5a4d894aa81a28f72e5
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: bff68b49afffbe54b9d5ff4e4cad4f23
guid: 9afd4d88f7b567341823779947b83bd9
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -1,40 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<root Version="2.4">
<Common AutoAddressable="True" UniqueBundleName="False" ShowPackageView="False" ShowEditorAlias="False" />
<Package PackageName="DefaultPackage" PackageDesc="默认资源包">
<Group GroupActiveRule="EnableGroup" GroupName="Actor" GroupDesc="角色" AssetTags="Actor">
<root Version="v2.0.0">
<Common ShowPackageView="True" ShowEditorAlias="False" UniqueBundleName="True" />
<Package PackageName="DefaultPackage" PackageDesc="" AutoAddressable="True" LocationToLower="False" IncludeAssetGUID="False" IgnoreDefaultType="True">
<Group GroupActiveRule="EnableGroup" GroupName="Actor" GroupDesc="" AssetTags="">
<Collector CollectPath="Assets/AssetRaw/Actor" CollectGUID="9c67ce0c9edfd4e4aa1006ee39846d66" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
</Group>
<Group GroupActiveRule="EnableGroup" GroupName="UIRaw" GroupDesc="图片资源" AssetTags="UIRaw">
<Group GroupActiveRule="EnableGroup" GroupName="Audios" GroupDesc="" AssetTags="">
<Collector CollectPath="Assets/AssetRaw/Audios" CollectGUID="8ef7a411b66e70f4cb65c2233c9a0868" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
</Group>
<Group GroupActiveRule="EnableGroup" GroupName="Configs" GroupDesc="" AssetTags="">
<Collector CollectPath="Assets/AssetRaw/Configs" CollectGUID="dd2928019aef34248af368b99bc53bea" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
</Group>
<Group GroupActiveRule="EnableGroup" GroupName="DLL" GroupDesc="" AssetTags="">
<Collector CollectPath="Assets/AssetRaw/DLL" CollectGUID="3aad79ec1ea08c24c891bd3c669d4125" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
</Group>
<Group GroupActiveRule="EnableGroup" GroupName="Effects" GroupDesc="" AssetTags="">
<Collector CollectPath="Assets/AssetRaw/Effects" CollectGUID="0fe175e1e1bd49a4ca71e66b6a9b7237" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
</Group>
<Group GroupActiveRule="EnableGroup" GroupName="Fonts" GroupDesc="" AssetTags="">
<Collector CollectPath="Assets/AssetRaw/Fonts" CollectGUID="2473375c9ee163a4b861278b38091455" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
</Group>
<Group GroupActiveRule="EnableGroup" GroupName="Materials" GroupDesc="" AssetTags="">
<Collector CollectPath="Assets/AssetRaw/Materials" CollectGUID="228b1547e7065d546ad0bf215fd6a276" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
</Group>
<Group GroupActiveRule="EnableGroup" GroupName="Scenes" GroupDesc="" AssetTags="">
<Collector CollectPath="Assets/AssetRaw/Scenes" CollectGUID="cace6ee6539f661419b5e5f8ae1c0146" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
</Group>
<Group GroupActiveRule="EnableGroup" GroupName="UI" GroupDesc="" AssetTags="">
<Collector CollectPath="Assets/AssetRaw/UI" CollectGUID="27e87d83814156648b58f380b834e046" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
</Group>
<Group GroupActiveRule="EnableGroup" GroupName="UIRaw" GroupDesc="" AssetTags="">
<Collector CollectPath="Assets/AssetRaw/UIRaw/Atlas" CollectGUID="6d11fa91acc253840a648b58f23db139" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
<Collector CollectPath="Assets/AssetRaw/UIRaw/Raw" CollectGUID="6bc134b912ac6bb4399ea1bec4c11636" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
</Group>
<Group GroupActiveRule="EnableGroup" GroupName="Audios" GroupDesc="音频" AssetTags="Audios">
<Collector CollectPath="Assets/AssetRaw/Audios" CollectGUID="8ef7a411b66e70f4cb65c2233c9a0868" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
</Group>
<Group GroupActiveRule="EnableGroup" GroupName="Configs" GroupDesc="配置表" AssetTags="Configs">
<Collector CollectPath="Assets/AssetRaw/Configs" CollectGUID="dd2928019aef34248af368b99bc53bea" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
</Group>
<Group GroupActiveRule="EnableGroup" GroupName="DLL" GroupDesc="代码" AssetTags="DLL">
<Collector CollectPath="Assets/AssetRaw/DLL" CollectGUID="3aad79ec1ea08c24c891bd3c669d4125" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
</Group>
<Group GroupActiveRule="EnableGroup" GroupName="Effects" GroupDesc="特效" AssetTags="Effects">
<Collector CollectPath="Assets/AssetRaw/Effects" CollectGUID="0fe175e1e1bd49a4ca71e66b6a9b7237" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
</Group>
<Group GroupActiveRule="EnableGroup" GroupName="Materials" GroupDesc="材质球" AssetTags="Materials">
<Collector CollectPath="Assets/AssetRaw/Materials" CollectGUID="228b1547e7065d546ad0bf215fd6a276" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
</Group>
<Group GroupActiveRule="EnableGroup" GroupName="Scenes" GroupDesc="场景" AssetTags="Scenes">
<Collector CollectPath="Assets/AssetRaw/Scenes" CollectGUID="cace6ee6539f661419b5e5f8ae1c0146" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackSeparately" FilterRule="CollectAll" UserData="" AssetTags="" />
</Group>
<Group GroupActiveRule="EnableGroup" GroupName="Shaders" GroupDesc="着色器" AssetTags="Shaders">
<Collector CollectPath="Assets/AssetRaw/Shaders" CollectGUID="2a4bceb84ed685447ace957f497eb810" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackShaderVariants" FilterRule="CollectShaderVariants" UserData="" AssetTags="" />
</Group>
<Group GroupActiveRule="EnableGroup" GroupName="UI" GroupDesc="UI面板" AssetTags="UI">
<Collector CollectPath="Assets/AssetRaw/UI" CollectGUID="27e87d83814156648b58f380b834e046" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackSeparately" FilterRule="CollectAll" UserData="" AssetTags="" />
</Group>
<Group GroupActiveRule="EnableGroup" GroupName="Fonts" GroupDesc="字体" AssetTags="Fonts">
<Collector CollectPath="Assets/AssetRaw/Fonts" CollectGUID="2473375c9ee163a4b861278b38091455" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
</Group>
</Package>
<Package PackageName="OtherPackage" PackageDesc="" AutoAddressable="True" LocationToLower="False" IncludeAssetGUID="False" IgnoreDefaultType="True">
<Group GroupActiveRule="EnableGroup" GroupName="ModelGroup" GroupDesc="" AssetTags="models" />
<Group GroupActiveRule="EnableGroup" GroupName="SceneGroup" GroupDesc="" AssetTags="scenes" />
</Package>
<Package PackageName="Dlc1Package" PackageDesc="" AutoAddressable="True" LocationToLower="False" IncludeAssetGUID="False" IgnoreDefaultType="True">
<Group GroupActiveRule="EnableGroup" GroupName="ModelGroup" GroupDesc="" AssetTags="models" />
<Group GroupActiveRule="EnableGroup" GroupName="SceneGroup" GroupDesc="" AssetTags="scenes" />
</Package>
<Package PackageName="Dlc2Package" PackageDesc="" AutoAddressable="True" LocationToLower="False" IncludeAssetGUID="False" IgnoreDefaultType="True">
<Group GroupActiveRule="EnableGroup" GroupName="ModelGroup" GroupDesc="" AssetTags="models" />
</Package>
</root>

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 218816e46e4f6304eaecd6fdc3a99f4d
guid: 40551812c908533438dbfc2b727c9950
TextScriptImporter:
externalObjects: {}
userData:

View File

@@ -12,12 +12,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 185f6993d5150494d98da50e26cb1c25, type: 3}
m_Name: AssetBundleCollectorSetting
m_EditorClassIdentifier:
ShowPackageView: 0
ShowPackageView: 1
ShowEditorAlias: 0
UniqueBundleName: 0
UniqueBundleName: 1
Packages:
- PackageName: DefaultPackage
PackageDesc: "\u9ED8\u8BA4\u8D44\u6E90\u5305"
PackageDesc:
EnableAddressable: 1
LocationToLower: 0
IncludeAssetGUID: 0
@@ -25,8 +25,8 @@ MonoBehaviour:
AutoCollectShaders: 1
Groups:
- GroupName: Actor
GroupDesc: "\u89D2\u8272"
AssetTags: Actor
GroupDesc:
AssetTags:
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/AssetRaw/Actor
@@ -37,9 +37,113 @@ MonoBehaviour:
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: Audios
GroupDesc:
AssetTags:
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/AssetRaw/Audios
CollectorGUID: 8ef7a411b66e70f4cb65c2233c9a0868
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackDirectory
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: Configs
GroupDesc:
AssetTags:
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/AssetRaw/Configs
CollectorGUID: dd2928019aef34248af368b99bc53bea
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackDirectory
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: DLL
GroupDesc:
AssetTags:
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/AssetRaw/DLL
CollectorGUID: 3aad79ec1ea08c24c891bd3c669d4125
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackDirectory
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: Effects
GroupDesc:
AssetTags:
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/AssetRaw/Effects
CollectorGUID: 0fe175e1e1bd49a4ca71e66b6a9b7237
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackDirectory
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: Fonts
GroupDesc:
AssetTags:
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/AssetRaw/Fonts
CollectorGUID: 2473375c9ee163a4b861278b38091455
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackDirectory
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: Materials
GroupDesc:
AssetTags:
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/AssetRaw/Materials
CollectorGUID: 228b1547e7065d546ad0bf215fd6a276
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackDirectory
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: Scenes
GroupDesc:
AssetTags:
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/AssetRaw/Scenes
CollectorGUID: cace6ee6539f661419b5e5f8ae1c0146
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackDirectory
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: UI
GroupDesc:
AssetTags:
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/AssetRaw/UI
CollectorGUID: 27e87d83814156648b58f380b834e046
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackDirectory
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: UIRaw
GroupDesc: "\u56FE\u7247\u8D44\u6E90"
AssetTags: UIRaw
GroupDesc:
AssetTags:
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/AssetRaw/UIRaw/Atlas
@@ -58,120 +162,52 @@ MonoBehaviour:
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: Audios
GroupDesc: "\u97F3\u9891"
AssetTags: Audios
- PackageName: OtherPackage
PackageDesc:
EnableAddressable: 1
LocationToLower: 0
IncludeAssetGUID: 0
IgnoreDefaultType: 1
AutoCollectShaders: 1
Groups:
- GroupName: ModelGroup
GroupDesc:
AssetTags: models
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/AssetRaw/Audios
CollectorGUID: 8ef7a411b66e70f4cb65c2233c9a0868
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackDirectory
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: Configs
GroupDesc: "\u914D\u7F6E\u8868"
AssetTags: Configs
Collectors: []
- GroupName: SceneGroup
GroupDesc:
AssetTags: scenes
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/AssetRaw/Configs
CollectorGUID: dd2928019aef34248af368b99bc53bea
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackDirectory
FilterRuleName: CollectAll
AssetTags: WEBGL_PRELOAD
UserData:
- GroupName: DLL
GroupDesc: "\u4EE3\u7801"
AssetTags: DLL
Collectors: []
- PackageName: Dlc1Package
PackageDesc:
EnableAddressable: 1
LocationToLower: 0
IncludeAssetGUID: 0
IgnoreDefaultType: 1
AutoCollectShaders: 1
Groups:
- GroupName: ModelGroup
GroupDesc:
AssetTags: models
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/AssetRaw/DLL
CollectorGUID: 3aad79ec1ea08c24c891bd3c669d4125
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackDirectory
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: Effects
GroupDesc: "\u7279\u6548"
AssetTags: Effects
Collectors: []
- GroupName: SceneGroup
GroupDesc:
AssetTags: scenes
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/AssetRaw/Effects
CollectorGUID: 0fe175e1e1bd49a4ca71e66b6a9b7237
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackDirectory
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: Materials
GroupDesc: "\u6750\u8D28\u7403"
AssetTags: Materials
Collectors: []
- PackageName: Dlc2Package
PackageDesc:
EnableAddressable: 1
LocationToLower: 0
IncludeAssetGUID: 0
IgnoreDefaultType: 1
AutoCollectShaders: 1
Groups:
- GroupName: ModelGroup
GroupDesc:
AssetTags: models
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/AssetRaw/Materials
CollectorGUID: 228b1547e7065d546ad0bf215fd6a276
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackDirectory
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: Scenes
GroupDesc: "\u573A\u666F"
AssetTags: Scenes
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/AssetRaw/Scenes
CollectorGUID: cace6ee6539f661419b5e5f8ae1c0146
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackSeparately
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: Shaders
GroupDesc: "\u7740\u8272\u5668"
AssetTags: Shaders
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/AssetRaw/Shaders
CollectorGUID: 2a4bceb84ed685447ace957f497eb810
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackSeparately
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: UI
GroupDesc: "UI\u9762\u677F"
AssetTags: UI
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/AssetRaw/UI
CollectorGUID: 27e87d83814156648b58f380b834e046
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackSeparately
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: Fonts
GroupDesc: "\u5B57\u4F53"
AssetTags: Fonts
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/AssetRaw/Fonts
CollectorGUID: 2473375c9ee163a4b861278b38091455
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackDirectory
FilterRuleName: CollectAll
AssetTags:
UserData:
Collectors: []

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 007a65bdc7416fd4a8823ff50f753d50
guid: c0d90477c8489f0438ae73994ff045b9
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 4c9eb26aee01e8643bd4e6dc965d3366
guid: f183cc1bcf4014f4c80a8580caabcd3f
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f069f2f03dfa55843a74dedc551eefb2
guid: 50fd67a84c64e184c85bf3e1e343ba87
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: afddbfe87a53e9049bf031ee18842f87
guid: e11095ce128a7214a88c291ea368df9a
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -0,0 +1,174 @@
using System.Collections.Generic;
using UnityEditor;
using UnityEditor.IMGUI.Controls;
using UnityEngine;
namespace TEngine.Editor
{
internal sealed class AssetTreeView : TreeView
{
private const float K_ICON_WIDTH = 18f;
private const float K_ROW_HEIGHTS = 20f;
private readonly GUIStyle _stateGuiStyle = new GUIStyle { richText = true, alignment = TextAnchor.MiddleCenter };
public AssetViewItem assetRoot;
public AssetTreeView(TreeViewState state, MultiColumnHeader multicolumnHeader) : base(state, multicolumnHeader)
{
rowHeight = K_ROW_HEIGHTS;
columnIndexForTreeFoldouts = 0;
showAlternatingRowBackgrounds = true;
showBorder = false;
customFoldoutYOffset = (K_ROW_HEIGHTS - EditorGUIUtility.singleLineHeight) * 0.5f;
extraSpaceBeforeIconAndLabel = K_ICON_WIDTH;
}
protected override void DoubleClickedItem(int id)
{
AssetViewItem item = (AssetViewItem)FindItem(id, rootItem);
if (item != null)
{
Object assetObject = AssetDatabase.LoadAssetAtPath(item.data.path, typeof(Object));
EditorUtility.FocusProjectWindow();
Selection.activeObject = assetObject;
EditorGUIUtility.PingObject(assetObject);
}
}
protected override void ExpandedStateChanged() => SortExpandItem();
public void SortExpandItem()
{
if (SortHelper.CurSortType == SortType.None) return;
IList<int> expandItemList = GetExpanded();
foreach (int i in expandItemList)
{
AssetViewItem item = (AssetViewItem)FindItem(i, rootItem);
SortHelper.SortChild(item.data);
}
ResourceReferenceInfo curWindow = EditorWindow.GetWindow<ResourceReferenceInfo>();
curWindow.needUpdateAssetTree = true;
}
public static MultiColumnHeaderState CreateDefaultMultiColumnHeaderState(float treeViewWidth, bool isDepend)
{
List<MultiColumnHeaderState.Column> columns = new List<MultiColumnHeaderState.Column>
{
new MultiColumnHeaderState.Column
{
headerContent = new GUIContent("名称"),
headerTextAlignment = TextAlignment.Center,
sortedAscending = false,
width = 200,
minWidth = 60,
autoResize = false,
allowToggleVisibility = false,
canSort = true,
sortingArrowAlignment = TextAlignment.Center
},
new MultiColumnHeaderState.Column
{
headerContent = new GUIContent("路径"),
headerTextAlignment = TextAlignment.Center,
sortedAscending = false,
width = 360,
minWidth = 60,
autoResize = false,
allowToggleVisibility = false,
canSort = true,
sortingArrowAlignment = TextAlignment.Center
},
new MultiColumnHeaderState.Column
{
headerContent = new GUIContent("状态"),
headerTextAlignment = TextAlignment.Center,
sortedAscending = false,
width = 60,
minWidth = 60,
autoResize = false,
allowToggleVisibility = true,
canSort = false
}
};
if (!isDepend)
{
columns.Add(new MultiColumnHeaderState.Column
{
headerContent = new GUIContent("引用数量"),
headerTextAlignment = TextAlignment.Center,
sortedAscending = false,
width = 60,
minWidth = 60,
autoResize = true,
allowToggleVisibility = true,
canSort = false
});
}
MultiColumnHeaderState state = new MultiColumnHeaderState(columns.ToArray());
return state;
}
protected override TreeViewItem BuildRoot() => assetRoot;
protected override void RowGUI(RowGUIArgs args)
{
AssetViewItem item = (AssetViewItem)args.item;
for (int i = 0; i < args.GetNumVisibleColumns(); ++i)
CellGUI(args.GetCellRect(i), item, (MyColumns)args.GetColumn(i), ref args);
}
private void CellGUI(Rect cellRect, AssetViewItem item, MyColumns column, ref RowGUIArgs args)
{
CenterRectUsingSingleLineHeight(ref cellRect);
switch (column)
{
case MyColumns.Name:
Rect iconRect = cellRect;
iconRect.x += GetContentIndent(item);
iconRect.width = K_ICON_WIDTH;
if (iconRect.x < cellRect.xMax)
{
Texture2D icon = GetIcon(item.data.path);
if (icon != null)
GUI.DrawTexture(iconRect, icon, ScaleMode.ScaleToFit);
}
args.rowRect = cellRect;
base.RowGUI(args);
break;
case MyColumns.Path:
GUI.Label(cellRect, item.data.path);
break;
case MyColumns.State:
GUI.Label(cellRect, ReferenceFinderData.GetInfoByState(item.data.state), _stateGuiStyle);
break;
case MyColumns.RefCount:
GUI.Label(cellRect, ResourceReferenceInfo.Data.GetRefCount(item.data, (item.parent as AssetViewItem)?.data), _stateGuiStyle);
break;
}
}
private Texture2D GetIcon(string path)
{
Object obj = AssetDatabase.LoadAssetAtPath(path, typeof(Object));
if (obj)
{
Texture2D icon = AssetPreview.GetMiniThumbnail(obj);
if (!icon)
icon = AssetPreview.GetMiniTypeThumbnail(obj.GetType());
return icon;
}
return null;
}
private enum MyColumns
{
Name,
Path,
State,
RefCount
}
}
}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 12d7d4edd7d06bc4286ea4af153380c6
guid: dd079ed03e211ca4698770fc925dcf0a
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -0,0 +1,9 @@
using UnityEditor.IMGUI.Controls;
namespace TEngine.Editor
{
internal sealed class AssetViewItem : TreeViewItem
{
public ReferenceFinderData.AssetDescription data;
}
}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: bde7ed0ea10cf29448370b39ecd69a97
guid: 62d7d07cebb3f9b4998845a11799e12c
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -0,0 +1,34 @@
using System.Collections.Generic;
using UnityEditor;
using UnityEditor.IMGUI.Controls;
namespace TEngine.Editor
{
internal sealed class ClickColumn : MultiColumnHeader
{
public delegate void SortInColumn();
public static Dictionary<int, SortInColumn> SortWithIndex = new Dictionary<int, SortInColumn>
{
{ 0, SortByName },
{ 1, SortByPath }
};
public ClickColumn(MultiColumnHeaderState state) : base(state) => canSort = true;
protected override void ColumnHeaderClicked(MultiColumnHeaderState.Column column, int columnIndex)
{
base.ColumnHeaderClicked(column, columnIndex);
if (SortWithIndex.ContainsKey(columnIndex))
{
SortWithIndex[columnIndex].Invoke();
ResourceReferenceInfo curWindow = EditorWindow.GetWindow<ResourceReferenceInfo>();
curWindow.mAssetTreeView.SortExpandItem();
}
}
public static void SortByName() => SortHelper.SortByName();
public static void SortByPath() => SortHelper.SortByPath();
}
}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 4c7fe9e5620ac5d4bae49fbd58746210
guid: 4047444d841109d46b15817bbe887281
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -0,0 +1,29 @@
using UnityEditor;
using UnityEngine;
namespace TEngine.Editor
{
internal sealed class DragAreaGetObject
{
public static Object[] GetObjects(string meg = null)
{
Event aEvent = Event.current;
GUI.contentColor = Color.white;
if (aEvent.type is EventType.DragUpdated or EventType.DragPerform)
{
DragAndDrop.visualMode = DragAndDropVisualMode.Copy;
bool needReturn = false;
if (aEvent.type == EventType.DragPerform)
{
DragAndDrop.AcceptDrag();
needReturn = true;
}
Event.current.Use();
if (needReturn) return DragAndDrop.objectReferences;
}
return null;
}
}
}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3e3af172e88343e4cb49c9e870518ede
guid: 59773aa6a03462c488a3e18ea3de8660
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -0,0 +1,9 @@
namespace TEngine.Editor
{
internal sealed class ListInfo
{
public int Count;
public string Name;
public string Type;
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 36df700a4102b0c4db5f7ec3c485cf0c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,417 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using UnityEditor;
using UnityEngine;
// ReSharper disable InconsistentNaming
namespace TEngine.Editor
{
internal sealed class ReferenceFinderData
{
public enum AssetState : byte
{
Normal,
Changed,
Missing,
Invalid
}
private const string CachePath = "Library/ReferenceFinderCache";
public const int MinThreadCount = 8;
private const int SingleThreadReadCount = 100;
private static readonly int ThreadCount = Math.Max(MinThreadCount, Environment.ProcessorCount);
private static string _basePath;
private static readonly HashSet<string> FileExtension = new HashSet<string>
{
".prefab",
".unity",
".mat",
".asset",
".anim",
".controller"
};
private static readonly Regex GuidRegex = new Regex("guid: ([a-z0-9]{32})", RegexOptions.Singleline | RegexOptions.Compiled | RegexOptions.IgnoreCase);
private readonly Dictionary<(AssetDescription, AssetDescription), int> _dictCache = new Dictionary<(AssetDescription, AssetDescription), int>();
private readonly List<Dictionary<string, AssetDescription>> _threadAssetDict = new List<Dictionary<string, AssetDescription>>();
private readonly List<Thread> _threadList = new List<Thread>();
private int _curReadAssetCount;
private int _totalCount;
public string[] allAssets;
public Dictionary<string, AssetDescription> assetDict = new Dictionary<string, AssetDescription>();
public void CollectDependenciesInfo()
{
try
{
_basePath = Application.dataPath.Replace("/Assets", "");
ReadFromCache();
allAssets = AssetDatabase.GetAllAssetPaths();
_totalCount = allAssets.Length;
_threadList.Clear();
_curReadAssetCount = 0;
foreach (Dictionary<string, AssetDescription> i in _threadAssetDict)
i.Clear();
_threadAssetDict.Clear();
for (int i = 0; i < ThreadCount; i++) _threadAssetDict.Add(new Dictionary<string, AssetDescription>());
bool allThreadFinish = false;
for (int i = 0; i < ThreadCount; i++)
{
ThreadStart method = ReadAssetInfo;
Thread readThread = new Thread(method);
_threadList.Add(readThread);
readThread.Start();
}
while (!allThreadFinish)
{
if (_curReadAssetCount % 500 == 0 &&
EditorUtility.DisplayCancelableProgressBar("Updating", $"Handle {_curReadAssetCount}", (float)_curReadAssetCount / _totalCount))
{
EditorUtility.ClearProgressBar();
foreach (Thread i in _threadList)
i.Abort();
return;
}
allThreadFinish = true;
foreach (Thread i in _threadList)
{
if (i.IsAlive)
{
allThreadFinish = false;
break;
}
}
}
foreach (Dictionary<string, AssetDescription> dict in _threadAssetDict)
{
foreach (KeyValuePair<string, AssetDescription> j in dict)
assetDict[j.Key] = j.Value;
}
EditorUtility.DisplayCancelableProgressBar("Updating", "Write cache", 1f);
WriteToChache();
EditorUtility.DisplayCancelableProgressBar("Updating", "Generate reference data", 1f);
UpdateResourceReferenceInfo();
EditorUtility.ClearProgressBar();
}
catch (Exception e)
{
Debug.LogError(e);
EditorUtility.ClearProgressBar();
}
}
public void ReadAssetInfo()
{
int index = Thread.CurrentThread.ManagedThreadId % ThreadCount;
int intervalLength = _totalCount / ThreadCount;
int start = intervalLength * index;
int end = start + intervalLength;
if (_totalCount - end < intervalLength)
end = _totalCount;
int readAssetCount = 0;
for (int i = start; i < end; i++)
{
if (readAssetCount % SingleThreadReadCount == 0)
{
_curReadAssetCount += readAssetCount;
readAssetCount = 0;
}
GetAsset(_basePath, allAssets[i]);
readAssetCount++;
}
}
public void GetAsset(string dataPath, string assetPath)
{
string extLowerStr = Path.GetExtension(assetPath).ToLower();
bool needReadFile = FileExtension.Contains(extLowerStr);
string fileName = $"{dataPath}/{assetPath}";
string metaFile = $"{dataPath}/{assetPath}.meta";
if (File.Exists(fileName) && File.Exists(metaFile))
{
string metaText = File.ReadAllText(metaFile, Encoding.UTF8);
MatchCollection matchRs = GuidRegex.Matches(metaText);
string selfGuid = matchRs[0].Groups[1].Value.ToLower();
string lastModifyTime = File.GetLastWriteTime(fileName).ToString(CultureInfo.InvariantCulture);
MatchCollection guids = null;
List<string> depend = new List<string>();
if (needReadFile)
{
string fileStr = File.ReadAllText(fileName, Encoding.UTF8);
guids = GuidRegex.Matches(fileStr);
}
int curListIndex = Thread.CurrentThread.ManagedThreadId % ThreadCount;
Dictionary<string, AssetDescription> curDict = _threadAssetDict[curListIndex];
if (!curDict.ContainsKey(selfGuid) || curDict[selfGuid].assetDependencyHashString != lastModifyTime)
{
if (guids != null)
{
for (int index = 0; index < guids.Count; ++index)
{
Match i = guids[index];
depend.Add(i.Groups[1].Value.ToLower());
}
}
AssetDescription ad = new AssetDescription
{
name = Path.GetFileNameWithoutExtension(assetPath),
path = assetPath,
assetDependencyHashString = lastModifyTime,
dependencies = depend
};
if (_threadAssetDict[curListIndex].ContainsKey(selfGuid))
_threadAssetDict[curListIndex][selfGuid] = ad;
else
_threadAssetDict[curListIndex].Add(selfGuid, ad);
}
}
}
private void UpdateResourceReferenceInfo()
{
foreach (KeyValuePair<string, AssetDescription> asset in assetDict)
{
foreach (string assetGuid in asset.Value.dependencies)
{
if (assetDict.ContainsKey(assetGuid))
assetDict[assetGuid].references.Add(asset.Key);
}
}
}
public bool ReadFromCache()
{
assetDict.Clear();
ClearCache();
if (File.Exists(CachePath))
{
List<string> serializedGuid;
List<string> serializedDependencyHash;
List<int[]> serializedDenpendencies;
using (FileStream fs = File.OpenRead(CachePath))
{
BinaryFormatter bf = new BinaryFormatter();
if (EditorUtility.DisplayCancelableProgressBar("Import Cache", "Reading Cache", 0))
{
EditorUtility.ClearProgressBar();
return false;
}
serializedGuid = (List<string>)bf.Deserialize(fs);
serializedDependencyHash = (List<string>)bf.Deserialize(fs);
serializedDenpendencies = (List<int[]>)bf.Deserialize(fs);
EditorUtility.ClearProgressBar();
}
for (int i = 0; i < serializedGuid.Count; ++i)
{
string path = AssetDatabase.GUIDToAssetPath(serializedGuid[i]);
if (string.IsNullOrEmpty(path))
{
AssetDescription ad = new AssetDescription
{
name = Path.GetFileNameWithoutExtension(path),
path = path,
assetDependencyHashString = serializedDependencyHash[i]
};
assetDict.Add(serializedGuid[i], ad);
}
}
for (int i = 0; i < serializedGuid.Count; ++i)
{
string guid = serializedGuid[i];
if (assetDict.ContainsKey(guid))
{
List<string> guids = new List<string>();
foreach (int index in serializedDenpendencies[i])
{
string g = serializedGuid[index];
if (assetDict.ContainsKey(g))
guids.Add(g);
}
assetDict[guid].dependencies = guids;
}
}
UpdateResourceReferenceInfo();
return true;
}
return false;
}
private void WriteToChache()
{
if (File.Exists(CachePath))
File.Delete(CachePath);
List<string> serializedGuid = new List<string>();
List<string> serializedDependencyHash = new List<string>();
List<int[]> serializedDenpendencies = new List<int[]>();
Dictionary<string, int> guidIndex = new Dictionary<string, int>();
using FileStream fs = File.OpenWrite(CachePath);
foreach (KeyValuePair<string, AssetDescription> pair in assetDict)
{
guidIndex.Add(pair.Key, guidIndex.Count);
serializedGuid.Add(pair.Key);
serializedDependencyHash.Add(pair.Value.assetDependencyHashString);
}
foreach (string guid in serializedGuid)
{
List<int> res = new List<int>();
foreach (string i in assetDict[guid].dependencies)
{
if (guidIndex.TryGetValue(i, out var value))
res.Add(value);
}
int[] indexes = res.ToArray();
serializedDenpendencies.Add(indexes);
}
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, serializedGuid);
bf.Serialize(fs, serializedDependencyHash);
bf.Serialize(fs, serializedDenpendencies);
}
public void UpdateAssetState(string guid)
{
if (assetDict.TryGetValue(guid, out AssetDescription ad) && ad.state != AssetState.Invalid)
{
if (File.Exists(ad.path))
ad.state = ad.assetDependencyHashString != File.GetLastWriteTime(ad.path).ToString(CultureInfo.InvariantCulture) ? AssetState.Changed : AssetState.Normal;
else
ad.state = AssetState.Missing;
}
else if (!assetDict.TryGetValue(guid, out ad))
{
string path = AssetDatabase.GUIDToAssetPath(guid);
ad = new AssetDescription
{
name = Path.GetFileNameWithoutExtension(path),
path = path,
state = AssetState.Invalid
};
assetDict.Add(guid, ad);
}
}
public static string GetInfoByState(AssetState state)
{
if (state == AssetState.Changed)
return "<color=red>缓存不匹配</color>";
if (state == AssetState.Missing)
return "<color=red>缓存丢失</color>";
if (state == AssetState.Invalid)
return "<color=yellow>缓存无效</color>";
return "<color=green>缓存正常</color>";
}
private int GetRefCount(string assetGUID, AssetDescription desc, List<string> guidStack)
{
if (guidStack.Contains(assetGUID))
{
Debug.Log("有循环引用, 计数可能不准确");
return 0;
}
guidStack.Add(assetGUID);
int total = 0;
if (assetDict.TryGetValue(assetGUID, out AssetDescription value))
{
if (value.references.Count > 0)
{
Dictionary<string, int> cachedRefCount = new Dictionary<string, int>();
foreach (string refs in value.references)
{
if (!cachedRefCount.ContainsKey(refs))
{
int refCount = GetRefCount(refs, value, guidStack);
cachedRefCount[refs] = refCount;
total += refCount;
}
}
}
else
{
total = 0;
if (desc != null)
{
string guid = AssetDatabase.AssetPathToGUID(desc.path);
foreach (string deps in value.dependencies)
{
if (guid == deps)
total++;
}
}
}
}
guidStack.RemoveAt(guidStack.Count - 1);
return total;
}
public void ClearCache() => _dictCache.Clear();
public string GetRefCount(AssetDescription desc, AssetDescription parentDesc)
{
if (_dictCache.TryGetValue((desc, parentDesc), out int total))
return total.ToString();
string rootGUID = AssetDatabase.AssetPathToGUID(desc.path);
List<string> guidInStack = new List<string> { rootGUID };
Dictionary<string, int> cachedRefCount = new Dictionary<string, int>();
foreach (string refs in desc.references)
{
if (!cachedRefCount.ContainsKey(refs))
{
int refCount = GetRefCount(refs, desc, guidInStack);
cachedRefCount[refs] = refCount;
total += refCount;
}
}
if (desc.references.Count == 0 && parentDesc != null)
{
string guid = AssetDatabase.AssetPathToGUID(desc.path);
foreach (string refs in parentDesc.references)
{
if (refs == guid)
total++;
}
}
guidInStack.RemoveAt(guidInStack.Count - 1);
_dictCache.Add((desc, parentDesc), total);
return total.ToString();
}
internal sealed class AssetDescription
{
public string assetDependencyHashString;
public List<string> dependencies = new List<string>();
public string name = "";
public string path = "";
public List<string> references = new List<string>();
public AssetState state = AssetState.Normal;
}
}
}

Some files were not shown because too many files have changed in this diff Show More