写在前面

  • 本文是我对toLua(1.0.8.591版本)文件夹内容理解的记录。

文件夹结构

总览

  • 下图是toLua的Unity工程视图:

BaseType

  • 基础类型的Wrap文件,有些是自动生成(即用反射生成的)的,有些是作者准备的。

Core

  • 核心,作者为了让Lua能联系上C#而准备的框架内容:

    • 比如LuaAttribute.cs就记着标签,有些标签是固定要写的,有些标签是为了导出方便写的;
    • 比如LuaBaseRef.cs即作者设计的Lua基类,它的实现成员如下图;在断点查GC时经常会跳到这里来看计数;

  • 翻代码时最常翻到的是LuaState.cs、toLua.cs。

Editor

  • 编辑器用代码,编辑器如下图:

  • ToLuaMenu.cs是编辑器功能区,ToLuaExport.cs是代码模板,Extend文件夹没看到在哪里用。

Example

  • 示例区。
  • 工作项目常把它删了,要看示例的话(比如:不知道清理代码怎么写)还得回来找。

Injection

Lua

  • toLua的Lua脚本们,除了tolua.lua,其他都是工具的lua脚本。tolua.lua其实也只是负责require一些常用脚本,也不能算纯纯的lua入口。
  • Build.bat的功能是把lua脚本打成.bytes文件,可删,因为工作项目用不到,工作项目会写专门的打包脚本处理这部分功能。

Misc

  • 杂项,这里放的所有文件都是可用可不用的:

    • LuaClient:有些工程(比如LuaFramework_UGUI)会直接拿它当toLua启动器,自己写工程的话当然可以写别的启动器。
    • LuaCoroutine:协程。
    • LuaLooper:Mono的那堆更新函数XXXUpdate()。

Reflection

  • 要在Lua里用反射而准备的C#功能代码,可见作者提供的示例22_Reflection。

最新文章

  1. first
  2. MySql密码忘记解决方法
  3. 反射中通过class标记来获取字段及方法
  4. android中src和background区别
  5. Android数据库一些源码分析
  6. DedeCMS 5.7 config.php 跨站脚本漏洞
  7. LeetCode——Linked List Cycle
  8. NVIDIA 显卡温度提示过高,显卡温度高99度怎么办?
  9. ListView 条目加载上滑下滑首尾缩放动画实现
  10. .NET中DLL“没有可放置在工具箱的组件”—FreeTextBox
  11. 纯 Swift 封装的 SQLite 框架:SQLite.swift
  12. Android简单发送邮件(可带附件)
  13. C#中if_else以及for循环的简单理解
  14. [置顶] MVC中使用signalR入门教程
  15. python 归并排序
  16. Codeforces 1154E - Two Teams - [线段树+链表]
  17. linux下的~/
  18. kafka系列五、kafka常用java API
  19. 登录实现之servlet和SpringMVC
  20. linux系统安装jdk详细配置

热门文章

  1. 嵌入式开发er的C语言能力自测(面试)题---top 16
  2. 记一次mysql5.7保存Emoji表情
  3. STM32F4 HAL库中是如何实现UART IO配置的?
  4. ABAP 范围表 range table
  5. Linux下的zip和tar压缩解压缩命令详解
  6. ASP.NET Core3.1 中使用MongoDB基本操作
  7. sql 加工后--小文件解决方案
  8. 使用vite创建vue3+ts项目完整流程
  9. MySQL-explain详解说明
  10. PHP开发支付时开启OPENSSL扩展