Exemple #1
0
    public override void Execute(IMessage message)
    {
        object data = message.Body;

        if (data == null)
        {
            return;
        }

        if (luaMgr == null)
        {
            luaMgr = AppFacade.Instance.GetManager <LuaManager>(ManagerName.Lua);
        }

        if (data is KeyValuePair <int, ByteBuffer> )
        {
            KeyValuePair <int, ByteBuffer> buffer = (KeyValuePair <int, ByteBuffer>)data;
            luaMgr.CallLuaFunction <int, ByteBuffer>("Network.OnSocket", buffer.Key, buffer.Value);
            //switch (buffer.Key) {
            //    default: Util.CallMethod("Network", "OnSocket", buffer.Key, buffer.Value); break;
            //}
        }
        else if (data is KeyValuePair <int, RazByteBuffer> )
        {
            KeyValuePair <int, RazByteBuffer> buffer = (KeyValuePair <int, RazByteBuffer>)data;
            luaMgr.CallLuaFunction <int, RazByteBuffer>("Network.OnSocket", buffer.Key, buffer.Value);
        }
    }
Exemple #2
0
        /// <summary>
        /// 执行Lua方法
        /// </summary>
        public static object[] CallMethod(string module, string func, params object[] args)
        {
            LuaManager luaMgr = LuaManager.Instance;//AppFacade.Instance.GetManager<LuaScriptMgr>(ManagerName.Lua);

            if (luaMgr == null)
            {
                return(null);
            }
            string funcName = module + "." + func;

            funcName = funcName.Replace("(Clone)", "");
            return(luaMgr.CallLuaFunction(funcName, args));
        }
Exemple #3
0
 static int CallLuaFunction(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 1);
         string arg0 = ToLua.CheckString(L, 1);
         LuaManager.CallLuaFunction(arg0);
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Exemple #4
0
    void OnGUI()
    {
        //GUI.Label(new Rect(10, 0, 500, 50), "(1) 单击 \"Lua/Gen Lua Wrap Files\"。(2) 运行Unity游戏");
        //GUI.Label(new Rect(10, 20, 500, 50), "PS: 清除缓存,单击\"Lua/Clear LuaBinder File + Wrap Files\"。");
        //GUI.Label(new Rect(10, 40, 500, 50), "PS: 若运行到真机,请设置Const.DebugMode=false,本地调试=true");
        //GUI.Label(new Rect(10, 60, 900, 50), message);
        GUILayout.BeginHorizontal();
        //string luafile = "ui/common/TipsMediator";
        //luafile = GUILayout.TextField(luafile, 30);
        if (GUILayout.Button(fun1btn))
        {
            //LuaManager.DoFile(luafile);
            LuaManager.CallLuaFunction("MainTestOpen");
        }
        if (GUILayout.Button(fun2btn))
        {//这里的问题在于全部的数据也被销毁了,要重新向服务器请求。
            //AppFacade.Instance.UnloadLuaState();
            LuaManager.CallLuaFunction("MainTestClose");
        }
        if (GUILayout.Button(fun3btn))
        {
            LuaManager.CallLuaFunction <string>("Facade.SendMessage", "OpenTips");
            //AppFacade.Instance.EnterLua();
            //"切进主城", "模拟进入主城注册Command。"
            //LuaManager.CallLuaFunction("Facade.ChangeScene");
            //LuaManager.CallLuaFunction<string>("GameManager.OnSceneLoaded", "main_city");
        }

        GUILayout.Label("Message:" + message);
        GUILayout.EndHorizontal();

        if (string.IsNullOrEmpty(messageName))
        {
            return;
        }
        if (messageName.StartsWith("EXTRACT_"))
        {
            GUILayout.Label("正在解包的文件:" + extractFileName);
            GUILayout.Label("当前解包数/总数:" + extractNowCount + "/" + extractAllCount);
            progress = (float)extractNowCount / extractAllCount;
            GUILayout.Label(string.Format("解包进度数:{0:F}%", progress * 100.0));
        }
        else if (messageName.StartsWith("UPDATE_"))
        {
            GUILayout.Label("正在下载的文件:" + updateFileName);
            GUILayout.Label("下载状态数:" + updateNowCount + "/" + updateAllCount);
            GUILayout.Label("下载速度:" + updateSpeed);
        }
    }