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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }