#if UNITY_2017_3_OR_NEWER /* * Copyright (c) 2018 Beebyte Limited. All rights reserved. */ using System.Collections.Generic; using System.IO; using UnityEditor.Compilation; namespace Beebyte.Obfuscator.Assembly { public class AssemblyReferenceLocator { public static IEnumerable GetAssemblyReferenceDirectories() { HashSet directories = new HashSet(); foreach (UnityEditor.Compilation.Assembly assembly in CompilationPipeline.GetAssemblies()) { directories.UnionWith(GetAssemblyReferenceDirectories(assembly)); } return directories; } private static IEnumerable GetAssemblyReferenceDirectories(UnityEditor.Compilation.Assembly assembly) { HashSet directories = new HashSet(); if (assembly == null) return directories; if (assembly.compiledAssemblyReferences == null || assembly.compiledAssemblyReferences.Length <= 0) { return directories; } foreach (string assemblyRef in assembly.compiledAssemblyReferences) { directories.Add(Path.GetDirectoryName(assemblyRef)); } return directories; } } } #endif