def loadProjectConfig(self, name): schemaPath = self._varMgr.expandPath( '[UnityProjectsDir]/{0}/{1}'.format(name, ProjectConfigFileName)) schemaPathUser = self._varMgr.expandPath( '[UnityProjectsDir]/{0}/{1}'.format(name, ProjectUserConfigFileName)) schemaPathGlobal = self._varMgr.expandPath( '[UnityProjectsDir]/{0}'.format(ProjectConfigFileName)) schemaPathUserGlobal = self._varMgr.expandPath( '[UnityProjectsDir]/{0}'.format(ProjectUserConfigFileName)) self._log.debug('Loading schema at path "{0}"'.format(schemaPath)) yamlConfig = Config( loadYamlFilesThatExist(schemaPath, schemaPathUser, schemaPathGlobal, schemaPathUserGlobal)) config = ProjectConfig() config.pluginsFolder = yamlConfig.tryGetList([], 'PluginsFolder') config.assetsFolder = yamlConfig.tryGetList([], 'AssetsFolder') config.solutionProjects = yamlConfig.tryGetList([], 'SolutionProjects') config.targetPlatforms = yamlConfig.tryGetList([Platforms.Windows], 'TargetPlatforms') config.solutionFolders = yamlConfig.tryGetOrderedDictionary( OrderedDict(), 'SolutionFolders') config.packageFolders = yamlConfig.getList('PackageFolders') config.projectSettingsPath = yamlConfig.getString( 'ProjectSettingsPath') config.unityPackagesPath = yamlConfig.getString('UnityPackagesPath') # Remove duplicates config.assetsFolder = list(set(config.assetsFolder)) config.pluginsFolder = list(set(config.pluginsFolder)) for packageName in config.pluginsFolder: assertThat( not packageName in config.assetsFolder, "Found package '{0}' in both scripts and plugins. Must be in only one or the other" .format(packageName)) return config