public override int GetHashCode() { int hash = 1; if (Enabled != false) { hash ^= Enabled.GetHashCode(); } if (AvatarType != 0) { hash ^= AvatarType.GetHashCode(); } hash ^= slot_.GetHashCode(); if (BundleName.Length != 0) { hash ^= BundleName.GetHashCode(); } if (AssetName.Length != 0) { hash ^= AssetName.GetHashCode(); } if (GroupName.Length != 0) { hash ^= GroupName.GetHashCode(); } if (SortOrder != 0) { hash ^= SortOrder.GetHashCode(); } if (UnlockType != 0) { hash ^= UnlockType.GetHashCode(); } hash ^= promoType_.GetHashCode(); if (UnlockBadgeType != 0) { hash ^= UnlockBadgeType.GetHashCode(); } if (IapSku.Length != 0) { hash ^= IapSku.GetHashCode(); } if (UnlockBadgeLevel != 0) { hash ^= UnlockBadgeLevel.GetHashCode(); } if (IconName.Length != 0) { hash ^= IconName.GetHashCode(); } if (UnlockPlayerLevel != 0) { hash ^= UnlockPlayerLevel.GetHashCode(); } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } return(hash); }
public int GetHashCode() { unchecked { return(((BundleName != null ? BundleName.GetHashCode() : 0) * 397) ^ (AssetName != null ? AssetName.GetHashCode() : 0)); } }
public static void SetAssetBundleName() { // 清理无用asset bundle name AssetDatabase.RemoveUnusedAssetBundleNames(); // 标准资源 BundleName[] standards = new BundleName[] { new BundleName("Art/Heros", "heros"), new BundleName("Art/Monsters", "monsters"), new BundleName("Art/Weapons", "weapons"), new BundleName("Art/Bullets", "bullets"), new BundleName("Art/Effects", "effects"), }; SetAssetBundleNameToStandard(standards); // 设置单一资源 BundleName[] singles = new BundleName[] { new BundleName("Data/CSV", "csv", "*.csv"), new BundleName("Art/Behavior", "behavior", "*.asset"), new BundleName("Art/UIPrefabs", "uiprefabs", "*.prefab"), }; SetAssetBundleNameToSingle(singles); // level SetAssetBundleNameToLevelPrefab(); SetAssetBundleNameToLevelScene(); // skybox SetAssetBundleNameToSkybox(); Debug.Log("设置资源 assetBundleName 完成!"); }
public override int GetHashCode() { unchecked { return(((BundleName != null ? BundleName.GetHashCode() : 0) * 397) ^ (AssemblyName != null ? AssemblyName.GetHashCode() : 0)); } }
public override int GetHashCode() { int hash = 1; if (AssetId.Length != 0) { hash ^= AssetId.GetHashCode(); } if (BundleName.Length != 0) { hash ^= BundleName.GetHashCode(); } if (Version != 0L) { hash ^= Version.GetHashCode(); } if (Checksum != 0) { hash ^= Checksum.GetHashCode(); } if (Size != 0) { hash ^= Size.GetHashCode(); } if (Key.Length != 0) { hash ^= Key.GetHashCode(); } return(hash); }
public static void UnloadBundle(BundleName _bundleName, bool _unloadAllLoadedObjects) { if (isBundleLoaded[(int)_bundleName]) { loadedBundles[(int)_bundleName].Unload(_unloadAllLoadedObjects); isBundleLoaded[(int)_bundleName] = false; } }
public static void LoadAssetBundle(BundleName _bundleName) { string fullPath = GetAssetsPathFromBundleName(_bundleName); loadedBundles[(int)_bundleName] = AssetBundle.LoadFromFile(fullPath); isBundleLoaded[(int)_bundleName] = true; }
/// <summary> /// Gets the hash code /// </summary> /// <returns>Hash code</returns> public override int GetHashCode() { unchecked // Overflow is fine, just wrap { var hashCode = 41; // Suitable nullity checks etc, of course :) if (Bsb != null) { hashCode = hashCode * 59 + Bsb.GetHashCode(); } if (AccountNumber != null) { hashCode = hashCode * 59 + AccountNumber.GetHashCode(); } if (BundleName != null) { hashCode = hashCode * 59 + BundleName.GetHashCode(); } if (SpecificAccountUType != null) { hashCode = hashCode * 59 + SpecificAccountUType.GetHashCode(); } if (TermDeposit != null) { hashCode = hashCode * 59 + TermDeposit.GetHashCode(); } if (CreditCard != null) { hashCode = hashCode * 59 + CreditCard.GetHashCode(); } if (Loan != null) { hashCode = hashCode * 59 + Loan.GetHashCode(); } if (Features != null) { hashCode = hashCode * 59 + Features.GetHashCode(); } if (Fees != null) { hashCode = hashCode * 59 + Fees.GetHashCode(); } if (DepositRates != null) { hashCode = hashCode * 59 + DepositRates.GetHashCode(); } if (LendingRates != null) { hashCode = hashCode * 59 + LendingRates.GetHashCode(); } if (Address != null) { hashCode = hashCode * 59 + Address.GetHashCode(); } return(hashCode); } }
public static string GetBundleName(DirectoryReference ProjectDirectory, FileReference ProjectFile) { ConfigHierarchy Ini = GetIni(ProjectDirectory); string BundleName; Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "BundleName", out BundleName); BundleName = BundleName.Replace("[PROJECT_NAME]", ((ProjectFile != null) ? ProjectFile.GetFileNameWithoutAnyExtensions() : "UE4Game")).Replace("_", ""); return(BundleName); }
public static AssetBundle GetAssetBundle(BundleName _bundleName) { if (!isBundleLoaded[(int)_bundleName] || loadedBundles[(int)_bundleName] == null) { if (loadedBundles[(int)_bundleName] != null) { loadedBundles[(int)_bundleName].Unload(false); } LoadAssetBundle(_bundleName); } return(loadedBundles[(int)_bundleName]); }
public override int GetHashCode() { int hash = 1; if (BundleName.Length != 0) { hash ^= BundleName.GetHashCode(); } if (BundleUrl.Length != 0) { hash ^= BundleUrl.GetHashCode(); } if (LoadTime != 0D) { hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LoadTime); } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } return(hash); }
private static void MapResBundleFolder(string a_bundleName, string a_bundlePath) { string dirName = a_bundleName; BundleMap bundleMap = null; BundleName bundleName = new BundleName(dirName); if (currentBundleMap.TryGetValue(bundleName, out bundleMap) == false) // No Path Map Exists { bundleMap = new BundleMap(); } DirectoryInfo bundleDir = new DirectoryInfo(a_bundlePath); for (int i = 0; i < (int)bundleMap.Count; ++i) { AssetType type = (AssetType)i; string extension = AssetTypeExtensionLookup[type]; RecursivelyMapBundleDir(bundleDir, bundleMap[type], currentTypeMaps[i], extension); } Debug.Log("Map Directory Complete!"); }
private static void MapResBundleFolder(DirectoryInfo a_bundleDir) { string dirName = a_bundleDir.Name; BundleMap bundleMap = null; BundleName bundleName = new BundleName(dirName); if (currentBundleMap.TryGetValue(bundleName, out bundleMap) == false) // No Path Map Exists { bundleMap = new BundleMap(); currentBundleMap.Add(bundleName, bundleMap); } for (int i = 0; i < (int)AssetType.COUNT; ++i) { AssetType type = (AssetType)i; string extension; if (AssetTypeExtensionLookup.TryGetValue(type, out extension) == false) { continue; } PathMap pathMap; if (bundleMap.TryGetValue(type, out pathMap) == false) { Debug.LogError("Failed to get path map of type " + type + " from bundlemap!"); continue; } PathMap globalPathMap = currentTypeMaps[i]; RecursivelyMapBundleDir(a_bundleDir, pathMap, globalPathMap, extension); } Debug.Log("Map Directory Complete!"); }
public static bool GeneratePList(string ProjectDirectory, bool bIsUE4Game, string GameName, string ProjectName, string InEngineDir, string AppDirectory) { // generate the Info.plist for future use string BuildDirectory = ProjectDirectory + "/Build/IOS"; bool bSkipDefaultPNGs = false; string IntermediateDirectory = (bIsUE4Game ? InEngineDir : ProjectDirectory) + "/Intermediate/IOS"; string PListFile = IntermediateDirectory + "/" + GameName + "-Info.plist"; VersionUtilities.BuildDirectory = BuildDirectory; VersionUtilities.GameName = GameName; // read the old file string OldPListData = File.Exists(PListFile) ? File.ReadAllText(PListFile) : ""; // determine if there is a launch.xib string LaunchXib = InEngineDir + "/Build/IOS/Resources/Interface/LaunchScreen.xib"; if (File.Exists(BuildDirectory + "/Resources/Interface/LaunchScreen.xib")) { LaunchXib = BuildDirectory + "/Resources/Interface/LaunchScreen.xib"; } // get the settings from the ini file // plist replacements ConfigCacheIni Ini = new ConfigCacheIni(UnrealTargetPlatform.IOS, "Engine", UnrealBuildTool.GetUProjectPath()); // orientations string SupportedOrientations = ""; bool bSupported = true; Ini.GetBool("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bSupportsPortraitOrientation", out bSupported); SupportedOrientations += bSupported ? "\t\t<string>UIInterfaceOrientationPortrait</string>\n" : ""; Ini.GetBool("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bSupportsUpsideDownOrientation", out bSupported); SupportedOrientations += bSupported ? "\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n" : ""; Ini.GetBool("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bSupportsLandscapeLeftOrientation", out bSupported); SupportedOrientations += bSupported ? "\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n" : ""; Ini.GetBool("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bSupportsLandscapeRightOrientation", out bSupported); SupportedOrientations += bSupported ? "\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n" : ""; // bundle display name string BundleDisplayName; Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "BundleDisplayName", out BundleDisplayName); // bundle identifier string BundleIdentifier; Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "BundleIdentifier", out BundleIdentifier); // bundle name string BundleName; Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "BundleName", out BundleName); // short version string string BundleShortVersion; Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "VersionInfo", out BundleShortVersion); // required capabilities string RequiredCaps = "\t\t<string>armv7</string>\n"; Ini.GetBool("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bSupportsOpenGLES2", out bSupported); RequiredCaps += bSupported ? "\t\t<string>opengles-2</string>\n" : ""; if (!bSupported) { Ini.GetBool("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bSupportsMetal", out bSupported); RequiredCaps += bSupported ? "\t\t<string>metal</string>\n" : ""; } // minimum iOS version string MinVersion; if (Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "MinimumiOSVersion", out MinVersion)) { switch (MinVersion) { case "IOS_61": MinVersion = "6.1"; break; case "IOS_7": MinVersion = "7.0"; break; case "IOS_8": MinVersion = "8.0"; break; } } else { MinVersion = "6.1"; } // Get Facebook Support details bool bEnableFacebookSupport = true; Ini.GetBool("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bEnableFacebookSupport", out bEnableFacebookSupport); // Write the Facebook App ID if we need it. string FacebookAppID = ""; Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "FacebookAppID", out FacebookAppID); bEnableFacebookSupport = bEnableFacebookSupport && !string.IsNullOrWhiteSpace(FacebookAppID); // extra plist data string ExtraData = ""; Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "AdditionalPlistData", out ExtraData); // generate the plist file StringBuilder Text = new StringBuilder(); Text.AppendLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); Text.AppendLine("<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">"); Text.AppendLine("<plist version=\"1.0\">"); Text.AppendLine("<dict>"); Text.AppendLine("\t<key>CFBundleURLTypes</key>"); Text.AppendLine("\t<array>"); Text.AppendLine("\t\t<dict>"); Text.AppendLine("\t\t\t<key>CFBundleURLName</key>"); Text.AppendLine("\t\t\t<string>com.Epic.Unreal</string>"); Text.AppendLine("\t\t\t<key>CFBundleURLSchemes</key>"); Text.AppendLine("\t\t\t<array>"); Text.AppendLine(string.Format("\t\t\t\t<string>{0}</string>", bIsUE4Game ? "UE4Game" : GameName)); if (bEnableFacebookSupport) { // This is needed for facebook login to redirect back to the app after completion. Text.AppendLine(string.Format("\t\t\t\t<string>fb{0}</string>", FacebookAppID)); } Text.AppendLine("\t\t\t</array>"); Text.AppendLine("\t\t</dict>"); Text.AppendLine("\t</array>"); Text.AppendLine("\t<key>CFBundleDevelopmentRegion</key>"); Text.AppendLine("\t<string>English</string>"); Text.AppendLine("\t<key>CFBundleDisplayName</key>"); Text.AppendLine(string.Format("\t<string>{0}</string>", BundleDisplayName.Replace("[PROJECT_NAME]", ProjectName).Replace("_", ""))); Text.AppendLine("\t<key>CFBundleExecutable</key>"); Text.AppendLine(string.Format("\t<string>{0}</string>", bIsUE4Game ? "UE4Game" : GameName)); Text.AppendLine("\t<key>CFBundleIdentifier</key>"); Text.AppendLine(string.Format("\t<string>{0}</string>", BundleIdentifier.Replace("[PROJECT_NAME]", ProjectName).Replace("_", ""))); Text.AppendLine("\t<key>CFBundleInfoDictionaryVersion</key>"); Text.AppendLine("\t<string>6.0</string>"); Text.AppendLine("\t<key>CFBundleName</key>"); Text.AppendLine(string.Format("\t<string>{0}</string>", BundleName.Replace("[PROJECT_NAME]", ProjectName).Replace("_", ""))); Text.AppendLine("\t<key>CFBundlePackageType</key>"); Text.AppendLine("\t<string>APPL</string>"); Text.AppendLine("\t<key>CFBundleSignature</key>"); Text.AppendLine("\t<string>????</string>"); Text.AppendLine("\t<key>CFBundleVersion</key>"); Text.AppendLine(string.Format("\t<string>{0}</string>", VersionUtilities.UpdateBundleVersion(OldPListData))); Text.AppendLine("\t<key>CFBundleShortVersionString</key>"); Text.AppendLine(string.Format("\t<string>{0}</string>", BundleShortVersion)); Text.AppendLine("\t<key>LSRequiresIPhoneOS</key>"); Text.AppendLine("\t<true/>"); Text.AppendLine("\t<key>UIStatusBarHidden</key>"); Text.AppendLine("\t<true/>"); Text.AppendLine("\t<key>UIViewControllerBasedStatusBarAppearance</key>"); Text.AppendLine("\t<false/>"); Text.AppendLine("\t<key>UISupportedInterfaceOrientations</key>"); Text.AppendLine("\t<array>"); foreach (string Line in SupportedOrientations.Split("\r\n".ToCharArray())) { if (!string.IsNullOrWhiteSpace(Line)) { Text.AppendLine(Line); } } Text.AppendLine("\t</array>"); Text.AppendLine("\t<key>UIRequiredDeviceCapabilities</key>"); Text.AppendLine("\t<array>"); foreach (string Line in RequiredCaps.Split("\r\n".ToCharArray())) { if (!string.IsNullOrWhiteSpace(Line)) { Text.AppendLine(Line); } } Text.AppendLine("\t</array>"); Text.AppendLine("\t<key>CFBundleIcons</key>"); Text.AppendLine("\t<dict>"); Text.AppendLine("\t\t<key>CFBundlePrimaryIcon</key>"); Text.AppendLine("\t\t<dict>"); Text.AppendLine("\t\t\t<key>CFBundleIconFiles</key>"); Text.AppendLine("\t\t\t<array>"); Text.AppendLine("\t\t\t\t<string>Icon29.png</string>"); Text.AppendLine("\t\t\t\t<string>[email protected]</string>"); Text.AppendLine("\t\t\t\t<string>Icon40.png</string>"); Text.AppendLine("\t\t\t\t<string>[email protected]</string>"); Text.AppendLine("\t\t\t\t<string>Icon57.png</string>"); Text.AppendLine("\t\t\t\t<string>[email protected]</string>"); Text.AppendLine("\t\t\t\t<string>[email protected]</string>"); Text.AppendLine("\t\t\t</array>"); Text.AppendLine("\t\t\t<key>UIPrerenderedIcon</key>"); Text.AppendLine("\t\t\t<true/>"); Text.AppendLine("\t\t</dict>"); Text.AppendLine("\t</dict>"); Text.AppendLine("\t<key>CFBundleIcons~ipad</key>"); Text.AppendLine("\t<dict>"); Text.AppendLine("\t\t<key>CFBundlePrimaryIcon</key>"); Text.AppendLine("\t\t<dict>"); Text.AppendLine("\t\t\t<key>CFBundleIconFiles</key>"); Text.AppendLine("\t\t\t<array>"); Text.AppendLine("\t\t\t\t<string>Icon29.png</string>"); Text.AppendLine("\t\t\t\t<string>[email protected]</string>"); Text.AppendLine("\t\t\t\t<string>Icon40.png</string>"); Text.AppendLine("\t\t\t\t<string>[email protected]</string>"); Text.AppendLine("\t\t\t\t<string>Icon50.png</string>"); Text.AppendLine("\t\t\t\t<string>[email protected]</string>"); Text.AppendLine("\t\t\t\t<string>Icon72.png</string>"); Text.AppendLine("\t\t\t\t<string>[email protected]</string>"); Text.AppendLine("\t\t\t\t<string>Icon76.png</string>"); Text.AppendLine("\t\t\t\t<string>[email protected]</string>"); Text.AppendLine("\t\t\t</array>"); Text.AppendLine("\t\t\t<key>UIPrerenderedIcon</key>"); Text.AppendLine("\t\t\t<true/>"); Text.AppendLine("\t\t</dict>"); Text.AppendLine("\t</dict>"); if (File.Exists(LaunchXib)) { // TODO: compile the xib via remote tool Text.AppendLine("\t<key>UILaunchStoryboardName</key>"); Text.AppendLine("\t<string>LaunchScreen</string>"); bSkipDefaultPNGs = true; } else { // this is a temp way to inject the iphone 6 images without needing to upgrade everyone's plist // eventually we want to generate this based on what the user has set in the project settings string[] IPhoneConfigs = { "Default-IPhone6", "Landscape", "{375, 667}", "Default-IPhone6", "Portrait", "{375, 667}", "Default-IPhone6Plus-Landscape", "Landscape", "{414, 736}", "Default-IPhone6Plus-Portrait", "Portrait", "{414, 736}", "Default", "Landscape", "{320, 480}", "Default", "Portrait", "{320, 480}", "Default-568h", "Landscape", "{320, 568}", "Default-568h", "Portrait", "{320, 568}", }; Text.AppendLine("\t<key>UILaunchImages~iphone</key>"); Text.AppendLine("\t<array>"); for (int ConfigIndex = 0; ConfigIndex < IPhoneConfigs.Length; ConfigIndex += 3) { Text.AppendLine("\t\t<dict>"); Text.AppendLine("\t\t\t<key>UILaunchImageMinimumOSVersion</key>"); Text.AppendLine("\t\t\t<string>8.0</string>"); Text.AppendLine("\t\t\t<key>UILaunchImageName</key>"); Text.AppendLine(string.Format("\t\t\t<string>{0}</string>", IPhoneConfigs[ConfigIndex + 0])); Text.AppendLine("\t\t\t<key>UILaunchImageOrientation</key>"); Text.AppendLine(string.Format("\t\t\t<string>{0}</string>", IPhoneConfigs[ConfigIndex + 1])); Text.AppendLine("\t\t\t<key>UILaunchImageSize</key>"); Text.AppendLine(string.Format("\t\t\t<string>{0}</string>", IPhoneConfigs[ConfigIndex + 2])); Text.AppendLine("\t\t</dict>"); } // close it out Text.AppendLine("\t</array>"); } Text.AppendLine("\t<key>UILaunchImages~ipad</key>"); Text.AppendLine("\t<array>"); Text.AppendLine("\t\t<dict>"); Text.AppendLine("\t\t\t<key>UILaunchImageMinimumOSVersion</key>"); Text.AppendLine("\t\t\t<string>7.0</string>"); Text.AppendLine("\t\t\t<key>UILaunchImageName</key>"); Text.AppendLine("\t\t\t<string>Default-Landscape</string>"); Text.AppendLine("\t\t\t<key>UILaunchImageOrientation</key>"); Text.AppendLine("\t\t\t<string>Landscape</string>"); Text.AppendLine("\t\t\t<key>UILaunchImageSize</key>"); Text.AppendLine("\t\t\t<string>{768, 1024}</string>"); Text.AppendLine("\t\t</dict>"); Text.AppendLine("\t\t<dict>"); Text.AppendLine("\t\t\t<key>UILaunchImageMinimumOSVersion</key>"); Text.AppendLine("\t\t\t<string>7.0</string>"); Text.AppendLine("\t\t\t<key>UILaunchImageName</key>"); Text.AppendLine("\t\t\t<string>Default-Portrait</string>"); Text.AppendLine("\t\t\t<key>UILaunchImageOrientation</key>"); Text.AppendLine("\t\t\t<string>Portrait</string>"); Text.AppendLine("\t\t\t<key>UILaunchImageSize</key>"); Text.AppendLine("\t\t\t<string>{768, 1024}</string>"); Text.AppendLine("\t\t</dict>"); Text.AppendLine("\t</array>"); Text.AppendLine("\t<key>CFBundleSupportedPlatforms</key>"); Text.AppendLine("\t<array>"); Text.AppendLine("\t\t<string>iPhoneOS</string>"); Text.AppendLine("\t</array>"); Text.AppendLine("\t<key>MinimumOSVersion</key>"); Text.AppendLine(string.Format("\t<string>{0}</string>", MinVersion)); if (bEnableFacebookSupport) { Text.AppendLine("\t<key>FacebookAppID</key>"); Text.AppendLine(string.Format("\t<string>{0}</string>", FacebookAppID)); } if (!string.IsNullOrEmpty(ExtraData)) { ExtraData = ExtraData.Replace("\\n", "\n"); foreach (string Line in ExtraData.Split("\r\n".ToCharArray())) { if (!string.IsNullOrWhiteSpace(Line)) { Text.AppendLine("\t" + Line); } } } Text.AppendLine("</dict>"); Text.AppendLine("</plist>"); // write the file out if (!Directory.Exists(IntermediateDirectory)) { Directory.CreateDirectory(IntermediateDirectory); } File.WriteAllText(PListFile, Text.ToString()); if (BuildHostPlatform.Current.Platform == UnrealTargetPlatform.Mac) { if (!Directory.Exists(AppDirectory)) { Directory.CreateDirectory(AppDirectory); } File.WriteAllText(AppDirectory + "/Info.plist", Text.ToString()); } return(bSkipDefaultPNGs); }
void OnGUI() { GUILayout.Space(20); ExportPath = EditorGUILayout.TextField("Export Path: ", ExportPath); GUILayout.Space(10); BundleName = EditorGUILayout.TextField("Custom Stage Name: ", BundleName); GUILayout.Space(10); IsForSpinMode = EditorGUILayout.Toggle("For spin mode?", IsForSpinMode); GUILayout.Space(70); if (GUILayout.Button("Export PC")) { if (BundleName == null || BundleName.Equals(string.Empty)) { Debug.LogError("Please set the bundle name"); EditorUtility.DisplayDialog("Custom Stage Name Empty", "The Custom Stage name must not be empty", "Ok"); } else { Debug.Log($"Bundle Name set to {BundleName}"); string extention = "stage"; if (IsForSpinMode) { extention = "spinstage"; } string sanitizeBundleName = SanitizeString(BundleName); AssetImporter.GetAtPath(AssetsPath).SetAssetBundleNameAndVariant($"{sanitizeBundleName}.{extention}", ""); string bundleExportPath = $"{Application.dataPath}/../{ExportPath}/{sanitizeBundleName}/"; if (!Directory.Exists(bundleExportPath)) { Directory.CreateDirectory(bundleExportPath); } BuildPipeline.BuildAssetBundles(bundleExportPath, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows); EditorUtility.RevealInFinder($"{bundleExportPath}"); Debug.Log($"Export complete, to directory {bundleExportPath}"); this.Close(); } } if (GUILayout.Button("Export Quest")) { if (BundleName == null || BundleName.Equals(string.Empty)) { Debug.LogError("Please set the bundle name"); EditorUtility.DisplayDialog("Custom Stage Name Empty", "The Custom Stage name must not be empty", "Ok"); } else { Debug.Log($"Bundle Name set to {BundleName}"); string extention = "stagequest"; if (IsForSpinMode) { extention = "spinstagequest"; } string sanitizeBundleName = SanitizeString(BundleName); AssetImporter.GetAtPath(AssetsPath).SetAssetBundleNameAndVariant($"{sanitizeBundleName}.{extention}", ""); string bundleExportPath = $"{Application.dataPath}/../{ExportPath}/{sanitizeBundleName}/"; //Check if Android Build support is install before exporting so that people //do not get confused when it doesn't export when Android SDK isn't installed //Debug.Log(BuildPipeline.IsBuildTargetSupported(BuildTargetGroup.Android, BuildTarget.Android)); if (BuildPipeline.IsBuildTargetSupported(BuildTargetGroup.Android, BuildTarget.Android) == true) { Debug.Log("Andriod is Supported meaning Android SDK is INSTALLED!"); if (!Directory.Exists(bundleExportPath)) { Directory.CreateDirectory(bundleExportPath); } try { BuildPipeline.BuildAssetBundles(bundleExportPath, BuildAssetBundleOptions.None, BuildTarget.Android); EditorUtility.RevealInFinder($"{bundleExportPath}"); Debug.Log($"Export complete, to directory {bundleExportPath}"); } catch (Exception E) { Debug.LogError("FAILED TO EXPORT! Caused by: " + E); } } else { Debug.LogError("ANDROID SDK NOT INSTALLED!"); EditorUtility.DisplayDialog("EXPORT FAILED!", "Exporting to Quest failed because the Android SDK is not installed! Install it from Unity Hub and restart the editor to continue", "Ok"); } this.Close(); } } if (GUILayout.Button("Cancel")) { this.Close(); } this.Repaint(); }
void OnGUI() { GUILayout.Space(20); ExportPath = EditorGUILayout.TextField("Export Path: ", ExportPath); GUILayout.Space(10); BundleName = EditorGUILayout.TextField("Custom Stage Name: ", BundleName); GUILayout.Space(10); IsForSpinMode = EditorGUILayout.Toggle("For spin mode?", IsForSpinMode); GUILayout.Space(70); if (GUILayout.Button("Export PC")) { if (BundleName == null || BundleName.Equals(string.Empty)) { Debug.LogError("Please set the bundle name"); } else { Debug.Log($"Bundle Name set to {BundleName}"); string extention = "stage"; if (IsForSpinMode) { extention = "spinstage"; } string sanitizeBundleName = SanitizeString(BundleName); AssetImporter.GetAtPath(AssetsPath).SetAssetBundleNameAndVariant($"{sanitizeBundleName}.{extention}", ""); string bundleExportPath = $"{Application.dataPath}/../{ExportPath}/{sanitizeBundleName}/"; if (!Directory.Exists(bundleExportPath)) { Directory.CreateDirectory(bundleExportPath); } BuildPipeline.BuildAssetBundles(bundleExportPath, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows); EditorUtility.RevealInFinder($"{bundleExportPath}"); Debug.Log($"Export complete, to directory {bundleExportPath}"); this.Close(); } } if (GUILayout.Button("Export Quest")) { if (BundleName == null || BundleName.Equals(string.Empty)) { Debug.LogError("Please set the bundle name"); } else { Debug.Log($"Bundle Name set to {BundleName}"); string extention = "stagequest"; if (IsForSpinMode) { extention = "spinstagequest"; } string sanitizeBundleName = SanitizeString(BundleName); AssetImporter.GetAtPath(AssetsPath).SetAssetBundleNameAndVariant($"{sanitizeBundleName}.{extention}", ""); string bundleExportPath = $"{Application.dataPath}/../{ExportPath}/{sanitizeBundleName}/"; if (!Directory.Exists(bundleExportPath)) { Directory.CreateDirectory(bundleExportPath); } BuildPipeline.BuildAssetBundles(bundleExportPath, BuildAssetBundleOptions.None, BuildTarget.Android); EditorUtility.RevealInFinder($"{bundleExportPath}"); Debug.Log($"Export complete, to directory {bundleExportPath}"); this.Close(); } } if (GUILayout.Button("Cancel")) { this.Close(); } this.Repaint(); }
static string GetAssetsPathFromBundleName(BundleName _bundleName) { return(System.IO.Path.Combine(Application.streamingAssetsPath, Enum.GetName(typeof(BundleName), _bundleName).ToLower())); }
/// <summary> /// Returns true if BankingAccountDetail instances are equal /// </summary> /// <param name="other">Instance of BankingAccountDetail to be compared</param> /// <returns>Boolean</returns> public bool Equals(BankingAccountDetail other) { if (ReferenceEquals(null, other)) { return(false); } if (ReferenceEquals(this, other)) { return(true); } return (( Bsb == other.Bsb || Bsb != null && Bsb.Equals(other.Bsb) ) && ( AccountNumber == other.AccountNumber || AccountNumber != null && AccountNumber.Equals(other.AccountNumber) ) && ( BundleName == other.BundleName || BundleName != null && BundleName.Equals(other.BundleName) ) && ( SpecificAccountUType == other.SpecificAccountUType || SpecificAccountUType != null && SpecificAccountUType.Equals(other.SpecificAccountUType) ) && ( TermDeposit == other.TermDeposit || TermDeposit != null && TermDeposit.Equals(other.TermDeposit) ) && ( CreditCard == other.CreditCard || CreditCard != null && CreditCard.Equals(other.CreditCard) ) && ( Loan == other.Loan || Loan != null && Loan.Equals(other.Loan) ) && ( Features == other.Features || Features != null && Features.SequenceEqual(other.Features) ) && ( Fees == other.Fees || Fees != null && Fees.SequenceEqual(other.Fees) ) && ( DepositRates == other.DepositRates || DepositRates != null && DepositRates.SequenceEqual(other.DepositRates) ) && ( LendingRates == other.LendingRates || LendingRates != null && LendingRates.SequenceEqual(other.LendingRates) ) && ( Address == other.Address || Address != null && Address.Equals(other.Address) )); }
public static bool GenerateTVOSPList(string ProjectDirectory, bool bIsUE4Game, string GameName, string ProjectName, string InEngineDir, string AppDirectory) { // @todo tvos: THIS! // generate the Info.plist for future use string BuildDirectory = ProjectDirectory + "/Build/TVOS"; bool bSkipDefaultPNGs = false; string IntermediateDirectory = (bIsUE4Game ? InEngineDir : ProjectDirectory) + "/Intermediate/TVOS"; string PListFile = IntermediateDirectory + "/" + GameName + "-Info.plist"; // @todo tvos: This is really nasty - both IOS and TVOS are setting static vars VersionUtilities.BuildDirectory = BuildDirectory; VersionUtilities.GameName = GameName; // read the old file string OldPListData = File.Exists(PListFile) ? File.ReadAllText(PListFile) : ""; // determine if there is a launch.xib string LaunchXib = InEngineDir + "/Build/IOS/Resources/Interface/LaunchScreen.xib"; if (File.Exists(BuildDirectory + "/Resources/Interface/LaunchScreen.xib")) { LaunchXib = BuildDirectory + "/Resources/Interface/LaunchScreen.xib"; } // get the settings from the ini file // plist replacements // @todo tvos: Are we going to make TVOS specific .ini files? ConfigCacheIni Ini = ConfigCacheIni.CreateConfigCacheIni(UnrealTargetPlatform.IOS, "Engine", bIsUE4Game? null : new DirectoryReference(ProjectDirectory)); // bundle display name string BundleDisplayName; Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "BundleDisplayName", out BundleDisplayName); // bundle identifier string BundleIdentifier; Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "BundleIdentifier", out BundleIdentifier); // bundle name string BundleName; Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "BundleName", out BundleName); // short version string string BundleShortVersion; Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "VersionInfo", out BundleShortVersion); // required capabilities string RequiredCaps = "\t\t<string>arm64</string>\n"; // minimum iOS version string MinVersion; if (Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "MinimumTVOSVersion", out MinVersion)) { switch (MinVersion) { case "TVOS_9": MinVersion = "9.0"; break; } } else { MinVersion = "9.0"; } // extra plist data string ExtraData = ""; Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "AdditionalPlistData", out ExtraData); // generate the plist file StringBuilder Text = new StringBuilder(); Text.AppendLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); Text.AppendLine("<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">"); Text.AppendLine("<plist version=\"1.0\">"); Text.AppendLine("<dict>"); Text.AppendLine("\t<key>CFBundleDevelopmentRegion</key>"); Text.AppendLine("\t<string>en</string>"); Text.AppendLine("\t<key>CFBundleDisplayName</key>"); Text.AppendLine(string.Format("\t<string>{0}</string>", BundleDisplayName.Replace("[PROJECT_NAME]", ProjectName).Replace("_", ""))); Text.AppendLine("\t<key>CFBundleExecutable</key>"); Text.AppendLine(string.Format("\t<string>{0}</string>", bIsUE4Game ? "UE4Game" : GameName.Replace("_", ""))); Text.AppendLine("\t<key>CFBundleIdentifier</key>"); Text.AppendLine(string.Format("\t<string>{0}</string>", BundleIdentifier.Replace("[PROJECT_NAME]", ProjectName).Replace("_", ""))); Text.AppendLine("\t<key>CFBundleInfoDictionaryVersion</key>"); Text.AppendLine("\t<string>6.0</string>"); Text.AppendLine("\t<key>CFBundleName</key>"); Text.AppendLine(string.Format("\t<string>{0}</string>", BundleName.Replace("[PROJECT_NAME]", ProjectName).Replace("_", ""))); Text.AppendLine("\t<key>CFBundlePackageType</key>"); Text.AppendLine("\t<string>APPL</string>"); Text.AppendLine("\t<key>CFBundleSignature</key>"); Text.AppendLine("\t<string>????</string>"); Text.AppendLine("\t<key>CFBundleVersion</key>"); Text.AppendLine(string.Format("\t<string>{0}</string>", VersionUtilities.UpdateBundleVersion(OldPListData))); Text.AppendLine("\t<key>CFBundleShortVersionString</key>"); Text.AppendLine(string.Format("\t<string>{0}</string>", BundleShortVersion)); Text.AppendLine("\t<key>LSRequiresIPhoneOS</key>"); Text.AppendLine("\t<true/>"); Text.AppendLine("\t<key>UIRequiredDeviceCapabilities</key>"); Text.AppendLine("\t<array>"); foreach (string Line in RequiredCaps.Split("\r\n".ToCharArray())) { if (!string.IsNullOrWhiteSpace(Line)) { Text.AppendLine(Line); } } Text.AppendLine("\t</array>"); /* Text.AppendLine("\t<key>CFBundleIcons</key>"); * Text.AppendLine("\t<dict>"); * Text.AppendLine("\t\t<key>CFBundlePrimaryIcon</key>"); * Text.AppendLine("\t\t<dict>"); * Text.AppendLine("\t\t\t<key>CFBundleIconFiles</key>"); * Text.AppendLine("\t\t\t<array>"); * Text.AppendLine("\t\t\t\t<string>Icon29.png</string>"); * Text.AppendLine("\t\t\t\t<string>[email protected]</string>"); * Text.AppendLine("\t\t\t\t<string>Icon40.png</string>"); * Text.AppendLine("\t\t\t\t<string>[email protected]</string>"); * Text.AppendLine("\t\t\t\t<string>Icon57.png</string>"); * Text.AppendLine("\t\t\t\t<string>[email protected]</string>"); * Text.AppendLine("\t\t\t\t<string>[email protected]</string>"); * Text.AppendLine("\t\t\t</array>"); * Text.AppendLine("\t\t\t<key>UIPrerenderedIcon</key>"); * Text.AppendLine("\t\t\t<true/>"); * Text.AppendLine("\t\t</dict>"); * Text.AppendLine("\t</dict>"); * Text.AppendLine("\t<key>CFBundleIcons~ipad</key>"); * Text.AppendLine("\t<dict>"); * Text.AppendLine("\t\t<key>CFBundlePrimaryIcon</key>"); * Text.AppendLine("\t\t<dict>"); * Text.AppendLine("\t\t\t<key>CFBundleIconFiles</key>"); * Text.AppendLine("\t\t\t<array>"); * Text.AppendLine("\t\t\t\t<string>Icon29.png</string>"); * Text.AppendLine("\t\t\t\t<string>[email protected]</string>"); * Text.AppendLine("\t\t\t\t<string>Icon40.png</string>"); * Text.AppendLine("\t\t\t\t<string>[email protected]</string>"); * Text.AppendLine("\t\t\t\t<string>Icon50.png</string>"); * Text.AppendLine("\t\t\t\t<string>[email protected]</string>"); * Text.AppendLine("\t\t\t\t<string>Icon72.png</string>"); * Text.AppendLine("\t\t\t\t<string>[email protected]</string>"); * Text.AppendLine("\t\t\t\t<string>Icon76.png</string>"); * Text.AppendLine("\t\t\t\t<string>[email protected]</string>"); * Text.AppendLine("\t\t\t</array>"); * Text.AppendLine("\t\t\t<key>UIPrerenderedIcon</key>"); * Text.AppendLine("\t\t\t<true/>"); * Text.AppendLine("\t\t</dict>"); * Text.AppendLine("\t</dict>"); * if (File.Exists(LaunchXib)) * { * // TODO: compile the xib via remote tool * Text.AppendLine("\t<key>UILaunchStoryboardName</key>"); * Text.AppendLine("\t<string>LaunchScreen</string>"); * bSkipDefaultPNGs = true; * } * else * { * // this is a temp way to inject the iphone 6 images without needing to upgrade everyone's plist * // eventually we want to generate this based on what the user has set in the project settings * string[] IPhoneConfigs = * { * "Default-IPhone6", "Landscape", "{375, 667}", * "Default-IPhone6", "Portrait", "{375, 667}", * "Default-IPhone6Plus-Landscape", "Landscape", "{414, 736}", * "Default-IPhone6Plus-Portrait", "Portrait", "{414, 736}", * "Default", "Landscape", "{320, 480}", * "Default", "Portrait", "{320, 480}", * "Default-568h", "Landscape", "{320, 568}", * "Default-568h", "Portrait", "{320, 568}", * }; * * Text.AppendLine("\t<key>UILaunchImages~iphone</key>"); * Text.AppendLine("\t<array>"); * for (int ConfigIndex = 0; ConfigIndex < IPhoneConfigs.Length; ConfigIndex += 3) * { * Text.AppendLine("\t\t<dict>"); * Text.AppendLine("\t\t\t<key>UILaunchImageMinimumOSVersion</key>"); * Text.AppendLine("\t\t\t<string>8.0</string>"); * Text.AppendLine("\t\t\t<key>UILaunchImageName</key>"); * Text.AppendLine(string.Format("\t\t\t<string>{0}</string>", IPhoneConfigs[ConfigIndex + 0])); * Text.AppendLine("\t\t\t<key>UILaunchImageOrientation</key>"); * Text.AppendLine(string.Format("\t\t\t<string>{0}</string>", IPhoneConfigs[ConfigIndex + 1])); * Text.AppendLine("\t\t\t<key>UILaunchImageSize</key>"); * Text.AppendLine(string.Format("\t\t\t<string>{0}</string>", IPhoneConfigs[ConfigIndex + 2])); * Text.AppendLine("\t\t</dict>"); * } * * // close it out * Text.AppendLine("\t</array>"); * } * Text.AppendLine("\t<key>UILaunchImages~ipad</key>"); * Text.AppendLine("\t<array>"); * Text.AppendLine("\t\t<dict>"); * Text.AppendLine("\t\t\t<key>UILaunchImageMinimumOSVersion</key>"); * Text.AppendLine("\t\t\t<string>7.0</string>"); * Text.AppendLine("\t\t\t<key>UILaunchImageName</key>"); * Text.AppendLine("\t\t\t<string>Default-Landscape</string>"); * Text.AppendLine("\t\t\t<key>UILaunchImageOrientation</key>"); * Text.AppendLine("\t\t\t<string>Landscape</string>"); * Text.AppendLine("\t\t\t<key>UILaunchImageSize</key>"); * Text.AppendLine("\t\t\t<string>{768, 1024}</string>"); * Text.AppendLine("\t\t</dict>"); * Text.AppendLine("\t\t<dict>"); * Text.AppendLine("\t\t\t<key>UILaunchImageMinimumOSVersion</key>"); * Text.AppendLine("\t\t\t<string>7.0</string>"); * Text.AppendLine("\t\t\t<key>UILaunchImageName</key>"); * Text.AppendLine("\t\t\t<string>Default-Portrait</string>"); * Text.AppendLine("\t\t\t<key>UILaunchImageOrientation</key>"); * Text.AppendLine("\t\t\t<string>Portrait</string>"); * Text.AppendLine("\t\t\t<key>UILaunchImageSize</key>"); * Text.AppendLine("\t\t\t<string>{768, 1024}</string>"); * Text.AppendLine("\t\t</dict>"); * Text.AppendLine("\t</array>”); * Text.AppendLine("\t<key>CFBundleSupportedPlatforms</key>"); * Text.AppendLine("\t<array>"); * Text.AppendLine("\t\t<string>iPhoneOS</string>"); * Text.AppendLine("\t</array>"); * Text.AppendLine("\t<key>MinimumOSVersion</key>"); * Text.AppendLine(string.Format("\t<string>{0}</string>", MinVersion)); * if (!string.IsNullOrEmpty(ExtraData)) * { * ExtraData = ExtraData.Replace("\\n", "\n"); * foreach (string Line in ExtraData.Split("\r\n".ToCharArray())) * { * if (!string.IsNullOrWhiteSpace(Line)) * { * Text.AppendLine("\t" + Line); * } * } * }*/ Text.AppendLine("</dict>"); Text.AppendLine("</plist>"); // write the file out if (!Directory.Exists(IntermediateDirectory)) { Directory.CreateDirectory(IntermediateDirectory); } File.WriteAllText(PListFile, Text.ToString()); if (BuildHostPlatform.Current.Platform == UnrealTargetPlatform.Mac) { if (!Directory.Exists(AppDirectory)) { Directory.CreateDirectory(AppDirectory); } File.WriteAllText(AppDirectory + "/Info.plist", Text.ToString()); } return(bSkipDefaultPNGs); }