コード例 #1
0
ファイル: TestLua.cs プロジェクト: zhaoyabo/GameBase
    void Start()
    {
        lua = new LuaSvr();
        self = (LuaTable)lua.start("LuaFiles/building_txt");
        //self = (LuaTable)lua.luaState.getObject("data");
        //object o = lua.luaState.getFunction("GetData").call();
        Debug.Log("table " + ((LuaTable)self[1])["name"]);

        LuaFunction dataFunction = ((LuaFunction)self["GetData"]);
        LuaTable dataTable = (LuaTable)dataFunction.call();
        LuaFunction callFunction = (LuaFunction)self["CallBack"];
        callFunction.call(222);
        //lua.luaState.getFunction("CallBack").call();
        lua.luaState.getFunction("Call").call(2);
        Debug.Log("table " + ((LuaTable)dataTable[1])["use_money"] + "   is Null " + (callFunction == null));

        LuaTable d = (LuaTable)((LuaFunction)self["GetData1"]).call();
        Debug.Log("---------------- : " + ((LuaTable)d[1])["use_money"]);
        LuaTable table2 = (LuaTable)lua.start("LuaFiles/building_txt1");

        test2 = (LuaFunction)self["test"];
        object o = test2.call(self,9,1);
        Debug.Log("add function :"+o);

        SetTransform = (LuaFunction)self["SetTransform"];
        SetTransform.call(self, tr);
        //tr.localPosition = new Vector3(2, 2, 2);
    }
コード例 #2
0
ファイル: GameUtils.cs プロジェクト: luofengwei/Client-Frame
 public static void ShowMsg(string msg)
 {
     SLua.LuaFunction luaFunc = MyLuaSrv.Instance.GetFunction("BridgingClass.ShowMsg");
     if (null != luaFunc)
     {
         luaFunc.call(msg);
     }
 }
コード例 #3
0
ファイル: TcpSocket.cs プロジェクト: nottvlike/OpenWorldGame
    public void Init(string ip, int port, LuaFunction recvCallback)
    {
        _ip = ip;
        _port = port;
        _recvCallback = recvCallback;

        _socket = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    }
コード例 #4
0
ファイル: PLua.cs プロジェクト: yuyangame/hugula
 void OnDestroy()
 {
     if (onDestroyFn != null) onDestroyFn.call();
     updateFn = null;
     lua = null;
     _instance = null;
     luacache.Clear();
 }
コード例 #5
0
ファイル: Circle.cs プロジェクト: Rubiphisto/slua
	void Start () {
		svr = new LuaSvr();
		svr.init(null, () =>
		{
			self = (LuaTable)svr.start("circle/circle");
			update = (LuaFunction)self["update"];
		});
	}
コード例 #6
0
    public static void AddClick(int id, string path, SLua.LuaFunction function)
    {
        Transform child = GetComponent <Transform>(id, path);

        if (child)
        {
            AddClick(child, function);
        }
    }
コード例 #7
0
ファイル: NetworkManager.cs プロジェクト: bYsdTd/colorfy
 // 处理消息
 public void DealWithSocketData(ReceiveMsg msgData)
 {
     // lua 处理协议
     SLua.LuaFunction func = LuaGameManager.Instance().GetState().getFunction("OnProtobufCallBack");
     if (func != null)
     {
         func.call(msgData.data.handleId, new SLua.ByteArray(msgData.data.data));
     }
 }
コード例 #8
0
ファイル: LResLoader.cs プロジェクト: tenvick/hugula
 public void RemoveAllEvents()
 {
     onAllCompleteFn = null;
     onProgressFn = null;
     onSharedCompleteFn = null;
     onCacheFn = null;
     onSharedErrFn = null;
     onAssetBundleCompleteFn = null;
     onAssetBundleErrFn = null;
 }
コード例 #9
0
    public void ClearPrefab()
    {
        _prefab = null;
        _callBack = null;

        if (_dependenciesPath != null)
        {
            _dependenciesPath.Clear();
            _dependenciesPath = null;
        }
    }
コード例 #10
0
    public static void AddClick(int id, SLua.LuaFunction function)
    {
        var go = LuaReference.Get(id);

        if (go == null)
        {
            return;
        }

        AddClick(go.transform, function);
    }
コード例 #11
0
ファイル: LuaHelper.cs プロジェクト: coder-han/hugula
 /// <summary>
 /// 
 /// </summary>
 /// <param name="parent"></param>
 /// <param name="eachFn"></param>
 public static void ForeachChild(GameObject parent, LuaFunction eachFn)
 {
     Transform pr=parent.transform;
     int count = pr.childCount;
     Transform child = null;
     for (int i = 0; i < count; i++)
     {
         child = pr.GetChild(i);
         eachFn.call(i, child.gameObject);
     }
 }
コード例 #12
0
ファイル: LuaUtils.cs プロジェクト: bYsdTd/colorfy
    // CS 向Lua发送事件
    public static void PostLuaEvent(string eventName, params object[] args)
    {
        if (!LuaGameManager.Instance().CheckAvailable())
        {
            return;
        }

        SLua.LuaFunction func = LuaGameManager.Instance().GetState().getFunction("OnHandleEventFromCS");
        if (func != null)
        {
            func.call(eventName, args);
        }
    }
コード例 #13
0
 void CallMethod(KeyCode key, bool bDown)
 {
     if (!SLua.LuaSvr.inited || null == SLua.LuaSvr.mainState)
     {
         return;
     }
     SLua.LuaState    l    = SLua.LuaSvr.mainState;
     SLua.LuaFunction func = l.getFunction("OnHotKeyInput");
     if (null != func)
     {
         func.call(key, bDown);
         func.Dispose();
     }
 }
コード例 #14
0
ファイル: LResLoader.cs プロジェクト: ChaseDream2015/hugula
        /// <summary>
        /// 加载luatable里面的request
        /// </summary>
        /// <param name="reqs"></param>
        public void LoadLuaTable(LuaTable reqs, LuaFunction groupCompleteFn)
        {
            pushGroup = true;

            foreach (var pair in reqs)
            {
                AddReqToQueue((CRequest)pair.value);
            }

            this.groupCompleteFn = groupCompleteFn;

            pushGroup = false;

            BeginQueue();
        }
コード例 #15
0
    public void Load(LuaFunction func)
    {
        _callBack = func;
        if (_prefab != null)
        {
            LoadFinished();
        }

        if (_isAssetBundle)
        {
            StartLoadResource();
        }
        else
        {
            ResourceManager.Instance.StartCoroutine(StartLoadAssetBundle());
        }
    }
コード例 #16
0
    private static void AddClick(Transform transform, SLua.LuaFunction function)
    {
        if (transform == null)
        {
            return;
        }
        var button = transform.GetComponent <UIButton>();

        if (button)
        {
            button.onClick.Add(new EventDelegate(delegate()
            {
                if (function != null)
                {
                    function.call();
                }
            }));
        }
    }
コード例 #17
0
 static bool ReportLog(LogType type, string str)
 {
     if (!SLua.LuaSvr.inited || null == SLua.LuaSvr.mainState)
     {
         return(false);
     }
     SLua.LuaState l = SLua.LuaSvr.mainState;
     if (null == l)
     {
         return(false);
     }
     SLua.LuaFunction func = l.getFunction("OnUnityLog");
     if (null != func)
     {
         func.call(new object[] { type, str });
         func.Dispose();
         return(true);
     }
     return(false);
 }
コード例 #18
0
ファイル: FHotKeyLogic.cs プロジェクト: go886/LuaGame
    void InitKeyCodeMap()
    {
        if (bInited)
        {
            return;
        }

        if (null == LuaSvr.main || !LuaSvr.main.inited || null == LuaSvr.main.luaState)
        {
            return;
        }
        SLua.LuaState l = SLua.LuaSvr.main.luaState;
        if (null == l)
        {
            return;
        }
        bInited = true;
        SLua.LuaFunction func = l.getFunction("OnHotKeyCodeMap");
        if (null != func)
        {
            LuaTable ret = func.call() as LuaTable;
            foreach (var obj in ret)
            {
                object  value = obj.value;
                int     ival  = Convert.ToInt32(value);
                KeyCode key   = (KeyCode)Enum.ToObject(typeof(KeyCode), ival);

                if (!sKeyCodeMap.ContainsKey(key))
                {
                    sKeyCodeMap.Add(key, true);
                }
                else
                {
                    sKeyCodeMap[key] = true;
                }
            }

            func.Dispose();
        }
    }
コード例 #19
0
ファイル: Logs.cs プロジェクト: scriptkitz/BoardGame
    public void Update()
    {
        if (mWriteTxt != null && mWriteTxt.Count > 0)
        {
            if (_luaTable != null)
            {
                SLua.LuaFunction callback = _luaTable["OnLogCallback"] as SLua.LuaFunction;
                if (callback != null)
                {
                    callback.call(mWriteTxt[0]);
                }
            }

            using (StreamWriter writer = new StreamWriter(logPath, true, Encoding.UTF8))
            {
                FLog log = mWriteTxt[0] as FLog;

                string s = string.Format("{0}\n{1}", log.content, log.track);
                writer.WriteLine(s);
                writer.Close();
            }
            mWriteTxt.RemoveAt(0);
        }
    }
コード例 #20
0
ファイル: DeciderNodes.cs プロジェクト: zhaoluxyz/Hugula
 public ConditionWaitNode(LuaFunction fn,string name)
     : base(fn,name)
 {
 }
コード例 #21
0
ファイル: DeciderNodes.cs プロジェクト: zhaoluxyz/Hugula
 /// <summary>
 ///  条件节点
 /// </summary>
 /// <param name="fn">条件委托 luafunction(input,output)</param>
 public ConditionNode(LuaFunction fn)
     : base()
 {
     this._fn = fn;
     _condition = null;
 }
コード例 #22
0
ファイル: DeciderNodes.cs プロジェクト: zhaoluxyz/Hugula
 /// <summary>
 ///  条件节点
 /// </summary>
 /// <param name="condition">条件委托 bool Condition(object input, object output)</param>
 public ConditionNode(Condition condition)
     : base()
 {
     this._condition = condition;
     _fn = null;
 }
コード例 #23
0
ファイル: ScrollRectTable.cs プロジェクト: coder-han/hugula
    public int removeDataAt(int index)
    {
        if(index>=0 && index<this.recordCount)
        {
            if (onDataRemove == null) onDataRemove = PLua.instance.lua.luaState.loadString(DataRemoveStr, "onDataRemove");
            onDataRemove.call(data,index+1,this);
            this.CalcPage();
            return index;
        }

        return -1;
    }
コード例 #24
0
ファイル: ScrollRectTable.cs プロジェクト: coder-han/hugula
 public int insertData(object item,int index)
 {
     if(index<0)index=0;
     if(index>=this.recordCount)index=this.recordCount;
     if (onDataInsert == null) onDataInsert = PLua.instance.lua.luaState.loadString(DataInsertStr, "onDataInsert");
     onDataInsert.call(item,index+1,this);
     this.CalcPage();
     return index;
 }
コード例 #25
0
ファイル: PLua.cs プロジェクト: QinFangbi/hugula
    void OnDestroy()
    {
        if (onDestroyFn != null) onDestroyFn.call();
        updateFn = null;
        if (lua != null) lua.luaState.Close();
        lua = null;
        _instance = null;
        if(net!=null)net.Dispose();
        net = null;
		if(ChatNet!=null)ChatNet.Dispose();
        ChatNet = null;
        luacache.Clear();
    }
コード例 #26
0
ファイル: PLua.cs プロジェクト: QinFangbi/hugula
 public static void Delay(LuaFunction luafun, float time, object args = null)
 {
     _instance.StartCoroutine(DelayDo(luafun, args, time));
 }
        static internal UnityEngine.RectOffset Lua_DG_Tweening_Core_DOGetter_1_UnityEngine_RectOffset(LuaFunction ld)
        {
            IntPtr l     = ld.L;
            int    error = pushTry(l);

            ld.pcall(0, error);
            UnityEngine.RectOffset ret;
            checkType(l, error + 1, out ret);
            LuaDLL.lua_settop(l, error - 1);
            return(ret);
        }
コード例 #28
0
		// Methods
		// [IteratorStateMachine] // 0x0063B730-0x0063B7A0
		internal static IEnumerator LuaCoroutine(LuaFunction func) => default; // 0x00CB21D0-0x00CB2240
        static internal void Lua_UnityEngine_AudioSettings_AudioConfigurationChangeHandler(LuaFunction ld, bool a1)
        {
            IntPtr l     = ld.L;
            int    error = pushTry(l);

            pushValue(l, a1);
            ld.pcall(1, error);
            LuaDLL.lua_settop(l, error - 1);
        }
コード例 #30
0
        public static void init(IntPtr l)
        {
            string newindexfun = @"

local getmetatable=getmetatable
local rawget=rawget
local error=error
local type=type
local function newindex(ud,k,v)
    local t=getmetatable(ud)
    repeat
        local h=rawget(t,k)
        if h then
			if h[2] then
				h[2](ud,v)
	            return
			else
				error('property '..k..' is read only')
			end
        end
        t=rawget(t,'__parent')
    until t==nil
    error('can not find '..k)
end

return newindex
";

            string   indexfun = @"
local type=type
local error=error
local rawget=rawget
local getmetatable=getmetatable
local function index(ud,k)
    local t=getmetatable(ud)
    repeat
        local fun=rawget(t,k)
        local tp=type(fun)	
        if tp=='function' then 
            return fun 
        elseif tp=='table' then
			local f=fun[1]
			if f then
				return f(ud)
			else
				error('property '..k..' is write only')
			end
        end
        t = rawget(t,'__parent')
    until t==nil
    error('Can not find '..k)
end

return index
";
            LuaState L        = LuaState.get(l);

            newindex_func = (LuaFunction)L.doString(newindexfun);
            index_func    = (LuaFunction)L.doString(indexfun);

            // object method
            LuaDLL.lua_createtable(l, 0, 4);
            addMember(l, ToString);
            addMember(l, GetHashCode);
            addMember(l, Equals);
            addMember(l, GetType);
            LuaDLL.lua_setfield(l, LuaIndexes.LUA_REGISTRYINDEX, "__luabaseobject");

            LuaArray.init(l);
            LuaVarObject.init(l);

            LuaDLL.lua_newtable(l);
            LuaDLL.lua_setglobal(l, DelgateTable);


            setupPushVar();
        }
コード例 #31
0
        static public object checkVar(IntPtr l, int p)
        {
            LuaTypes type = LuaDLL.lua_type(l, p);

            switch (type)
            {
            case LuaTypes.LUA_TNUMBER:
            {
                return(LuaDLL.lua_tonumber(l, p));
            }

            case LuaTypes.LUA_TSTRING:
            {
                return(LuaDLL.lua_tostring(l, p));
            }

            case LuaTypes.LUA_TBOOLEAN:
            {
                return(LuaDLL.lua_toboolean(l, p));
            }

            case LuaTypes.LUA_TFUNCTION:
            {
                LuaDLL.lua_pushvalue(l, p);
                int         r = LuaDLL.luaL_ref(l, LuaIndexes.LUA_REGISTRYINDEX);
                LuaFunction v = new LuaFunction(l, r);
                return(v);
            }

            case LuaTypes.LUA_TTABLE:
            {
                if (isLuaValueType(l, p))
                {
                    if (luaTypeCheck(l, p, "Vector2"))
                    {
                        Vector2 v;
                        checkType(l, p, out v);
                        return(v);
                    }
                    else if (luaTypeCheck(l, p, "Vector3"))
                    {
                        Vector3 v;
                        checkType(l, p, out v);
                        return(v);
                    }
                    else if (luaTypeCheck(l, p, "Vector4"))
                    {
                        Vector4 v;
                        checkType(l, p, out v);
                        return(v);
                    }
                    else if (luaTypeCheck(l, p, "Quaternion"))
                    {
                        Quaternion v;
                        checkType(l, p, out v);
                        return(v);
                    }
                    else if (luaTypeCheck(l, p, "Color"))
                    {
                        Color c;
                        checkType(l, p, out c);
                        return(c);
                    }
                    LuaDLL.luaL_error(l, "unknown lua value type");
                    return(null);
                }
                else if (isLuaClass(l, p))
                {
                    return(checkObj(l, p));
                }
                else
                {
                    LuaDLL.lua_pushvalue(l, p);
                    int      r = LuaDLL.luaL_ref(l, LuaIndexes.LUA_REGISTRYINDEX);
                    LuaTable v = new LuaTable(l, r);
                    return(v);
                }
            }

            case LuaTypes.LUA_TUSERDATA:
                return(LuaObject.checkObj(l, p));

            default:
                return(null);
            }
        }
コード例 #32
0
ファイル: DeciderNodes.cs プロジェクト: zhaoluxyz/Hugula
 /// <summary>
 /// 按一定时间执行的条件节点
 /// </summary>
 /// <param name="fn">luafunction</param>
 public DeltaConditionNode(float delta,LuaFunction fn)
     : base(fn)
 {
     this.delta = delta;
 }
コード例 #33
0
		internal static IEnumerator LuaCoroutine(LuaFunction func) => default; // 0x00CB21D0-0x00CB2240
	
		// Extension methods
		public static void StartCoroutine(this MonoBehaviour mb, LuaFunction func) {} // 0x00CB2150-0x00CB21D0
コード例 #34
0
ファイル: Item.cs プロジェクト: beyondray/ZProject
    public void InitFromLuaFile()
    {
        SLua.LuaTable _table;
        //Script prefix path: Assets/Scripts/Lua/
        //read file
        _table = (SLua.LuaTable)SLua.LuaSvr.getInstance().doFile("Items/" + m_LuaScript);

        //onuse function
        SLua.LuaFunction _func = (SLua.LuaFunction)SLua.LuaSvr.mainState["OnUse"];
        if (_func != null)
        {
            m_UsageDelegate += _func.cast <ItemUsage>();
        }

        //load all the properties
        _table = (SLua.LuaTable)SLua.LuaSvr.mainState["properties"];

        //load mesh
        m_Prefab = (string)_table["Mesh"];
        //GameObject _tmp = Resources.Load<GameObject>("Prefabs/"+m_Prefab);
        GameObject _tmp = Resources.Load <GameObject>("Meshes/" + m_Prefab);

        _tmp = Instantiate(_tmp);
        gameObject.AddComponent <MeshFilter>();
        gameObject.AddComponent <MeshRenderer>();
        gameObject.GetComponent <MeshFilter>().mesh   = _tmp.GetComponent <MeshFilter>().mesh;
        gameObject.GetComponent <Renderer>().material = _tmp.GetComponent <Renderer>().material;
        gameObject.transform.localScale = _tmp.transform.localScale;
        GameObject.Destroy(_tmp);

        //attributes
        m_ItemName    = (string)_table["Name"];
        m_Description = (string)_table["Description"];

        m_Type = (ItemType)System.Convert.ToInt32(_table["Type"]);
        switch (m_Type)
        {
        case ItemType.ITEM_PRIMARY:
            m_ShotType    = (ShotType)System.Convert.ToInt32(_table["ShotType"]);
            m_AttackSpeed = System.Convert.ToSingle(_table["AttackSpeed"]);
            m_EnergyCost  = System.Convert.ToSingle(_table["EnergyCost"]);
            m_Damage      = System.Convert.ToSingle(_table["FirePower"]);
            break;

        case ItemType.ITEM_MELEE:
            m_Damage      = System.Convert.ToSingle(_table["Damage"]);
            m_AttackSpeed = System.Convert.ToSingle(_table["AttackSpeed"]);
            break;

        case ItemType.ITEM_PARTS:
            m_Damage     = System.Convert.ToSingle(_table["Damage"]);
            m_Projectile = (string)_table["Ammo"];
            break;

        case ItemType.ITEM_ARMOR:
            m_Armor = System.Convert.ToSingle(_table["Armor"]);
            break;

        default:
            break;
        }
        m_Weight = System.Convert.ToSingle(_table["Weight"]);

        SLua.LuaTable _bonus = (SLua.LuaTable)_table["Bonus"];
        m_BonusList = new DAttributeBonus[_bonus.length()];
        for (int i = 1; i <= _bonus.length(); i++)
        {
            SLua.LuaTable _oneBonus = (SLua.LuaTable)_bonus[i];
            m_BonusList[i - 1] = new DAttributeBonus(
                (AttrType)System.Convert.ToInt32(_oneBonus[1]),
                System.Convert.ToSingle(_oneBonus[3]),
                System.Convert.ToBoolean(_oneBonus[2])
                );
        }

        m_bIfLoaded = true;
    }
コード例 #35
0
ファイル: PLua.cs プロジェクト: QinFangbi/hugula
 private static IEnumerator DelayDo(LuaFunction luafun, object arg, float time)
 {
     yield return new WaitForSeconds(time);
     luafun.call(arg);
 }
コード例 #36
0
ファイル: LuaState.cs プロジェクト: 372784535/ResConfig
        public LuaState()
        {
            if (mainThread == 0)
            {
                mainThread = System.Threading.Thread.CurrentThread.ManagedThreadId;
            }

            L           = LuaDLL.luaL_newstate();
            statemap[L] = this;



            refQueue = new Queue <UnrefPair>();
            ObjectCache.make(L);

            LuaDLL.lua_atpanic(L, panicCallback);

            LuaDLL.luaL_openlibs(L);

            string PCallCSFunction = @"
local assert = assert
local function check(ok,...)
	assert(ok, ...)
	return ...
end
return function(cs_func)
	return function(...)
		return check(cs_func(...))
	end
end
";

            LuaDLL.lua_dostring(L, PCallCSFunction);
            PCallCSFunctionRef = LuaDLL.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);

            string newindexfun = @"

local getmetatable=getmetatable
local rawget=rawget
local error=error
local type=type
local function newindex(ud,k,v)
    local t=getmetatable(ud)
    repeat
        local h=rawget(t,k)
        if h then
            if h[2] then
                h[2](ud,v)
                return
            else
                error('property '..k..' is read only')
            end
        end
        t=rawget(t,'__parent')
    until t==nil
    error('can not find '..k)
end

return newindex
";

            string indexfun = @"
local type=type
local error=error
local rawget=rawget
local getmetatable=getmetatable
local function index(ud,k)
    local t=getmetatable(ud)
    repeat
        local fun=rawget(t,k)
        local tp=type(fun)
        if tp=='function' then
            return fun
        elseif tp=='table' then
            local f=fun[1]
            if f then
                return f(ud)
            else
                error('property '..k..' is write only')
            end
        end
        t = rawget(t,'__parent')
    until t==nil
    error('Can not find '..k)
end

return index
";

            newindex_func = (LuaFunction)doString(newindexfun);
            index_func    = (LuaFunction)doString(indexfun);

            setupPushVar();

            pcall(L, init);

            createGameObject();
        }
コード例 #37
0
ファイル: GameManager.cs プロジェクト: 5941120/UnitySample
    void Awake()
    {
        if (null != sInstance)
            return;

        sInstance = this;

        // keep alive on change scene
        DontDestroyOnLoad(this.gameObject);

        // if exist gameobject called "UIRoot". Destory it.
        // this maybe we add to desing ui temply
        GameObject gameObjectUIRoot = GameObject.Find("UIRoot");
        if (null != gameObjectUIRoot)
            GameObject.Destroy (gameObjectUIRoot);

        GameObject uiPageMain = GameObject.Find("UIPageMain");
        if (null != uiPageMain)
            GameObject.Destroy (uiPageMain);

        mAssetsMgr = AssetsManager.GetInstance ();

        mUIMgr = UIManager.GetInstance ();

        // asset manager update path
        string updatePath = Application.persistentDataPath + "Update";
        if (!Directory.Exists(updatePath)) Directory.CreateDirectory(updatePath);
        mAssetsMgr.AddUpdatePath (updatePath);

        // ui manager
        _Load(0, () => {
            // lua
            LuaState.loaderDelegate = LuaLoadFunction;
            luaSvr_GM = new LuaSvr();
            luaSelf_GM =(LuaTable)luaSvr_GM.start("Lua/GameManager");
            luaUpdate_GM = (LuaFunction)luaSelf_GM["update"];
        });
    }
        static internal void Lua_System_Action_1_UnityEngine_EventSystems_RaycastResult(LuaFunction ld, UnityEngine.EventSystems.RaycastResult a1)
        {
            IntPtr l     = ld.L;
            int    error = pushTry(l);

            pushValue(l, a1);
            ld.pcall(1, error);
            LuaDLL.lua_settop(l, error - 1);
        }
コード例 #39
0
ファイル: ScrollRectTable.cs プロジェクト: coder-han/hugula
 public int removeChild(ScrollRectItem item)
 {
     int i=getIndex(item);
     if(i>=0)
     {
         if (onDataRemove == null) onDataRemove = PLua.instance.lua.luaState.loadString(DataRemoveStr, "onDataRemove");
         onDataRemove.call(this.data,i+1,this);
         this.CalcPage();
     }
     return i;
 }
コード例 #40
0
    /**
     * Call a lua method.
     *
     * @param ref LuaFunction cFunc - The out function. If it is not null, will call it instead of look up from table by strFunc.
     * @param string strFunc - The function name.
     * @param object cParam1 - The first param.
     * @param object cParam2 - The second param.
     * @param object cParam3 - The third param.
     * @return object - The number of result.
     */
    public object CallMethod(ref LuaFunction cFunc, string strFunc, object cParam1, object cParam2, object cParam3)
    {
        if (null == m_cLuaTableOpt)
        {
            return null;
        }

        return m_cLuaTableOpt.CallMethod(ref cFunc, strFunc, cParam1, cParam2, cParam3);
    }
コード例 #41
0
ファイル: ScrollRectTable.cs プロジェクト: coder-han/hugula
 void preRender(ScrollRectItem item,int index)
 {
     setPosition(item.transform,index);
     if (this.onPreRender == null) onPreRender = PLua.instance.lua.luaState.loadString(PreRenderStr, "onPreRenderStr");
     object dataI=index+1<=recordCount?data[index+1]:null;
     onPreRender.call(item,index,dataI);
 }
コード例 #42
0
ファイル: Coroutine.cs プロジェクト: BraedonWooding/slua
        public static IEnumerator YieldReturn(object yieldObject, LuaFunction function)
        {
            yield return(yieldObject is IEnumerator?Behaviour.StartCoroutine((IEnumerator)yieldObject) : yieldObject);

            function.Call();
        }
コード例 #43
0
ファイル: DeciderNodes.cs プロジェクト: zhaoluxyz/Hugula
 /// <summary>
 ///  条件节点
 /// </summary>
 /// <param name="condition">条件委托 bool Condition(object input, object output)</param>
 public ConditionNode(Condition condition,string name)
     : base(name)
 {
     this._condition = condition;
     _fn = null;
 }
コード例 #44
0
ファイル: LRequest.cs プロジェクト: tenvick/hugula
 public override void Dispose()
 {
     base.Dispose();
     onCompleteFn = null;
     onEndFn = null;
 }
コード例 #45
0
ファイル: DeciderNodes.cs プロジェクト: zhaoluxyz/Hugula
 /// <summary>
 /// 条件节点
 /// </summary>
 /// <param name="fn">条件委托 luafunction(input,output)</param>
 /// <param name="name">节点名</param>
 public ConditionNode(LuaFunction fn,string name)
     : base(name)
 {
     this._fn = fn;
     _condition = null;
 }
コード例 #46
0
ファイル: PLua.cs プロジェクト: QinFangbi/hugula
    /// <summary>
    /// 加载lua bundle
    /// </summary>
    /// <returns></returns>
    private IEnumerator loadLuaBundle(bool domain,LuaFunction onLoadedFn)
    {
        string keyName = "";
        string luaP = CUtils.GetAssetFullPath("font.u3d");
        //Debug.Log("load lua bundle" + luaP);
        WWW luaLoader = new WWW(luaP);
        yield return luaLoader;
        if (luaLoader.error == null)
        {
			byte[] byts=CryptographHelper.Decrypt(luaLoader.bytes,DESHelper.instance.Key,DESHelper.instance.IV);
			AssetBundle item = AssetBundle.CreateFromMemoryImmediate(byts);

//            item = luaLoader.assetBundle;
#if UNITY_5
                    TextAsset[] all = item.LoadAllAssets<TextAsset>();
                    foreach (var ass in all)
                    {
                        keyName = Regex.Replace(ass.name,@"\.","");
                        //Debug.Log("cache : " + keyName);
                        luacache[keyName] = ass;
                    }
#else
            UnityEngine.Object[] all = item.LoadAll(typeof(TextAsset));
            foreach (var ass in all)
            {
                keyName = Regex.Replace(ass.name,@"\.","");
                Debug.Log(keyName + " complete");
                luacache[keyName] = ass as TextAsset;
            }
#endif
                    //Debug.Log("loaded lua bundle complete" + luaP);
//            luaLoader.assetBundle.Unload(false);
			item.Unload(false);
            luaLoader.Dispose();
        }

        DoUnity3dLua();
        if (domain)
            DoMain();

        if (onLoadedFn != null) onLoadedFn.call();
    }
コード例 #47
0
ファイル: DeciderNodes.cs プロジェクト: zhaoluxyz/Hugula
 public ConditionWaitNode(LuaFunction fn)
     : base(fn)
 {
 }
コード例 #48
0
ファイル: PLua.cs プロジェクト: QinFangbi/hugula
 /// <summary>
 /// 加载lua 打包文件
 /// </summary>
 public void LoadBundle(LuaFunction onLoadedFn)
 {
     //Debug.Log(" refresh LoadBundle ");
     StopCoroutine(loadLuaBundle(false, onLoadedFn));
     StartCoroutine(loadLuaBundle(false, onLoadedFn));
 }
コード例 #49
0
ファイル: DeciderNodes.cs プロジェクト: zhaoluxyz/Hugula
 /// <summary>
 /// 按一定时间执行的条件节点
 /// </summary>
 /// <param name="fn">luafunction</param>
 public DeltaConditionNode(float delta, LuaFunction fn, string name)
     : base(fn,name)
 {
     this.delta = delta;
 }
コード例 #50
0
        static internal System.Object Lua_System_Func_2_System_String___System_Object(LuaFunction ld, System.String[] a1)
        {
            IntPtr l     = ld.L;
            int    error = pushTry(l);

            pushValue(l, a1);
            ld.pcall(1, error);
            System.Object ret;
            checkType(l, error + 1, out ret);
            LuaDLL.lua_settop(l, error - 1);
            return(ret);
        }
コード例 #51
0
    /**
     * Call a lua method.
     *
     * @param ref LuaFunction cFunc - The out function. If it is not null, will call it instead of look up from table by strFunc.
     * @param string strFunc - The function name.
     * @param params object[] aParams - The params.
     * @return object - The number of result.
     */
    public object CallMethod(ref LuaFunction cFunc, string strFunc, params object[] aParams)
    {
        if (null == m_cLuaTableOpt)
        {
            return null;
        }

        return m_cLuaTableOpt.CallMethod(ref cFunc, strFunc, aParams);
    }
        static internal void Lua_UnityEngine_EventSystems_ExecuteEvents_EventFunction_1_UnityEngine_EventSystems_IPointerClickHandler(LuaFunction ld, UnityEngine.EventSystems.IPointerClickHandler a1, UnityEngine.EventSystems.BaseEventData a2)
        {
            IntPtr l     = ld.L;
            int    error = pushTry(l);

            pushValue(l, a1);
            pushValue(l, a2);
            ld.pcall(2, error);
            LuaDLL.lua_settop(l, error - 1);
        }