神临的uLua学习(五)

来源:互联网 发布:国外网络摄像头直播 编辑:程序博客网 时间:2024/05/17 04:26

17.LuaArray(这是关于Array的uLua使用方式)

  string source = @"        function luaFunc(objs, len)            for i = 0, len - 1 do                print(objs[i])            end            local table1 = {'111', '222', '333'}            return unpack(table1)        end    ";    string[] objs = { "aaa", "bbb", "ccc" };    // Use this for initialization    void Start() {        LuaScriptMgr luaMgr = new LuaScriptMgr();        luaMgr.Start();        LuaState l = luaMgr.lua;        l.DoString(source);        //c# array to lua table        LuaFunction f = l.GetFunction("luaFunc");        object[] rs = f.Call(objs, objs.Length);        f.Release();        //lua table to c# array        foreach (object de in rs) {            Debug.Log(de.ToString());        }    }

难度不大,有优秀C#基础或则有其他编程能力的人应该很容易就会看懂.

18.LuaEnum(这是关于Enum在uLua的使用)

 const string source = @"        local type = LuaEnumType.IntToEnum(1);        print(type == LuaEnumType.AAA);    ";    // Use this for initialization    void Start () {        LuaScriptMgr mgr = new LuaScriptMgr();        mgr.Start();        mgr.lua.DoString(source);    }

下面是辅助类

public enum LuaEnumType {    AAA = 1,    BBB = 2,    CCC = 3,    DDD = 4}

相信你会说 So Easy

19.LuaClass(这是uLua关于类的使用方式)

 const string source = @"        Account = { balance = 0 };        function Account:new(o)                o = o or {};            setmetatable(o, { __index = self });                 return o;          end          function Account.deposit(self, v)              self.balance = self.balance + v;          end          function Account:withdraw(v)              if (v) > self.balance then error 'insufficient funds'; end              self.balance = self.balance - v;          end         SpecialAccount = Account:new();        function SpecialAccount:withdraw(v)              if v - self.balance >= self:getLimit() then                  error 'insufficient funds';              end              self.balance = self.balance - v;          end          function SpecialAccount.getLimit(self)              return self.limit or 0;          end          s = SpecialAccount:new{ limit = 1000 };        print(s.balance);          s:deposit(100.00);        print (s.limit);          print (s.getLimit(s))          print (s.balance)      ";    void Start () {        LuaScriptMgr mgr = new LuaScriptMgr();        mgr.Start();        mgr.lua.DoString(source);    }

相信大家对于类都耳熟能详了,对比着学就行.

20.Debugger(观名知意,就不多说了)

void Start () {        //LuaState l = new LuaState();        //LuaDLL.luaopen_socket_core(l.L);        //l.DoFile("C:/Users/Administrator/Documents/New Unity Project/Assets/uLua/Lua/debugger.lua");        LuaScriptMgr mgr = new LuaScriptMgr();        mgr.Start();        mgr.DoFile("debugger");    }

21.LuaCall(这里是函数的使用方式)

 const string script = @"        A_LuaCall = luanet.import_type('A_LuaCall')          LuaClass = {}        LuaClass.__index = LuaClass        function LuaClass:New()             local self = {};               setmetatable(self, LuaClass);             return self;            end        function LuaClass:test()             A_LuaCall.OnSharpCall(self, self.callback);        end        function LuaClass:callback()            print('test--->>>');        end        LuaClass:New():test();    ";    void Start () {        LuaState lua = new LuaState();        lua.DoString(script);    }    public static void OnSharpCall(LuaTable self, LuaFunction func) {        func.Call(self);    } 这里我还没有使用过,有时间的话再试试喽

好了,关于uLua的整理就到这里了,写了这么多,也是够麻烦的,尤其是对于我这样的人.
下面整理Shader的知识吧,谢谢.

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩写不好字怎么办 大人食欲不好怎么办呢? 二周宝宝便秘怎么办 孩子发烧不吃药怎么办 3岁宝宝不喝药怎么办 婆婆老师说孩子怎么办 初生婴儿不吃药怎么办 讨厌婆婆带孩子怎么办 孩子写字手没劲怎么办 孩子一口药不吃怎么办 小孩不爱喝药怎么办 小孩恶心想吐怎么办 孩子和婆婆不好怎么办 孩子吃东西不消化吐怎么办 小孩吃东西吐了怎么办 儿童吃饭容易吐怎么办 宝宝吃饭会吐怎么办 小孩咳嗽还呕吐怎么办 咳嗽严重到呕吐怎么办 幼儿园中班不会写字怎么办 胃难受吐了怎么办 小孩不肯学写字怎么办 孩子不爱穿内裤怎么办 孩子长期不吃肉怎么办 小孩子不吃肉怎么办呢? 一年级小孩写字慢怎么办 听障碍放弃了怎么办 宝宝开始写字该怎么办 恢复的文档乱码怎么办 小孩做作业磨蹭怎么办 宝宝用左手写字怎么办 小孩动作太慢怎么办 幼儿园不去上学怎么办 嫌弃婆婆带孩子怎么办 孩子写字特别慢怎么办 幼儿园孩子不愿写字怎么办 孩子不愿用力写字怎么办 老公得了懒癌怎么办 太懒不想上班怎么办 写字太多手臂痛怎么办 小孩读书务工证怎么办