static int LoadAssetSync(IntPtr L) { try { int count = LuaDLL.lua_gettop(L); if (count == 3) { Framework.ResourceMgr obj = (Framework.ResourceMgr)ToLua.CheckObject <Framework.ResourceMgr>(L, 1); Framework.AssetType arg0 = (Framework.AssetType)ToLua.CheckObject(L, 2, typeof(Framework.AssetType)); string arg1 = ToLua.CheckString(L, 3); Framework.SyncAssetProxy o = obj.LoadAssetSync(arg0, arg1); ToLua.PushObject(L, o); return(1); } else if (count == 4) { Framework.ResourceMgr obj = (Framework.ResourceMgr)ToLua.CheckObject <Framework.ResourceMgr>(L, 1); Framework.AssetType arg0 = (Framework.AssetType)ToLua.CheckObject(L, 2, typeof(Framework.AssetType)); string arg1 = ToLua.CheckString(L, 3); bool arg2 = LuaDLL.luaL_checkboolean(L, 4); Framework.SyncAssetProxy o = obj.LoadAssetSync(arg0, arg1, arg2); ToLua.PushObject(L, o); return(1); } else { return(LuaDLL.luaL_throw(L, "invalid arguments to method: Framework.ResourceMgr.LoadAssetSync")); } } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
/// <summary> /// 同步从AssetBundle加载资源; /// </summary> /// <param name="assetType">资源类型</param> /// <param name="assetName">资源名字</param> /// <param name="isUsePool">资源是否使用对象池</param> /// <returns>同步代理</returns> public SyncAssetProxy LoadAssetSync(AssetType assetType, string assetName, bool isUsePool) { SyncAssetProxy proxy = PoolMgr.Instance.GetCsharpObject <SyncAssetProxy>(); proxy.InitProxy(assetType, assetName, isUsePool); Object ctrl = null; AssetBundle assetBundle = AssetBundleMgr.Instance.LoadAssetBundleSync(assetType, assetName); if (assetBundle != null) { var name = Path.GetFileNameWithoutExtension(assetName); ctrl = assetBundle.LoadAsset(name); } if (ctrl == null) { LogHelper.PrintError(string.Format("[ResourceMgr]LoadAssetSync Load Asset failure" + ",type:{0},name:{1}!", assetType, assetName)); } proxy.OnFinish(ctrl); return(proxy); }