注:提供给对链式调用不熟悉的人的解决方案
网上随处可见的基于Odin的小工具ScriptableObjectCreator如果发生【以下方法或属性之间的调用具有二义性:“Sirenix.Utilities.LinqExtensions.ToHashSet<T>(System.Collections.Generic.IEnumerable<T>)”和“System.Linq.Enumerable.ToHashSet<TSource>(System.Collections.Generic.IEnumerable<TSource>”】
static HashSet<Type> scriptableObjectTypes = AssemblyUtilities.GetTypes(AssemblyTypeFlags.CustomTypes)
.Where(t => t.IsClass &&
typeof(ScriptableObject).IsAssignableFrom(t) &&
!typeof(EditorWindow).IsAssignableFrom(t) &&
!typeof(Editor).IsAssignableFrom(t)).ToHashSet();
把ToHashSet提出来,限定调用
static HashSet<Type> scriptableObjectTypes = System.Linq.Enumerable.ToHashSet(AssemblyUtilities.GetTypes(AssemblyTypeFlags.CustomTypes)
.Where(t => t.IsClass &&
typeof(ScriptableObject).IsAssignableFrom(t) &&
!typeof(EditorWindow).IsAssignableFrom(t) &&
!typeof(Editor).IsAssignableFrom(t)));