private void SearchForSourceFiles(List <SourceFileInfo> sourceFiles, DirectoryInfo directory) { if (directory.GetFiles("*.asmdef", SearchOption.TopDirectoryOnly).Length > 1) { // Source file is managed by another asmdef return; } foreach (FileInfo fileInfo in directory.GetFiles("*.cs", SearchOption.TopDirectoryOnly)) { sourceFiles.Add(SourceFileInfo.Parse(fileInfo, null)); } foreach (DirectoryInfo subDirectory in directory.GetDirectories("*", SearchOption.TopDirectoryOnly)) { SearchForSourceFiles(sourceFiles, subDirectory); } }
/// <summary> /// Gets the source files for this assembly definition. /// </summary> /// <returns>The array of <see cref="SourceFileInfo"/>.</returns> public SourceFileInfo[] GetSources() { if (sourceFiles == null) { List <SourceFileInfo> sourceFiles = new List <SourceFileInfo>(); if (assembly != null) { foreach (string sourceFile in assembly.sourceFiles) { MonoScript asset = AssetDatabase.LoadAssetAtPath <MonoScript>(sourceFile); sourceFiles.Add(SourceFileInfo.Parse(new FileInfo(Utilities.GetFullPathFromKnownRelative(sourceFile)), asset.GetClass())); } } else { SearchForSourceFiles(sourceFiles, file.Directory); } this.sourceFiles = sourceFiles.ToArray(); } return(sourceFiles); }