[发明专利]一种Lua语言和Unity之间的数据交互方法有效
申请号: | 202011544878.3 | 申请日: | 2020-12-23 |
公开(公告)号: | CN112579062B | 公开(公告)日: | 2022-04-29 |
发明(设计)人: | 梁超;汪兴 | 申请(专利权)人: | 厦门极致互动网络技术股份有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41;A63F13/77 |
代理公司: | 厦门致群财富专利代理事务所(普通合伙) 35224 | 代理人: | 刘兆庆 |
地址: | 361000 福建省厦门市火*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 lua 语言 unity 之间 数据 交互 方法 | ||
1.一种Lua语言和Unity之间的数据交互方法,其特征在于:包括如下步骤:
S1、定义Lua变量的类型:以命名的方式对Lua本地变量进行类型的定义,并转换成固定格式的Lua代码,将所述Lua代码写入挂载到对应的Unity场景或预制体上的C#中介组件上的Lua脚本文件中;
S2、Lua变量的赋值和存储:解析所述Lua代码,识别所有变量及其对应的类型,遍历保存的Unity场景或预制体,通过名字找到Lua变量对应的对象,对所述Lua变量进行自动赋值,并将收集到的所有对象放入C#中介组件中的数据容器中;
S3、自动序列化:将所述数据容器中的数据序列化并持久地存储到Unity的场景文件或预制体文件中;
S4、反序列化:C#中介组件在游戏运行起来且自身被激活后,将所述数据容器中收集到的序列化数据全部反序列化出来,并将其组装成一个Lua语言能够识别的LuaTable类型的变量;
S5、传递变量:所述C#中介组件初始化自身挂载的Lua脚本文件,将所述LuaTable类型的变量传递到所述Lua脚本文件以供使用。
2.如权利要求1所述的一种Lua语言和Unity之间的数据交互方法,其特征在于:所述步骤S1中所述类型的定义采用手动编写或自动编写。
3.如权利要求2所述的一种Lua语言和Unity之间的数据交互方法,其特征在于:所述类型包括引用类型和值类型,所述引用类型包括游戏对象、材料、变形、照相机或按钮,所述值类型包括整型变量、单精度浮点数或数组。
4.如权利要求1所述的一种Lua语言和Unity之间的数据交互方法,其特征在于:步骤S2中所述Lua代码解析时采用正则表达式。
5.如权利要求1所述的一种Lua语言和Unity之间的数据交互方法,其特征在于:所述步骤S2中的赋值还可以采用手动赋值,具体为:所述Unity调用EditorGUILayout.ObjectField接口进行绘制,在Unity的监察器面板上直接对Lua变量进行赋值。
6.如权利要求5所述的一种Lua语言和Unity之间的数据交互方法,其特征在于:所述步骤S3中的自动序列化由Unity自动完成。
7.如权利要求6所述的一种Lua语言和Unity之间的数据交互方法,其特征在于:所述步骤S3在存储前需要将所述Unity的场景文件或预制体文件标记为脏。
8.如权利要求7所述的一种Lua语言和Unity之间的数据交互方法,其特征在于:所述步骤S4中的反序列化的流程为Unity自动进行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门极致互动网络技术股份有限公司,未经厦门极致互动网络技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011544878.3/1.html,转载请声明来源钻瓜专利网。