框架-LuaFramework(待写)

简介

从接触到Lua到现在差不多半年了,但对于Lua框架很多地方并不知道是如何实现的,只知道一直在写着游戏逻辑的Lua脚本。最近开始系统了解学习一下,不断扩充,充实自己。

  • ulua:老外写的,支持反射+wrap方式
  • cstolua:蒙哥,基于ulua,更快
  • tolua:虽然lua之前最快,但tolua#比ulua更快
  • simpleFramework:基于ulua的框架
  • luaFramework:基于tolua的框架

刚开始总是对这几个名词弄混,正好整理一下

结构

完整框架基本是这样的:

  • Editor:
    • customsetting:添加需要导出注册到Lua的类型列表
    • packager:资源打包
  • Examples:自带例子
  • Lua:框架自带的Lua源码目录,用户自定义的Lua脚本放这里面,打包的时候会将其按照目录结构生成到StreamingAssets中,再上传到Web服务器上,达到热更。
    • 3rd:第三方插件
      • cjson:json支持
      • luabitop:让lua支持位运算
      • pbc:云风大神早起对protobuf的解析库
      • pblua:网上流传的Lua方案,基于protobuf的protoc-gen-lua
      • sproto:云风大神新作,比pbc更小效率高
    • common:公用的Lua文件目录,就是全局用
      • define:包含变量声明,全局配置
      • functions:常用函数库
      • protocal:通讯协议
    • controller:控制器目录,处理数据,控制面板显示
    • logic:存放管理器类,新加的管理器可以放里面
      • ctrlmanager:管理控制controller层,进而控制view层
      • game:检索并require view文件夹下各个panel文件
      • luaclass:New方法,构建类
    • view:面板显示,走的是Unity GameObject的生命周期的事件调用
    • events:eventlib事件系统
  • Luajit:Lua编译器
  • Scripts:框架的C#目录
    • common:
      • luabehaviour:
      • lualoader:
    • constdefine
      • appconst:
      • managername:
      • noticonst:
    • controller:
    • framework:
    • manager:
    • network:
    • objectpool:
    • utility:
    • view:
  • ToLua:tolua的核心目录

流程

流程.png

自定义API

  1. 编写C#类(方法是静态的)

    public class Test {
    
     public static void Log()
        {
            Debug.LogError("----------");
        }
    }
  2. customsetting中添加类类型

    _GT(typeof(Test))

  3. 重新生成wrap文件,在新生成的TestWrap中有对应生成的Log方法

  4. Lua中调用Test.Log()

    此处调用是用‘ . ’

报错解决

  1. Create not wrap ulua type…

    这不是错误,警告你当前类没有生成wrap,用的反射,为了效率请将该类注册wrap

  2. luaopen_pack, referenced from: "_lua_tocbuffer"

    去掉LuaDLL.cs中报错函数声明,及其相关报错代码

  3. Type UnityEngine.xxx does not contain a definition for xxx and no extension method xxx of type UnityEngine.xxx could be found (are you missing a using directive or an assembly reference

    因为unity不同平台版本api各不相同,因此不是特别统一,遇到此问题直接删除错误代码即可

小结

参考

http://doc.ulua.org/article/ngui/simpleframework_base1.html

https://blog.csdn.net/Momo_Da/article/details/52857219

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值