项目后期Lua接入笔记04--宏定义处理HelloWorld
2017-03-28 20:29
483 查看
Lua和我们Unity游戏用的C#脚本语言有些不同,并不是编译型语言,虽然lua语言在真正执行以前,也会进行编译,这就意味着脚本里面并不支持c#里的宏定义形式,比如我们常用的平台判定UNITY_ANDROID或是自身定义的一些宏定义。
我们需要自己手动构建一个类,并将它wrap,在lua里调用对应的函数。
打开customsettings,在staticClassTypes里加入typeof(LuaDefine),在customTypeList里加入 _GT(typeof(LuaDefine))。然后执行Lua/GenerateAll.
在Lua中调用时直接LuaDefine.UNITY_ANDROID()
编写自己的Lua脚本
执行脚本前,我们要将lua加载修改一下,在LuaFileUtils的ReadFile()函数,根据自己的项目来进行修改,也可以自定义loader类。写好后将luaManager绑定在一个脚本上,在一个预制体上挂上我们的脚本LuaMono,并设置好lua脚本名,在游戏运行时将预制体实例化出来。运行游戏就可以看到效果了。
我们需要自己手动构建一个类,并将它wrap,在lua里调用对应的函数。
public static class LuaDefine { public static bool UNITY_ANDROID() { #if UNITY_ANDROID return true; #else return false; #endif } public static bool UNITY_EDITOR() { #if UNITY_EDITOR return true; #else return false; #endif } public static bool UNITY_STANDALONE() { #if UNITY_STANDALONE return true; #else return false; #endif } }
打开customsettings,在staticClassTypes里加入typeof(LuaDefine),在customTypeList里加入 _GT(typeof(LuaDefine))。然后执行Lua/GenerateAll.
在Lua中调用时直接LuaDefine.UNITY_ANDROID()
编写自己的Lua脚本
local transform; local gameObject; Test1 = {}; local this = Test1; local message ; --启动事件-- function Test1.Awake(obj) gameObject = obj; transform = obj.transform; message = obj:GetComponent('LuaMono'); if(LuaDefine.UNITY_ANDROID()) then log("is android platform"); end this.InitPanel(); LuaUtils.Log("Awake lua--->>"..gameObject.name); end --初始化面板-- function Test1.InitFunc() LuaUtils.Log("InitFunc lua--->>"..gameObject.name); end --初始化面板-- function Test1.InitPanel() LuaUtils.Log("InitPanel lua--->>"..gameObject.name); end --销毁事件-- function Test1.OnDestroy() LuaUtils.Log("OnDestroy---->>>"); end return this;
执行脚本前,我们要将lua加载修改一下,在LuaFileUtils的ReadFile()函数,根据自己的项目来进行修改,也可以自定义loader类。写好后将luaManager绑定在一个脚本上,在一个预制体上挂上我们的脚本LuaMono,并设置好lua脚本名,在游戏运行时将预制体实例化出来。运行游戏就可以看到效果了。
相关文章推荐
- 项目后期Lua接入笔记05--网络协议protobuf在lua中的使用pbc
- 项目后期Lua接入笔记10--Lua代码优化1
- 项目后期Lua接入笔记06--按钮事件监听及消息分发
- 项目后期Lua接入笔记08--Lua面向对象及LuaBehaviour的再设计
- 项目后期Lua接入笔记09--策划Excel转Lua
- 项目后期Lua接入笔记11--Lua代码优化2
- 项目后期Lua接入笔记02--框架剥离
- 项目后期Lua接入笔记03--LuaBehaviour设计
- 项目后期Lua接入笔记07--预制属性转lua代码
- 项目后期Lua接入笔记01--框架及IDE
- Spark Streaming实时流处理项目实战笔记04
- 项目笔记--图像处理
- maven学习笔记-04-构建项目
- lua学习项目笔记
- GUI编程笔记(java)04:GUI(HelloWorld)窗体案例
- spring学习笔记(1)——创建spring项目之HelloWorld
- 没头没尾--项目开发笔记:异常处理与日志记录代码自动生成(工具能生成多少代码!?续一)
- 仿百思不得其姐项目开发(粗略笔记,后期规范排版和更新)
- Quick cocos2dx-Lua(V3.3R1)学习笔记(1)----创建新项目
- 项目笔记---CSharp图片处理