static String GetResBaseFullPath() { #if UNITY_ANDROID //android 需拷贝到另一目录 return("assets://" + GetResBaseRelativePath()); #elif UNITY_IPHONE // iOS平台直接用StreamingAsset中的目录 return(Application.dataPath + "/Raw/res_base"); #else //其他平台直接用 StreamingAsset 中的目录 return(CStreamingAssetHelper.MakePath(GetResBaseRelativePath())); #endif }
public IEnumerable RunInstallStage(string srcDir, string destDir) { EntryPoint.Instance.PanelHotUpdate.SetActive(true); //新UI _HotUpdateViewer.SetInstallInfo(EntryPoint.Instance.UpdateStringConfigParams.UpdateString_PrepareForFirstTimeUse); _HotUpdateViewer.SetInstallPercent(-1.0f); _HotUpdateViewer.SetAllProgress(0.0f); _HotUpdateViewer.SetPartProgress(0.0f); _HotUpdateViewer.SetDesc(EntryPoint.Instance.UpdateStringConfigParams.UpdateString_PrepareForFirstTimeUse); _HotUpdateViewer.SetCurrentVersion("0.0.0"); _HotUpdateViewer.SetServerVersion("0.0.0"); yield return(null); yield return(null); long lDiskSize = OSUtility.GetFreeDiskSpace(); long lTotalSize = (long)Math.Ceiling(EntryPoint.Instance.TotalSizeToCopy * 1.1f); if (lDiskSize != 0 && lDiskSize < lTotalSize) //没有足够的空间,退出 { string sizeStr = string.Empty; long iNeedSizeMB = lTotalSize / (1024 * 1024); if (iNeedSizeMB >= 1f) { iNeedSizeMB = ((iNeedSizeMB * 10) - (iNeedSizeMB * 10) % 1) / 10; //保留一位小数 if (iNeedSizeMB % 1 > 0) { //有小数点 sizeStr = HobaText.Format("{0:0.0} MB", iNeedSizeMB); } else { sizeStr = HobaText.Format("{0:0} MB", iNeedSizeMB); } } else { long iNeedSizeKB = lTotalSize / 1024; sizeStr = HobaText.Format("{0:0} KB", iNeedSizeKB); } _HotUpdateViewer.SetCircle(false); yield return(new WaitForUserClick(MessageBoxStyle.MB_OK, EntryPoint.Instance.UpdateStringConfigParams.UpdateString_EnsureEnoughSpaceMB, EntryPoint.Instance.UpdateStringConfigParams.UpdateState_DiskSpaceFullErr, string.Empty, sizeStr)); EntryPoint.ExitGame(); yield break; } lTotalSize = EntryPoint.Instance.TotalSizeToCopy; bool succeed = false; float fLastProgress = 0.0f; var listFile = EntryPoint.Instance.ListFilesToCopy; if (lTotalSize > 0 && listFile != null) { long sizeFinished = 0; for (int i = 0; i < listFile.Count; ++i) { long size = CStreamingAssetHelper.CopyAssetFileToPath(listFile[i], srcDir, destDir); if (size == -1) { DeviceLogger.Instance.WriteLog(string.Format("RunInstallStage CopyAssetFileToPath Failed! {0}", listFile[i])); continue; } sizeFinished += size; float progress = (float)sizeFinished / lTotalSize; if (Util.IsZero(fLastProgress - progress)) { fLastProgress = progress; _HotUpdateViewer.SetAllProgress(progress); _HotUpdateViewer.SetPartProgress(progress); _HotUpdateViewer.SetInstallPercent(progress); yield return(null); yield return(null); } } succeed = (sizeFinished == lTotalSize); } else { succeed = true; } EntryPoint.Instance.IsInstallFinished = succeed; yield return(new WaitForSeconds(0.5f)); }