public IEnumerator ReceiveFirstList() { var done = false; Autoya.AssetBundle_DownloadAssetBundleListFromUrlManually( abListPath + "main_assets/" + AssetBundlesSettings.PLATFORM_STR + "/1.0.0/main_assets.json", status => { done = true; }, (code, reason, autoyaStatus) => { // do nothing. } ); yield return(WaitUntil( () => done, () => { throw new TimeoutException("faild to get assetBundleList."); } )); // リスト1.0.0が保持されている。 True(Autoya.Debug_AssetBundle_FeatureState() == Autoya.AssetBundlesFeatureState.Ready); True(Autoya.AssetBundle_AssetBundleLists()[0].version == "1.0.0"); }
public IEnumerator ReceiveUpdatedListThenListWillBeUpdatedThenRestore() { var defaultDesc = Autoya.Manifest_LoadRuntimeManifest().ToString(); yield return(ReceiveUpdatedListThenListWillBeUpdated()); // list is updated. RuntieManifest too. var updatedDesc = Autoya.Manifest_LoadRuntimeManifest().ToString(); True(defaultDesc != updatedDesc, "defaultDesc:" + defaultDesc + "\nupdatedDesc:" + updatedDesc); { var done = false; Autoya.AssetBundle_FactoryReset( () => { done = true; }, (error, reason) => { Fail("err:" + error + " reason:" + reason); } ); yield return(WaitUntil( () => done, () => { throw new TimeoutException("timeout."); } )); } var resettedDesc = Autoya.Manifest_LoadRuntimeManifest().ToString(); True(resettedDesc == defaultDesc); { var done = false; Autoya.AssetBundle_DownloadAssetBundleListFromUrlManually( abListPath + "main_assets/" + AssetBundlesSettings.PLATFORM_STR + "/1.0.0/main_assets.json", status => { done = true; }, (code, reason, autoyaStatus) => { // do nothing. } ); yield return(WaitUntil( () => done, () => { throw new TimeoutException("faild to get assetBundleList."); } )); } }
public IEnumerator ReceiveUpdatedListThenIgnoreAndIgnoredListIsCached() { var done = false; Autoya.AssetBundle_DownloadAssetBundleListFromUrlManually( abListPath + "main_assets/" + AssetBundlesSettings.PLATFORM_STR + "/1.0.0/main_assets.json", status => { done = true; }, (code, reason, autoyaStatus) => { // do nothing. } ); yield return WaitUntil( () => done, () => { throw new TimeoutException("faild to get assetBundleList."); } ); // リスト1.0.0が保持されている。 // 通信のレスポンスヘッダーに特定の値が含まれていることで、listの更新リクエストを送り出す機構を着火する。 // 新しいリストの取得判断の関数をセット(レスポンスを捕まえられるはず) Autoya.Debug_SetOverridePoint_ShouldRequestNewAssetBundleList( (identity, newVersion) => { True(newVersion == "1.0.1"); return RequestYes(identity, newVersion); } ); // リストの更新判断の関数をセット、ここでは更新を無視する。 // 無視されたリストはpostponedなリストとしてメモリ上に保持される。これによって無駄な取得リクエストを省く。 var listWillBeIgnored = false; Autoya.Debug_SetOverridePoint_ShouldUpdateToNewAssetBundleList( (condition, proceed, cancel) => { listWillBeIgnored = true; cancel(); } ); Autoya.Http_Get( "https://httpbin.org/response-headers?" + resversionDesc + "=main_assets:1.0.1", (conId, data) => { // pass. }, (conId, code, reason, status) => { Fail(); } ); yield return WaitUntil( () => listWillBeIgnored, () => { throw new TimeoutException("too late."); } ); // list is not updated yet. True(Autoya.AssetBundle_AssetBundleLists()[0].version == "1.0.0"); True(Autoya.Debug_AssetBundle_FeatureState() == Autoya.AssetBundlesFeatureState.Ready); // set to the new list to be updated. var listWillBeUpdated = false; Autoya.Debug_SetOverridePoint_ShouldUpdateToNewAssetBundleList( (condition, proceed, cancel) => { listWillBeUpdated = true; proceed(); } ); // get list again. Autoya.Http_Get( "https://httpbin.org/response-headers?" + resversionDesc + "=main_assets:1.0.1", (conId, data) => { // pass. }, (conId, code, reason, status) => { Fail(); } ); yield return WaitUntil( () => listWillBeUpdated, () => { throw new TimeoutException("too late."); } ); True(Autoya.AssetBundle_AssetBundleLists()[0].version == "1.0.1"); }
public IEnumerator ReceiveUpdatedListThenOnAssetBundleListUpdatedFired() { var done = false; Autoya.AssetBundle_DownloadAssetBundleListFromUrlManually( abListPath + "main_assets/" + AssetBundlesSettings.PLATFORM_STR + "/1.0.0/main_assets.json", status => { done = true; }, (code, reason, autoyaStatus) => { // do nothing. } ); yield return WaitUntil( () => done, () => { throw new TimeoutException("faild to get assetBundleList."); } ); // リスト1.0.0が保持されている。 // 通信のレスポンスヘッダーに特定の値が含まれていることで、listの更新リクエストを送り出す機構を着火する。 // 新しいリストの取得判断の関数をセット(レスポンスを捕まえられるはず) Autoya.Debug_SetOverridePoint_ShouldRequestNewAssetBundleList( (identity, newVersion) => { True(newVersion == "1.0.1"); return RequestYes(identity, newVersion); } ); // リストの更新判断の関数をセット var isListUpdated = false; Autoya.Debug_SetOverridePoint_ShouldUpdateToNewAssetBundleList( (condition, proceed, cancel) => { proceed(); } ); Autoya.Debug_SetOnOverridePoint_OnAssetBundleListUpdated( (newVersion, ready) => { ready(); isListUpdated = true; } ); Autoya.Http_Get( "https://httpbin.org/response-headers?" + resversionDesc + "=main_assets:1.0.1", (conId, data) => { // pass. }, (conId, code, reason, status) => { Fail(); } ); yield return WaitUntil( () => isListUpdated, () => { throw new TimeoutException("too late."); } ); // list is updated. True(Autoya.AssetBundle_AssetBundleLists()[0].version == "1.0.1"); True(Autoya.Debug_AssetBundle_FeatureState() == Autoya.AssetBundlesFeatureState.Ready); }
public IEnumerator ReceiveListUpdated() { var done = false; Autoya.AssetBundle_DownloadAssetBundleListFromUrlManually( abListPath + "main_assets/" + AssetBundlesSettings.PLATFORM_STR + "/1.0.0/main_assets.json", status => { done = true; }, (code, reason, autoyaStatus) => { // do nothing. Fail("code:" + code + " reason:" + reason); } ); yield return WaitUntil( () => done, () => { throw new TimeoutException("faild to get assetBundleList."); } ); // リスト1.0.0が保持されている。 // 通信のレスポンスヘッダーに特定の値が含まれていることで、listの更新リクエストを送り出す機構を着火する。 // 新しいリストの取得判断の関数をセット(レスポンスを捕まえられるはず) var listWillBeDownloaded = false; Autoya.Debug_SetOverridePoint_ShouldRequestNewAssetBundleList( (identity, newVersion) => { listWillBeDownloaded = true; True(newVersion == "1.0.1"); return RequestYes(identity, newVersion); } ); // リストの更新判断の関数をセット var listWillBeUpdated = false; Autoya.Debug_SetOverridePoint_ShouldUpdateToNewAssetBundleList( (condition, proceed, cancel) => { listWillBeUpdated = true; proceed(); } ); // この通信でresponseHeaderを指定してリストの更新機能を着火する。 Autoya.Http_Get( "https://httpbin.org/response-headers?" + resversionDesc + "=main_assets:1.0.1", (conId, data) => { // pass. }, (conId, code, reason, status) => { Fail(); } ); yield return WaitUntil( () => listWillBeDownloaded, () => { throw new TimeoutException("too late."); } ); yield return WaitUntil( () => listWillBeUpdated, () => { throw new TimeoutException("too late."); } ); }