Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
东方怂天
xLua
提交
426e224f
X
xLua
项目概览
东方怂天
/
xLua
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
xLua
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
426e224f
编写于
1月 08, 2019
作者:
J
johnche(车雄生)
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
为unity 2018增加“XLua/Generate Minimize Code”菜单,这个菜单只生成必要的,支持编辑器下运行的最小代码
上级
10b41244
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
24 addition
and
1 deletion
+24
-1
Assets/XLua/Doc/faq.md
Assets/XLua/Doc/faq.md
+3
-1
Assets/XLua/Src/Editor/Generator.cs
Assets/XLua/Src/Editor/Generator.cs
+21
-0
未找到文件。
Assets/XLua/Doc/faq.md
浏览文件 @
426e224f
...
...
@@ -38,7 +38,9 @@ il2cpp默认会对诸如引擎、c#系统api,第三方dll等等进行代码剪
1、ILGenerator报错
这是因为Api Compatibility Level设置为.net standard 2.0,而.net standard 2.0不支持emit导致的,更新到2019年1月4号后面的版本,可以解决编译问题,但编辑器下就得生成代码才能跑了。生成代码,可能会参数下一个问题。
这是因为Api Compatibility Level设置为.net standard 2.0,而.net standard 2.0不支持emit导致的,更新到2019年1月8号后面的版本,可以解决编译问题,但编辑器下就得最少要执行(XLua/Generate Minimize Code)才能跑。
“XLua/Generate Minimize Code”:这个菜单只生成编辑器下必要的生成代码,比如delegate
<->
function,interface
<->
table适配代码,换言之,CSharpCallLua配置的delegate和interface。
ps:有的人以为设置.net standard 2.0是为了保持和以前版本的.NET 2.0设置一致,实际上.net standard是个新标准,其1.0版本都需要.net framework 4.5以上才支持,如果真的需要和老版本unity一致,正确做法是把“Scripting Backend”设置为3.5。
...
...
Assets/XLua/Src/Editor/Generator.cs
浏览文件 @
426e224f
...
...
@@ -1638,6 +1638,27 @@ namespace CSObjectWrapEditor
clear
(
GeneratorConfig
.
common_path
);
}
#if UNITY_2018
[
MenuItem
(
"XLua/Generate Minimize Code"
,
false
,
3
)]
public
static
void
GenMini
()
{
var
start
=
DateTime
.
Now
;
Directory
.
CreateDirectory
(
GeneratorConfig
.
common_path
);
GetGenConfig
(
XLua
.
Utils
.
GetAllTypes
());
luaenv
.
DoString
(
"require 'TemplateCommon'"
);
var
gen_push_types_setter
=
luaenv
.
Global
.
Get
<
LuaFunction
>(
"SetGenPushAndUpdateTypes"
);
gen_push_types_setter
.
Call
(
GCOptimizeList
.
Where
(
t
=>
!
t
.
IsPrimitive
&&
SizeOf
(
t
)
!=
-
1
).
Distinct
().
ToList
());
var
xlua_classes_setter
=
luaenv
.
Global
.
Get
<
LuaFunction
>(
"SetXLuaClasses"
);
xlua_classes_setter
.
Call
(
XLua
.
Utils
.
GetAllTypes
().
Where
(
t
=>
t
.
Namespace
==
"XLua"
).
ToList
());
GenDelegateBridges
(
XLua
.
Utils
.
GetAllTypes
(
false
));
GenCodeForClass
(
true
);
GenLuaRegister
(
true
);
callCustomGen
();
Debug
.
Log
(
"finished! use "
+
(
DateTime
.
Now
-
start
).
TotalMilliseconds
+
" ms"
);
AssetDatabase
.
Refresh
();
}
#endif
public
delegate
IEnumerable
<
CustomGenTask
>
GetTasks
(
LuaEnv
lua_env
,
UserConfig
user_cfg
);
public
static
void
CustomGen
(
string
template_src
,
GetTasks
get_tasks
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录