private LuaEnv luaEnv;      // 全局唯一的lua虚拟机

        void Awake()
        {
            luaEnv    = LuaMgr.luaEnv;
            scriptEnv = luaEnv.NewTable();

            LuaTable meta = luaEnv.NewTable(); // 元表

            meta.Set("__index", luaEnv.Global);
            scriptEnv.SetMetaTable(meta);
            meta.Dispose();

            string prefabName = name;

            if (prefabName.Contains("(Clone)"))
            {
                prefabName = prefabName.Split('(')[0];
            }
            prefabName = prefabName.Replace("pan_", "");

            luaAwake     = scriptEnv.GetInPath <LuaViewBehaviour.delLuaAwake>(prefabName + ".awake");
            luaStart     = scriptEnv.GetInPath <LuaViewBehaviour.delLuaStart>(prefabName + ".start");
            luaUpdate    = scriptEnv.GetInPath <LuaViewBehaviour.delLuaUpdate>(prefabName + ".update");
            luaOnDestroy = scriptEnv.GetInPath <LuaViewBehaviour.delLuaOnDestroy>(prefabName + ".ondestroy");

            scriptEnv.Set("self", this);

            if (luaAwake != null)
            {
                luaAwake(gameObject);
            }
        }
        void OnDestroy()
        {
            if (luaOnDestroy != null)
            {
                luaOnDestroy();
            }

            luaOnDestroy = null;
            luaUpdate    = null;
            luaStart     = null;
            luaAwake     = null;
        }