public bool Validate(GameDefinitionBuildInfo gameDefinitionBuildInfo) { var gameDefinition = gameDefinitionBuildInfo.gameDefinition; if (gameDefinition is IGameSceneDefinition gameSceneDefinition) { var fullScenePath = Path.ChangeExtension(Path.Combine(gameSceneDefinition.SceneName), "unity"); var scene = (SceneAsset)AssetDatabase.LoadAssetAtPath(fullScenePath, typeof(SceneAsset)); if (scene == null) { Debug.LogError($"Invalid GameDefinition at path '{gameDefinitionBuildInfo.directory}', the scene at path {fullScenePath} does not exist."); return(false); } if (gameDefinition is IGameBundleSceneDefinition gameBundleSceneDefinition) { var importAsset = AssetImporter.GetAtPath(fullScenePath); if (importAsset.assetBundleName != gameBundleSceneDefinition.BundleName) { importAsset.SetAssetBundleNameAndVariant(gameBundleSceneDefinition.BundleName, null); } } } return(true); }
static BuildTarget[] GetBuildTargetsForGameDefinition(GameDefinitionBuildInfo gameDefinition, BuildTarget[] buildTargets) { var platformSettingsPath = Path.Combine(gameDefinition.directory, GameDefinitionBuildSettings.customPlatformSettings); var customPlatformSettings = File.Exists(platformSettingsPath) ? JsonUtility.FromJson <CustomPlatformSettings>(File.ReadAllText(platformSettingsPath)) : null; return(buildTargets.Concat(customPlatformSettings?.supportedPlatforms ?? new BuildTarget[0]).Where(buildTarget => customPlatformSettings?.unsupportedPlatforms?.Contains(buildTarget) != true).ToArray()); }
void ZipGameDefinition(GameDefinitionBuildInfo gameDefinition, string buildPath) { var relativePath = PathUtility.GetRelativePath(gameDefinition.directory, this.settings.gameDefinitionDirectoryPath); var bundlePath = Path.ChangeExtension(Path.Combine(buildPath, relativePath), "zip"); PathUtility.DeleteFileIfExists(bundlePath); var customPlatformSettingsPath = Path.Combine(gameDefinition.directory, GameDefinitionBuildSettings.customPlatformSettings); PathUtility.ZipDirectoryWithExcludeFile(gameDefinition.directory, bundlePath, customPlatformSettingsPath, this.buildSettings.TempGameDefinitionBuildPath); }
public bool Validate(GameDefinitionBuildInfo gameDefinitionBuildInfo) { var gameDefinition = gameDefinitionBuildInfo.gameDefinition; if (gameDefinition is IGameBundleDefinition gameBundleDefinition && string.IsNullOrEmpty(gameBundleDefinition.BundleName)) { Debug.LogError($"Invalid GameDefinition at path '{gameDefinitionBuildInfo.directory}', no bundle name specified."); return(false); } return(true); }
public bool Validate(GameDefinitionBuildInfo gameDefinitionBuildInfo) { var gameDefinition = gameDefinitionBuildInfo.gameDefinition; if (gameDefinition is IGameBundleDefinition gameBundleDefinition) { if (!AssetDatabase.GetAllAssetBundleNames().Contains(gameBundleDefinition.BundleName)) { Debug.LogError($"Invalid GameDefinition at path '{gameDefinitionBuildInfo.directory}', the bundle named {gameBundleDefinition.BundleName} does not exist."); return(false); } } return(true); }