unity使用lua

为什么是使用Lua

脚本语言的优势:
  • 大部分脚本语言相对C++这种高级编辑语言来说,都语法简单,通俗易懂

  • 使用脚本语言可以减少游戏的编译时间,甚至在游戏运行时可以修改脚本,不需要去重新编译启动。

  • 脚本语言一般是弱类型。C++需要自己实现一套反射机制

游戏中用的比较多的脚本是lua,python。手机游戏开发居多的是lua。lua具有轻巧,速度快的特点,与C交互操作方便。

怎么在unity中使用xLua

xlua 加入工程。lua和c#交互和C++差不多。主要是把Lua源码编译成dll,在C#进行调用。
一个好的lua结构:

  • 新建一个main.lua文件,在C#调用dostring("require main")

  • lua面向对你编程,很多人采用的cococs2dx的class方式。这里推荐另外一种简洁方式

function Class(base, _ctor)
    local c = {}
    if not _ctor and type(base) == 'function' then
        _ctor = base
        base = nil
    elseif type(base) == 'table' then
        for i,v in pairs(base) do
            c[i] = v
        end
        c._base = base
    end
    c.__index = c

    local mt = {}
    
    mt.__call = function(class_tbl, ...)
        local obj = {}
        setmetatable(obj,c)
    
        if _ctor then
            _ctor(obj,...)
        end
        return obj
    end    
        
    c._ctor = _ctor
    setmetatable(c, mt)
    return c
end

使用的时候类似C风格,直接tabletest()就可以了。不再需要像Cocos2dx使用tabletest.new()

你可能感兴趣的:(unity使用lua)