Example #1
0
    /// <summary>
    /// 获得动态程序集组
    /// </summary>
    /// <returns>程序集组</returns>
    public static List <Assembly> GetDynamicAssemblies()
    {
        List <Assembly> assemblies = new List <Assembly>();
        string          dllExt     = typeof(enFileExt).GetAttributeForConstField <FileExtAttribute>(enFileExt.Dll).ext;

        if (mDynamicDlls == null)
        {
            mDynamicDlls = EditorStrayFogUtility.collectAsset.CollectAsset <EditorAssemblySelectionAsset>(
                new string[1] {
                EditorStrayFogApplication.TryRelativeToAssets("")
            }, "",
                enEditorDependencyClassify.UnClude, (n) => { return(n.ext.Equals(dllExt)); }, false);
        }
        List <Assembly> tempAssemblies = null;

        if (mDynamicDlls != null && mDynamicDlls.Count > 0)
        {
            foreach (EditorAssemblySelectionAsset d in mDynamicDlls)
            {
                try
                {
                    assemblies.Add(Assembly.LoadFrom(d.path));
                }
                catch (Exception ep)
                {
                    Debug.LogWarning(ep.Message);
                }
            }
        }
        tempAssemblies = GetApplicationAssembly();
        if (tempAssemblies != null)
        {
            assemblies.AddRange(tempAssemblies);
        }
        tempAssemblies = GetEditorApplicationAssembly();
        if (tempAssemblies != null)
        {
            assemblies.AddRange(tempAssemblies);
        }
        assemblies.Add(GetUnityEngineAssembly());
        assemblies.Add(GetUnityEditorAssembly());
        return(assemblies);
    }
 /// <summary>
 /// 重置
 /// </summary>
 void OnReset()
 {
     directory = EditorStrayFogApplication.TryRelativeToAssets(directory);
     fileName  = Path.Combine(directory, name + extAttribute.ext).TransPathSeparatorCharToUnityChar();
 }