/// <summary> /// Loads the haircut file asynchronously. /// </summary> /// <param name="haircutId">Unique ID of a haircut.</param> /// <param name="file">File type (e.g. haircut texture).</param> public static AsyncRequest <byte[]> LoadHaircutFileAsync(string haircutId, HaircutFile file) { try { var filename = AvatarSdkMgr.Storage().GetHaircutFilename(haircutId, file); return(LoadFileAsync(filename)); } catch (Exception ex) { Debug.LogException(ex); var request = new AsyncRequest <byte[]> (); request.SetError(string.Format("Could not load {0}, reason: {1}", file, ex.Message)); return(request); } }
/// <summary> /// Helper method that automatically generates full path to file from file type and avatar id, and then calls /// SaveFileAsync. /// </summary> /// <param name="bytes">Binary file content.</param> /// <param name="code">Avatar code.</param> /// <param name="file">Avatar file type.</param> public static AsyncRequest <string> SaveAvatarFileAsync(byte[] bytes, string code, AvatarFile file) { try { var filename = AvatarSdkMgr.Storage().GetAvatarFilename(code, file); return(SaveFileAsync(bytes, filename)); } catch (Exception ex) { Debug.LogException(ex); var request = new AsyncRequest <string> (""); request.SetError(string.Format("Could not save {0}, reason: {1}", file, ex.Message)); return(request); } }
/// <summary> /// Loads the avatar haircut points file asynchronously. /// </summary> /// <param name="code">Avatar unique code.</param> /// <param name="haircutId">Unique ID of a haircut.</param> public static AsyncRequest <byte[]> LoadAvatarHaircutPointcloudFileAsync(string code, string haircutId) { try { var filename = AvatarSdkMgr.Storage().GetAvatarHaircutPointCloudFilename(code, haircutId); return(LoadFileAsync(filename)); } catch (Exception ex) { Debug.LogException(ex); var request = new AsyncRequest <byte[]> (); request.SetError(string.Format("Could not load haircut {0} point cloud, reason: {1}", haircutId, ex.Message)); return(request); } }
/// <summary> /// Same as SaveAvatarFileAsync, but for haircut points, because they are unique for each avatar and should be stored in avatar folder. /// </summary> /// <param name="bytes">Binary file content.</param> /// <param name="code">Avatar unique code.</param> /// <param name="haircutId">Unique ID of a haircut.</param> public static AsyncRequest <string> SaveAvatarHaircutPointCloudZipFileAsync( byte[] bytes, string code, string haircutId ) { try { var filename = AvatarSdkMgr.Storage().GetAvatarHaircutPointCloudZipFilename(code, haircutId); return(SaveFileAsync(bytes, filename)); } catch (Exception ex) { Debug.LogException(ex); var request = new AsyncRequest <string> ("Saving file"); request.SetError(string.Format("Could not save point cloud zip, reason: {0}", ex.Message)); return(request); } }