ToLua(LuaFramework) - ToLua开篇与项目演示案例-tolua最全教程

开篇前言:
学习 tolua 需要有 lua 基础。学习 tolua 需要有 lua 基础。学习 tolua 需要有 lua 基础
重要的事情说三遍

-------------准备工作-----------------
tolua框架 git hub 下载地址:

方法一:
https://github.com/topameng/tolua
github 打不开的建议更改 hosts 地址

方法二:
github.com
在这里插入图片描述

上边儿的两种方式都可以进行一个下载,下载完了以后我们能够得到一个这样的压缩包:
在这里插入图片描述
然后就是解压,完成了以后 ,使用 Unity 打开,需要注意的是 最好使用 2017版本及以下的
打开的时候可能稍微的有点慢,所以这里需要拿出约会等女孩子的那个精神…哈哈哈,我是等够了。后来
我:我已经到了你宿舍楼下(其实我还在宿舍翘着二郎腿)
女孩子:嗯呢,那我下来了
我:好的,别让我等太久哦(这个时候还能抽根烟儿,洗个脸,吹吹头发然后出门儿,你会发现女孩子还没出门儿…)

继续回到我们的正题:
在这里插入图片描述
打开工程以后会弹出一个这样的提示框,生成一些文件
就像是前边儿说的,如果你用的是 2017 以上的话,那么会出现报错:
在这里插入图片描述
这是因为新版本的Unity有些属性和接口已经废弃了的原因,我们需要特殊处理一下
一个是Light类,一个是QualitySettings类,这两个类我们一般不需要在lua中使用,所以我们不对他们生产Wrap即可:
打开CustomSettings.cs,把 _GT(typeof(Light)), 和 _GT(typeof(QualitySettings)), 这两行注释掉
然后单击菜单【Lua】-【Clear wrap files】清理掉Wrap
然后再单击菜单【Lua】-【Generate All】重新生成Wrap,
然后再重新点击菜单【LuaFramework】-【Build Windows Resource】生成lua资源。
生成成功后,我们可以在StreamingAssets中看到很多AssetBundle文件
在这里插入图片描述
但是博主建议大家的话上来先不要玩高配,先一步一步来。老老实实的用 2017 版的
这个时候,我们再来看看他 的资源管理窗口里边都是有那些东西的。
在这里插入图片描述
打开了这个CS类以后,可以看到有一些看到这个脚本那些类作为静态类,那些类需要导出,那些委托需要导出,我们需要输出的lua 类型也需要在 这里进行一个导出。在 tolua 中已经为我们提供了大部分的 Unity 类型,如果说我们需要导入自己的类型,或者说 tolua 没有的类型的时候,那我们就在其中进行一个添加就行了
在这里插入图片描述
这个 Lua 文件夹中存放的就是我们的 lua 脚本
在这里插入图片描述
然后就是我们 的ToLua 文件夹下边的 Soure 文件夹下边儿的 LuaConst.cs 文件:存放的是 lua 路径以及一些配置文件。
Generate 就是一系列的 Lua 文件:主要是生成交互的绑定代码,我们项目中的 C# 和 Lua 交互主要是靠这个文件夹来进行。
在这里插入图片描述
然后就是一些 tolua 的实例代码,可以利用它进行学习
在这里插入图片描述
--------------项目开发步骤----------
这边我是写在 Tolua 下边儿的 Examples 文件夹中,也就是说相当是个实例 项目
首先的话创建一个空的场景:
在这里插入图片描述
只放一个空的 GameRoot 即可。
在这里插入图片描述
脚本代码中编写:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TrueProject : MonoBehaviour {
    
    public static string ShowText()
    {
        return "this is China WuHan Developer true\n"+ "球球交流群 :1067304356";
    }
}

这里我们的目的就是想 在 Unity 中让 lua 脚本调用这里的 Csharp脚本,从而输出字符串
紧接着:我们打开这个脚本
在这里插入图片描述
然后在 CustomSettings .cs 文件中添加上我们刚刚创建的 C# 脚本,后边儿有一个逗号,别忘了
在这里插入图片描述
然后回到我们的 Unity 界面。
在这里插入图片描述
这一步操作就是清空 wrok 文件,然后 Lua 就会重新生成一份新的文件出来。
在这里插入图片描述
直接 Next (确定)下一步即可
在这里插入图片描述
然后就可以看到这样的一个 cs 文件了。这个也就是刚刚我们写的那个 测试案例代码了,用于和 lua 进行交互的。
在这里插入图片描述
打开以后是这样的。可以看一下里边儿的一些方法和内容
至此我们的 csharp 文件差不多创建好了,然后创建一些 lua 文件。因为我们的 lua 文件没办法直接进行创建,所以我们需要打开文件夹,新建一个 txt,然后 将后缀改为 .lua ,不知道怎么该的我也贴在下面了。

在这里插入图片描述
创建完成了以后就是这样的
在这里插入图片描述
这里我使用的是 vsCode 编辑器 建议跟博主保持一致
现在就需要跟刚刚创建出来的 Csharp 代码进行一个交互了
在这里插入图片描述
这样的话就完成了 lua 脚本的创建了 OK 我知道,但是温馨提示,抄的时候别抄错了
程序猿 == 懒
Lua 脚本

--定义一句局部变量
local h = TrueProject.ShowText()
--输出 csharp 中的 字符串儿
print(h)

然后回到我们的 Unity 编辑器这边儿再来创建一个 新的脚本叫做 :GameRoot(游戏启动器)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//引入命名空间
using LuaInterface;

public class GameRoot : MonoBehaviour {
    //不要一开始就 new , 先将资源进行一个释放
    private LuaState lua = null;
	void Start () {
        //自定义加载器,加载 lua
        new LuaResLoader();
        //初始化虚拟机
        lua = new LuaState();
        //开启虚拟机
        lua.Start();
        //注册类
        LuaBinder.Bind(lua);
        //打开 lua 文件
        lua.DoFile("TruePro.lua");
	}
}

然后将我们的 GameRoot 脚本拖动到我们的 GameRoot 游戏对象身上
到了这里我们 就完成了 在 Unity 中使用 lua 调用 csharp 中的字符串了。
可想而知:结果完美运行
在这里插入图片描述

  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值