private static IEnumerator Load <T>(AssetBundleUnit assetBundleUnit, string name, System.Action <T> action) where T : Object { if (assetBundleUnit != null && assetBundleUnit.assetBundle != null) { AssetBundleRequest request = assetBundleUnit.assetBundle.LoadAssetAsync <T>(name); yield return(request); action.InvokeGracefully(request.asset); } else { action.InvokeGracefully(null); } }
public static void DoUpload(PackageVersion packageVersion, System.Action succeed) { EditorUtility.DisplayProgressBar("插件上传", "打包中...", 0.1f); var fileName = packageVersion.Name + "_" + packageVersion.Version + ".unitypackage"; var fullpath = PackageManagerView.ExportPaths(fileName, packageVersion.InstallPath); var file = File.ReadAllBytes(fullpath); var form = new WWWForm(); form.AddField("username", User.Username.Value); form.AddField("password", User.Password.Value); form.AddField("name", packageVersion.Name); form.AddField("version", packageVersion.Version); form.AddBinaryData("file", file); form.AddField("version", packageVersion.Version); form.AddField("releaseNote", packageVersion.Readme.content); form.AddField("installPath", packageVersion.InstallPath); form.AddField("accessRight", packageVersion.AccessRight.ToString().ToLower()); form.AddField("docUrl", packageVersion.DocUrl); if (packageVersion.Type == PackageType.FrameworkModule) { form.AddField("type", "fm"); } else if (packageVersion.Type == PackageType.Shader) { form.AddField("type", "s"); } else if (packageVersion.Type == PackageType.AppOrGameDemoOrTemplate) { form.AddField("type", "agt"); } else if (packageVersion.Type == PackageType.Plugin) { form.AddField("type", "p"); } Debug.Log(fullpath); EditorUtility.DisplayProgressBar("插件上传", "上传中...", 0.2f); ObservableWWW.Post(UPLOAD_URL, form, new Dictionary <string, string> { { "Authorization", "Token " + User.Token.Value } }) .Subscribe(responseContent => { EditorUtility.ClearProgressBar(); Debug.Log(responseContent); succeed.InvokeGracefully(); File.Delete(fullpath); }, e => { EditorUtility.ClearProgressBar(); EditorUtility.DisplayDialog("插件上传", "上传失败!{0}".FillFormat(e.Message), "确定"); File.Delete(fullpath); }); }
public static T ApplySelfToGracefully <T>(this T selfObj, System.Action <T> toFunction) where T : Object { if (selfObj) { toFunction.InvokeGracefully(selfObj); } return(selfObj); }
/// <summary> /// 版本文件下载回调 /// </summary> /// <param name="data"></param> /// <param name="downResult"></param> /// <param name="downError"></param> public void AppVersionCall(byte[] data, DownStatus downResult = DownStatus.Sucess, string downError = "") { if (downResult != DownStatus.Sucess) { AFLogger.e("下载Version文件未成功,请检查!"); return; } AppInfoConfig appInfoConfig = SerializeHelper.FromJson <AppInfoConfig>(System.Text.Encoding.UTF8.GetString(data)); double appV = 0; if (ABConfig.isDevelopOrOnlineAB) { appV = ABConfig.ABDevelopmentVersion; } else { appV = ABConfig.ABOnlineVersion; } if (appInfoConfig.AvailableABVersions.Contains(appV)) { if (appInfoConfig.NewABVersion.Contains(appV)) { versionStatus = APPVersionStatus.Newest; } else { versionStatus = APPVersionStatus.Update; } if (CheckABConfig()) { ABInit(default(byte[])); } } else { versionStatus = APPVersionStatus.Abandon; ABCheckInitFinish.InvokeGracefully(versionStatus); IsABCheckFinish = true; } }
public void Dispose() { if (mDisposed) { return; } mDisposed = true; OnBeganCallback = null; OnEndedCallback = null; OnDisposedCallback.InvokeGracefully(); OnDisposedCallback = null; OnDispose(); }
public static void LoadAssetAsyc <T>(string path, string name, System.Action <T> action, bool release = false) where T : Object { if (IsResources(path)) { ResourceRequest request = Resources.LoadAsync <T>(GetResourcesName(path, name)); TaskHelper.Create <CoroutineTask>() .Delay(request) .Do(() => { action.InvokeGracefully(request.asset.As <T>()); }) .Execute(); } else { LoadAssetBundleUnitAsyc(path, (assetBundleUnit) => { LoadAssetFromAssetBundleUnitAsyc <T>(assetBundleUnit, name, (asset) => { action.InvokeGracefully(asset); }, release); }); } }
public bool Execute(float dt) { if (!mOnBeginCalled) { mOnBeginCalled = true; OnBegin(); OnBeganCallback.InvokeGracefully(); } if (!Finished) { OnExecute(dt); } if (Finished) { OnEnd(); OnEndedCallback.InvokeGracefully(); } return(Finished || mDisposed); }
public static void LoadAssetFromAssetBundleUnitAsyc <T>(AssetBundleUnit assetBundleUnit, string name, System.Action <T> finish, bool release = false) where T : Object { if (assetBundleUnit != null && assetBundleUnit.assetBundle != null) { TaskHelper.Create <CoroutineTask>() .Delay(Load(assetBundleUnit, name, finish)) .Do(() => { if (release) { AssetBundleManager.instance.Release(assetBundleUnit); } }) .Execute(); } else { Log.W(TAG, "Load Asset {0} from {1} is null", name, assetBundleUnit.name); finish.InvokeGracefully(null); } }
public static T ApplySelfTo <T>(this T self, System.Action <T> toFunction) where T : Object { toFunction.InvokeGracefully(self); return(self); }