tolua调用C#中的静态类

一、创建unity中引用lua虚拟机接口的库

using UnityEngine;
using System.Collections;
using LuaInterface;
using WCALibs;

public class LUA_Test : MonoBehaviour
{
//声明lua对象,以及lua函数对象
    private LuaState lua = null;
    private LuaFunction luaFunc = null;
    void Start()
    {
        lua = new LuaState();
        lua.Start();
        string fullPath = Application.dataPath + "\Lua";
        lua.AddSearchPath(fullPath);
        LuaBinder.Bind(lua);
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            lua.DoFile("Funclua.lua");
            luaFunc = lua.GetFunction("testFunc");
            if (luaFunc != null)
            {
                luaFunc.Call();
            }
        }
    }
    void OnApplicationQuit()
    {
        lua.Dispose();
        lua = null;
    }
}

2//创建静态函数

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

public class LuaSDK
{
    public static void Test()
    {
        Debug.Log("测试静态方法");
    }

    public static void Test1()
    {
        Debug.Log("测试静态方法1"); 
    }

    public static void Test2()
    {
        Debug.Log("测试静态方法2");
    }
}

3、写lua脚本

--创建lua脚本Funclua.lua
function testFunc()
     print("Hello World")
     LuaSDK.test()
end

切记每次写完新的代码,tolua都需要生成代码,在编辑器模式下

原文地址:https://www.cnblogs.com/unity3d-Yang/p/6410141.html