• Unity热更新学习(二) —— ToLua c#与lua的相互调用


    tolua 下载地址:http://www.ulua.org/index.html

    c#调用lua的方法,tolua的官方例子提供了很多种。我初步学了一种在做项目使用的方法。通过DoFile方法执行lua脚本。目前只在windows环境下的Unity上测试,没有在真机运行。

    一、创建一个c# script封装一下LogError方法

    1 public class GameDebug {
    2     public static void LogError(object msg)
    3     {
    4         Debug.LogError("打印:" + msg.ToString());
    5     }
    6 }
    View Code

    并把这个类加到CustomSetting里,并wrap一下

    二、创建一个lua脚本

    local Main = {};
    
    
    local c1,c2;
    -- 游戏主入口
    function Main:GameEnter()            
        GameDebug.LogError("从这开始");
    end
    
    
    return Main;
    View Code

    三、创建一个c# script并注册lua虚拟机,把这个script挂在场景里的某个GameObject上

     1 void Start () {
     2         //创建lua虚拟机
     3         luaState = new LuaState();
     4 
     5         //绑定lua虚拟机
     6         LuaBinder.Bind(luaState);
     7         luaState.Start();
     8 
     9         LuaTable lt = luaState.DoFile<LuaTable>("Main.lua");
    10         //调用lua游戏入口
    11         lt.Call("GameEnter", lt);
    12         lt.Dispose();
    13     }
    View Code

    运行结果:

  • 相关阅读:
    split 过滤空的元素
    Python内置函数(65)——staticmethod
    Python内置函数(64)——classmethod
    Python内置函数(63)——property
    Python内置函数(62)——exec
    Python内置函数(61)——eval
    Js里头的对象字面量
    Js中的prototype的用法二
    Js中的prototype的用法一
    Mxgraph使用总结二
  • 原文地址:https://www.cnblogs.com/yougoo/p/9795005.html
Copyright © 2020-2023  润新知