ToLua

目录

前言

一、下载Tolua

二、开始编写C#脚本和Lua脚本

1.C#脚本

2.Lua脚本

3.测试结果



前言

在Tolua中,C#脚本如何调用Lua脚本,同时,Lua脚本又是如何调用C#脚本呢,现在我们最简单的方式实现一下。

一、下载Tolua

下载链接:GitHub - topameng/tolua: The fastest unity lua binding solution

如何下载:

        1.我是通过visuil studio方式下载导入的,复制链接后,大家也可以通过别的方式下载。

        2.打开visuil studio

        3.最后从unity hub中,打开下载的路径就OK了。打开之后,点击确定就行。

        4.完成之后,就像这样。

二、开始编写C#脚本和Lua脚本

1.C#脚本

TestCToLua.cs 代码如下(示例):

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

public class TestCToLua : MonoBehaviour
{

    LuaState lua = null;

    LuaFunction luaFunc = null;

    
    void Start()
    {
        new LuaResLoader();
        lua = new LuaState();
        lua.Start();
        LuaBinder.Bind(lua);
        string path = Application.dataPath + "/Lua";//lua文件位置
        lua.AddSearchPath(path);
        lua.DoFile("TestLuaToc.lua"); //lua脚本名字,需要带后缀名
        CallFunc("TestLuaToc.Start", gameObject);    //调用lua中的函数
    }


    void CallFunc(string func, GameObject obj)
    {
        luaFunc = lua.GetFunction(func);
        luaFunc.Call(obj);
        luaFunc.Dispose();
        luaFunc = null;
    }

    void Update()
    {
        //CallFunc("TestLuaToc.Update", gameObject);    //调用lua中的函数
    }


    public void TestC()
    {
        Debug.Log("Lua调用C#方法");
    }
}



2.Lua脚本

TestLuaToC.lua 代码如下(示例):

TestLuaToc = { }
local GameObject = UnityEngine.GameObject
local this = TestLuaToc
local game
local testCToLua 


function this.Start()
    print('start')
    game = GameObject.Find("GameObject")
    testCToLua = game : GetComponent('TestCToLua')
    testCToLua : TestC()
end

function this.Update()
    print('Update');
end

3.测试结果

          把c#脚本随意挂载在物体上。注意:挂在物体名字需要和Lua脚本中Find()方法中参数保持一致。

        同时想要在Lua脚本中调用C#脚本,还需要最重要的一步

等待几秒后,点击确定即可

         最后unity运行,可以看到结果,C#脚本在Start()方法中调用了Lua脚本中的Start()方法,打印了“start”,而Lua脚本在此方法中调用了C#脚本中的TestC()方法,打印了“Lua调用C#方法”。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值