public static void Run() { var doValidateProjectAssets = false; var doValidateCrossScenes = false; var sceneValidationMode = SceneValidationMode.None; var outputMode = OutputFormat.None; var fileName = ""; var argsDict = CommandLineUtility.GetNamedCommandlineArguments(':'); // Parse whether or not to validate assets in the project if (argsDict.ContainsKey(VALIDATE_PROJECT_ASSETS)) { if (!bool.TryParse(argsDict[VALIDATE_PROJECT_ASSETS], out doValidateProjectAssets)) { LogArgumentError(VALIDATE_PROJECT_ASSETS, argsDict[VALIDATE_PROJECT_ASSETS]); } } // Parse whether or not to validate across scenes in the project if (argsDict.ContainsKey(VALIDATE_CROSS_SCENES)) { if (!bool.TryParse(argsDict[VALIDATE_CROSS_SCENES], out doValidateCrossScenes)) { LogArgumentError(VALIDATE_CROSS_SCENES, argsDict[VALIDATE_CROSS_SCENES]); } } // Parse Scene Validation Mode if (argsDict.ContainsKey(SCENE_VALIDATE_MODE_KEY)) { try { sceneValidationMode = (SceneValidationMode)Enum.Parse(typeof(SceneValidationMode), argsDict[SCENE_VALIDATE_MODE_KEY], true); } catch (Exception) { LogArgumentError(argsDict[SCENE_VALIDATE_MODE_KEY], SCENE_VALIDATE_MODE_KEY); return; } } // Parse Output Format if (argsDict.ContainsKey(OUTPUT_FORMAT_KEY)) { try { outputMode = (OutputFormat)Enum.Parse(typeof(OutputFormat), argsDict[OUTPUT_FORMAT_KEY], true); } catch (Exception) { LogArgumentError(argsDict[SCENE_VALIDATE_MODE_KEY], SCENE_VALIDATE_MODE_KEY); return; } } else { Debug.LogWarning("No OutputFormat has been specified and so none will be written/displayed."); } // Parse OutputFilename if (argsDict.ContainsKey(FILENAME_MODE_KEY)) { fileName = argsDict[FILENAME_MODE_KEY]; // TODO Fix This //if (!FileUtility.IsValidFilename(fileName)) //{ // Debug.LogFormat("{0} is not a valid filename, please check for any illegal characters for this operating system", fileName); // return; //} } Debug.LogFormat("SceneValidationMode: [{0}], OutputMode: [{1}], DoValidateProjectAssets: [{2}], DoValidateCrossScenes: [{3}], Filename: [{4}]", sceneValidationMode, outputMode, doValidateProjectAssets, doValidateCrossScenes, fileName); RunValidation(sceneValidationMode, outputMode, doValidateProjectAssets, doValidateCrossScenes, fileName); }