Пример #1
0
 public void OnExitDelegate()
 {
     if (OnExit != null)
     {
         OnExit.BeginPCall();
         OnExit.PCall();
         OnExit?.EndPCall();
     }
 }
Пример #2
0
 public void OnEnterDelegate()
 {
     if (OnEnter != null)
     {
         OnEnter.BeginPCall();
         OnEnter.PCall();
         OnEnter?.EndPCall();
     }
 }
Пример #3
0
 public void OnUpdateDelegate()
 {
     if (OnUpdate != null)
     {
         OnUpdate.BeginPCall();
         OnUpdate.PCall();
         OnUpdate?.EndPCall();
     }
 }
Пример #4
0
    /// <summary>
    /// !!!: lua端不可使用该接口
    /// </summary>
    public void OnPointerUp(PointerEventData data)
    {
        if (!m_beenDragged)
        {
            if (null != click)
            {
                Vector3 pos = (Vector3)m_mouseLastPos - m_rect.localPosition;
                //LuaManager.instance.CallFunctionNoGC(click, false, pos.x, pos.y);
                click.BeginPCall();
                click.Push(pos.x);
                click.Push(pos.y);
                click.PCall();
                click.EndPCall();
                //click.Call(pos.x, pos.y);
            }

            //Debug.LogError("bbbbb: " + ((Vector3)m_mouseLastPos - m_rect.localPosition));
        }
    }
Пример #5
0
        /// <summary>
        /// 抛出事件
        /// </summary>
        /// <param name="type">Type.</param>
        /// <param name="data">Data.</param>
        private void DispatchEvent(string type, System.Object data = null)
        {
            Common.looper.AddNetAction(() => {
                if (callback != null)
                {
                    callback(type, data);
                }

                if (luaTarget != null)
                {
                    s_dispatchEvent.BeginPCall();
                    s_dispatchEvent.Push(luaTarget);
                    s_dispatchEvent.Push(type);
                    s_dispatchEvent.Push(data);
                    s_dispatchEvent.PCall();
                    s_dispatchEvent.EndPCall();
                }
            });
        }
Пример #6
0
        private static void DispatchEvent(LuaTable ed, string type, PointerEventData eventData)
        {
            if (ed == null)
            {
                return;
            }

            if (s_dispatchEvent == null)
            {
                s_dispatchEvent = Common.luaMgr.state.GetFunction("PointerEvent.DispatchEvent");
            }

            s_dispatchEvent.BeginPCall();
            s_dispatchEvent.Push(ed);
            s_dispatchEvent.Push(type);
            s_dispatchEvent.Push(eventData);
            s_dispatchEvent.PCall();
            s_dispatchEvent.EndPCall();
        }
Пример #7
0
        public override void Trigger()
        {
            if (!Application.isPlaying)
            {
                return;
            }

            LuaManager  luaMgr = AppFacade.Instance.GetManager <LuaManager>();
            LuaFunction func   = luaMgr.mainLua.GetFunction("CurtainPanel.show");

            if (func == null)
            {
                return;
            }

            func.BeginPCall();
            func.PCall();
            func.EndPCall();
        }
Пример #8
0
    public static void CallFunc(string funcName, params object[] args)
    {
        _luaFunc = _lua.GetFunction(funcName);
        if (_luaFunc == null)
        {
            return;
        }
        _luaFunc.BeginPCall();
        if (args.Length != 0)
        {
            foreach (var arg in args)
            {
                _luaFunc.Push(arg);
            }
        }

        _luaFunc.PCall();
        _luaFunc.EndPCall();
    }
    static int set_onValidateInput(IntPtr L)
    {
        object o = LuaScriptMgr.GetLuaObject(L, 1);

        UnityEngine.UI.InputField obj = (UnityEngine.UI.InputField)o;

        if (obj == null)
        {
            LuaTypes types = LuaDLL.lua_type(L, 1);

            if (types == LuaTypes.LUA_TTABLE)
            {
                LuaDLL.luaL_error(L, "unknown member name onValidateInput");
            }
            else
            {
                LuaDLL.luaL_error(L, "attempt to index onValidateInput on a nil value");
            }
        }

        LuaTypes funcType = LuaDLL.lua_type(L, 3);

        if (funcType != LuaTypes.LUA_TFUNCTION)
        {
            obj.onValidateInput = (UnityEngine.UI.InputField.OnValidateInput)LuaScriptMgr.GetNetObject(L, 3, typeof(UnityEngine.UI.InputField.OnValidateInput));
        }
        else
        {
            LuaFunction func = LuaScriptMgr.ToLuaFunction(L, 3);
            obj.onValidateInput = (param0, param1, param2) =>
            {
                int top = func.BeginPCall();
                LuaScriptMgr.Push(L, param0);
                LuaScriptMgr.Push(L, param1);
                LuaScriptMgr.Push(L, param2);
                func.PCall(top, 3);
                object[] objs = func.PopValues(top);
                func.EndPCall(top);
                return((char)objs[0]);
            };
        }
        return(0);
    }
Пример #10
0
    protected override void OnLoadFinished()
    {
#if UNITY_5
        Application.logMessageReceived += ShowTips;
#else
        Application.RegisterLogCallback(ShowTips);
#endif
        base.OnLoadFinished();

        TextAsset text = (TextAsset)Resources.Load("jsonexample", typeof(TextAsset));
        string    str  = text.ToString();
        luaState.DoString(script);
        LuaFunction func = luaState.GetFunction("Test");
        func.BeginPCall();
        func.Push(str);
        func.PCall();
        func.EndPCall();
        func.Dispose();
    }
Пример #11
0
    private void Start()
    {
        this.state = new LuaState();
        this.state.Start();
        this.state.LogGC = true;
        this.state.DoString(this.script, "LuaState.cs");
        LuaFunction function = this.state.GetFunction("Test", true);

        function.BeginPCall();
        function.PCall();
        this.thread      = function.CheckLuaThread();
        this.thread.name = "LuaThread";
        function.EndPCall();
        function.Dispose();
        this.thread.Resume(new object[]
        {
            10
        });
    }
Пример #12
0
        void Update()
        {
            if (stepState == StepState.Enable)
            {
                stepState = StepState.Over;
                step.BeginPCall();
                step.Push(systemsName);
                step.PCall();
                step.EndPCall();
            }

            name = string.Format("{0} ({1} init, {2} exe, {3:0.###} ms)",
                                 systemsName, profile["initializesystemcount"], profile["executesystemcount"], profile["executecostnow"]);

            if (Time.frameCount % (int)avgResetInterval == 0 && (bool)profile["enable"])
            {
                Reset(systemsName);
            }
        }
    void Start()
    {
        state = new LuaState();
        state.Start();
        state.LogGC = true;
        state.DoString(script);

        LuaFunction func = state.GetFunction("Test");

        func.BeginPCall();
        func.PCall();
        thread      = func.CheckLuaThread();
        thread.name = "LuaThread";
        func.EndPCall();
        func.Dispose();
        func = null;

        thread.Resume(10);
    }
Пример #14
0
    static int set_onValidateInput(IntPtr L)
    {
        object o = L.ToUserData(1);

        UnityEngine.UI.InputField obj = (UnityEngine.UI.InputField)o;

        if (obj == null)
        {
            LuaTypes types = L.Type(1);

            if (types == LuaTypes.LUA_TTABLE)
            {
                LuaDLL.luaL_error(L, "unknown member name onValidateInput");
            }
            else
            {
                LuaDLL.luaL_error(L, "attempt to index onValidateInput on a nil value");
            }
        }

        LuaTypes funcType = L.Type(3);

        if (funcType != LuaTypes.LUA_TFUNCTION)
        {
            obj.onValidateInput = (UnityEngine.UI.InputField.OnValidateInput)L.ChkUserData(3, typeof(UnityEngine.UI.InputField.OnValidateInput));
        }
        else
        {
            LuaFunction func = L.ToLuaFunction(3);
            obj.onValidateInput = (param0, param1, param2) =>
            {
                int top = func.BeginPCall();
                L.PushString(param0);
                L.PushInteger(param1);
                L.PushLightUserData(param2);
                func.PCall(top, 3);
                object[] objs = func.PopValues(top);
                func.EndPCall(top);
                return((char)objs[0]);
            };
        }
        return(0);
    }
Пример #15
0
    public void OnPointerUp(UnityEngine.EventSystems.PointerEventData eventData)
    {
        int     trigger = 0;
        Vector3 vec     = eventData.position - m_lastPos;

        if (vec.y > m_sensitivity)
        {
            Show(true);
            trigger = 1;
        }
        else if (vec.y < -m_sensitivity)
        {
            Show(false);
            trigger = 2;
        }

        /* Vector3 wPos = m_uiCamera.ScreenToWorldPoint(eventData.position);
         * Vector3 lPos = transform.InverseTransformPoint(wPos);
         * if (Square(lPos.x) + Square(lPos.y) > m_radiusPow)
         * {
         *   Vector2 vec = eventData.position - m_lastPos;
         *   if (vec.y > 0)
         *   {
         *       Show(true);
         *       trigger = 1;
         *   }
         *   else
         *   {
         *       Show(false);
         *       trigger = 2;
         *   }
         * }*/
        if (null != switchTarget)
        {
            //LuaManager.instance.CallFunctionNoGC(switchTarget, false, trigger);
            //   switchTarget.Call(trigger);
            switchTarget.BeginPCall();
            switchTarget.Push(trigger);
            switchTarget.PCall();
            switchTarget.EndPCall();
        }
    }
Пример #16
0
    public void Init(LuaTable tb)
    {
        mLuaState = SimpleLuaClient.GetMainState();
        if (mLuaState == null)
        {
            return;
        }

        if (tb == null)
        {
            mLuaTable = mLuaState.GetTable(name);
        }
        else
        {
            mLuaTable = tb;
        }
        if (mLuaTable == null)
        {
            Debug.LogWarning("mLuaTable is null:" + name);
            return;
        }
        mLuaTable["gameObject"]    = gameObject;
        mLuaTable["transform"]     = transform;
        mLuaTable["lua_behaviour"] = this;

        LuaFunction awakeFunc = mLuaTable.GetLuaFunction("Awake") as LuaFunction;

        if (awakeFunc != null)
        {
            awakeFunc.BeginPCall();
            awakeFunc.Push(mLuaTable);
            awakeFunc.PCall();
            awakeFunc.EndPCall();

            awakeFunc.Dispose();
            awakeFunc = null;
        }

        mUpdateFunc      = mLuaTable.GetLuaFunction("Update") as LuaFunction;
        mFixedUpdateFunc = mLuaTable.GetLuaFunction("FixedUpdate") as LuaFunction;
        mLateUpdateFunc  = mLuaTable.GetLuaFunction("LateUpdate") as LuaFunction;
    }
Пример #17
0
        //调用函数
        protected void CallLuaFunction(string name, params object[] args)
        {
            if (null == s_luaState)
            {
                return;
            }

            LuaFunction func = null;

            if (mDictFunc.TryGetValue(name, out func))
            {
                func.BeginPCall();
                foreach (var o in args)
                {
                    func.Push(o);
                }
                func.PCall();
                func.EndPCall();
            }
        }
Пример #18
0
    private void Awake()
    {
        AddMessage(1001, CSCallback);

        VOID_CB___S.Add(1, Awake);
        Instance = this;
        Init();
        //luaFuncs.Add()
        luaState.DoFile(name);
        //调用lua注册函数,该函数调用消息中心注册
        LuaFunction func = luaState.GetFunction("Awake");

        func.BeginPCall();
        func.PushGeneric <GameObject>(gameObject);
        func.PCall();
        func.EndPCall();

        func.Dispose();
        func = null;
    }
Пример #19
0
    //获取UI特效
    public void GetUIEffect(string effname, LuaFunction luaCallBack)
    {
        GetEffectObj(effname, (Obj) =>
        {
            if (Obj != null)
            {
                mUIEffectsList.Add(Obj);
            }
            if (luaCallBack != null)
            {
                luaCallBack.BeginPCall();
                luaCallBack.Push(Obj);
                luaCallBack.PCall();
                luaCallBack.EndPCall();

                luaCallBack.Dispose();
                luaCallBack = null;
            }
        });
    }
Пример #20
0
    //lua脚本入口
    private void LuaMain()
    {
        LuaTable lua = GlobalComponent.Instance.Lua.DoFile <LuaTable>("LuaMain");

        if (lua == null)
        {
            Debug.LogError(">>>>not find lua path LuaMain");
            return;
        }
        else
        {
            LuaFunction cFunc0 = lua.GetLuaFunction("main");
            if (cFunc0 != null)
            {
                cFunc0.BeginPCall();
                cFunc0.PCall();
                cFunc0.EndPCall();
            }
        }
    }
Пример #21
0
    public int CallFuncWithGameObject(string funcName, UnityEngine.GameObject args)
    {
        levelLoaded = luaState.GetFunction(funcName);
        if (levelLoaded != null)
        {
            levelLoaded.BeginPCall();

            levelLoaded.Push(args);

            levelLoaded.PCall();

            levelLoaded.EndPCall();
            luaState.CheckTop();
            return(0);
        }


        luaState.CheckTop();
        return(0);
    }
Пример #22
0
    protected override void OnLoadFinished()
    {
        base.OnLoadFinished();
        luaState.DoString(script, "UseList.cs");
        List <int> list1 = new List <int>();

        list1.Add(1);
        list1.Add(2);
        list1.Add(4);

        LuaFunction func = luaState.GetFunction("Test");

        func.BeginPCall();
        func.Push(new List <int>());
        func.Push(list1);
        func.PCall();
        func.EndPCall();
        func.Dispose();
        func = null;
    }
Пример #23
0
    void Start()
    {
        Application.logMessageReceived += ShowTips;
        new LuaResLoader();
        state = new LuaState();
        state.Start();
        LuaBinder.Bind(state);

        state.DoString(script);
        state["space"] = Space.World;

        LuaFunction func = state.GetFunction("TestEnum");

        func.BeginPCall();
        func.Push(Space.World);
        func.PCall();
        func.EndPCall();
        func.Dispose();
        func = null;
    }
Пример #24
0
    public override void End(GameObject Actor)
    {
        if (!Application.isPlaying)
        {
            return;
        }

        LuaManager  luaMgr = AppFacade.Instance.GetManager <LuaManager>();
        LuaFunction func   = luaMgr.mainLua.GetFunction(UIName + ".onCloseHandler");

        if (func == null)
        {
            return;
        }

        func.BeginPCall();
        func.Push(handler);
        func.PCall();
        func.EndPCall();
    }
Пример #25
0
    public void OnPointerDown(UnityEngine.EventSystems.PointerEventData eventData)
    {
        float   angle = 0;
        Vector3 wPos  = m_uiCamera.ScreenToWorldPoint(eventData.position);
        Vector3 lPos  = transform.InverseTransformPoint(wPos);

        if (Vector2.Distance(lPos, Vector2.zero) <= m_radiusPow)
        {
            angle = Mathf.Atan2((lPos.y), (lPos.x)) * 180 / Mathf.PI;
        }
        if (null != switchsoluTarget)
        {
            //LuaManager.instance.CallFunctionNoGC(switchsoluTarget, false, angle);
            //switchsoluTarget.Call(angle);
            switchsoluTarget.BeginPCall();
            switchsoluTarget.Push(angle);
            switchsoluTarget.PCall();
            switchsoluTarget.EndPCall();
        }
    }
Пример #26
0
    private void Awake()
    {
        this.map.Add(1, new TestAccount(1, "水水", 0));
        this.map.Add(2, new TestAccount(2, "王伟", 1));
        this.map.Add(3, new TestAccount(3, "王芳", 0));
        LuaState luaState = new LuaState();

        luaState.Start();
        this.BindMap(luaState);
        luaState.DoString(this.script, "UseDictionary.cs");
        LuaFunction function = luaState.GetFunction("TestDict", true);

        function.BeginPCall();
        function.Push(this.map);
        function.PCall();
        function.EndPCall();
        function.Dispose();
        luaState.CheckTop();
        luaState.Dispose();
    }
Пример #27
0
        /// <summary>
        /// 单位濒临死亡
        /// </summary>
        /// <param name="unit">死亡单位</param>
        /// <param name="slayer">攻击者</param>
        /// <returns>是否进入死亡</returns>
        public virtual bool OnUnitWillDie(UnitBase unit, UnitBase slayer)
        {
            bool shouldDie = true;

            if (mOnUnitWillDieHandle != null)
            {
                mOnUnitWillDieHandle.BeginPCall();
                mOnUnitWillDieHandle.Push(mLuaBuff);
                mOnUnitWillDieHandle.Push(unit);
                mOnUnitWillDieHandle.Push(slayer);
                mOnUnitWillDieHandle.PCall();
                shouldDie = mOnUnitWillDieHandle.CheckBoolean();
                mOnUnitWillDieHandle.EndPCall();
            }
            else
            {
                throw new Exception("undefined OnUnitWillDie");
            }
            return(shouldDie);
        }
Пример #28
0
    //调用函数
    protected void CallLuaFunction(string name, params object[] args)
    {
        LuaFunction func = null;

        if (mDicFunc.TryGetValue(name, out func))
        {
            func.BeginPCall();
            func.Push(mSelfTable);
            foreach (var item in args)
            {
                func.Push(item);
            }
            func.PCall();
            func.EndPCall();
        }
        else
        {
            // Debug.Log("没有找到方法");
        }
    }
Пример #29
0
    void Start()
    {
        Instance = this;
        lua      = new LuaState();
        lua.Start();

        lua.DoFile("Learn/LearnMain.lua");

        LuaFunction funcMain = lua.GetFunction("LearnMain");

        if (funcMain != null)
        {
            funcMain.BeginPCall();
            funcMain.PCall();
            int n = (int)funcMain.CheckNumber();
            funcMain.EndPCall();
            Debug.Log("Chapter Count: " + n);
            lbb.Init(n);
        }
    }
Пример #30
0
        public LuaTable addLuaFile(params object[] args)
        {
            LuaFunction func = mLuaState.GetFunction(FuncName.createLuaFile);

            if (null == func)
            {
                return(null);
            }

            func.BeginPCall();
            foreach (var o in args)
            {
                func.Push(o);
            }
            func.PCall();
            LuaTable table = func.CheckLuaTable();

            func.EndPCall();
            return(table);
        }