Ejemplo n.º 1
0
    protected internal void OnDestroy()
    {
        if (!_Destroyed)
        {
            _Destroyed = true;
            if (luaOnDestroy != null)
            {
                luaOnDestroy(lua);
            }
            luaOnDestroy = null;

            if (luaOnDestroyBase != null)
            {
                luaOnDestroyBase(lua);
            }
            luaOnDestroyBase = null;

            luaStart = null;
            if (ex != null)
            {
                ex.Dispose();
                ex = null;
            }

            if (lua != null)
            {
                lua.Dispose();
                lua = null;
            }
        }
    }
Ejemplo n.º 2
0
    void Init()
    {
        if (selfBehaviourInitialized || string.IsNullOrEmpty(InitLuaPath))
        {
            return;
        }

        if (!isInitialized)
        {
            InitLuaEnv();
        }

        ex = luaEnv.NewTable();

        foreach (var injection in ExpandExVal())
        {
            ex.SetInPath(injection.Key, injection.Value);
        }

        var ret = luaEnv.DoString(@"return require '" + InitLuaPath + "'", InitLuaPath);

        LuaTable baseTable = null;

        if (ret.Length > 0)
        {
            baseTable = ret[0] as LuaTable;
        }

        if (baseTable != null)
        {
            lua = luaEnv.NewTable();
            lua.Set("___ex", ex);
            lua.Set("___cs", this);

            LuaTable mt = luaEnv.NewTable();

            var getmtFunc = luaEnv.Global.GetInPath <GetMtFunc>("behaviour.getmt");
            var indexFunc = getmtFunc.Invoke(baseTable);

            mt.Set("__index", indexFunc);

            lua.SetMetaTable(mt);
            LuaBehaviourFunc luaCtor = lua.Get <LuaBehaviourFunc>("ctor");
            lua.Get("start", out luaStart);
            lua.Get("onDestroy", out luaOnDestroy);
            lua.Get("_onDestroy", out luaOnDestroyBase);
            //if (luaOnDestroyBase == null)
            //{
            //    BuglyAgent.PrintLog(LogSeverity.LogWarning, "Can't find _onDestroy function. {0} should be based on behavior.lua", InitLuaPath);
            //}

            selfBehaviourInitialized = true;

            if (luaCtor != null)
            {
                luaCtor(lua);
            }
        }
    }
Ejemplo n.º 3
0
 protected void OnDestroy()
 {
     luaOnEnable  = null;
     luaOnDisable = null;
 }
 protected void OnDestroy()
 {
     luaUpdate = null;
 }