Beispiel #1
0
        public void StartWithScript(string luaScriptFileName, LuaTable luaObject, params object[] args)
        {
            this.luaScriptFileName = luaScriptFileName;
            if (args != null)
            {
                this.args = args;
            }

            // release old object
            if (this.luaObject != null && this.luaObject != luaObject)
            {
                this.luaObject.Dispose();
                l_Awake     = null;
                l_OnDestroy = null;
                l_Update    = null;
                l_onEvent   = null;
            }

            if (luaObject == null && !string.IsNullOrEmpty(luaScriptFileName))
            {
                luaObject = loadDelegate();
            }
            this.luaObject = luaObject;

            if (this.luaObject == null)
            {
                return;
            }

            luaObject.Set("gameObject", gameObject);
            foreach (var injection in injections)
            {
                luaObject.Set(injection.name, injection.value);
            }
            l_Awake = luaObject.Get <LuaObjectAction>("Awake");
            l_Start = luaObject.Get <LuaOnAction>("Start");


            l_OnDestroy = luaObject.Get <LuaOnAction>("OnDestroy");

            l_Update  = luaObject.Get <LuaOnAction>("Update");
            l_onEvent = luaObject.Get <LuaObjectAction>("onEvent");

            luaAwake();
        }
Beispiel #2
0
        void OnDestroy()
        {
            if (l_OnDestroy != null && L != null)
            {
                l_OnDestroy();
            }

            l_Awake     = null;
            l_Start     = null;
            l_OnDestroy = null;
            l_Update    = null;
            l_onEvent   = null;

            if (L != null && luaObject != null)
            {
                luaObject.Dispose();
            }
            luaObject = null;
        }