Ejemplo n.º 1
0
        //添加方法
        public static void addEventLinstener(XLua.LuaTable scriptEnv, string priex = "do")
        {
            IEnumerator it = scriptEnv.GetKeys().GetEnumerator();

            try
            {
                while (it.MoveNext())
                {
                    object f = scriptEnv.Get <object>(it.Current.ToString());
                    if (f != null && f.GetType() == typeof(XLua.LuaFunction))
                    {
                        if (it.Current.ToString().StartsWith(priex))
                        {
                            int          name = int.Parse(it.Current.ToString().Substring(priex.Length));
                            unityAction3 unityFunction;
                            scriptEnv.Get(it.Current.ToString(), out unityFunction);
                            if (!isLinsteners(name))
                            {
                                funcs.Add(name, unityFunction);
                            }
                            Logger.wanr(it.Current, "Lua 事件注册成功");
                        }
                    }
                }
            }
            catch (Exception e) { Logger.wanr("Lua事件注册时出错"); Logger.wanr(e.Message); }
        }
Ejemplo n.º 2
0
        public static void addLuaEventListener(XLua.LuaTable scriptEnv, string priex = "do")
        {
            IEnumerator it = scriptEnv.GetKeys().GetEnumerator();

            try
            {
                while (it.MoveNext())
                {
                    object f = scriptEnv.Get <object>(it.Current.ToString());
                    if (f != null && f.GetType() == typeof(XLua.LuaFunction))
                    {
                        if (it.Current.ToString().StartsWith(priex))
                        {
                            int  name = int.Parse(it.Current.ToString().Substring(priex.Length));
                            Node node = new Node();
                            node.parent = null;
                            node.method = null;
                            //unityAction3 unityFunction;
                            //scriptEnv.Get(it.Current.ToString(), out node.action);
                            node.action = scriptEnv.Get <XLua.LuaFunction>(it.Current.ToString());
                            if (!dict.ContainsKey(name))
                            {
                                dict.Add(name, node);
                                Logger.wanr(it.Current, "Lua 事件注册成功");
                            }
                            else
                            {
                                Logger.wanr("Lua方法注册 失败: " + name);
                            }
                        }
                    }
                }
            }
            catch (Exception e) { Logger.wanr("Lua事件注册时出错"); Logger.wanr(e.Message); }
        }