UnityEditor.PostprocessBuildPlayer.InstallPluginsByExtension C# (CSharp) Method

InstallPluginsByExtension() static private method

static private InstallPluginsByExtension ( string pluginSourceFolder, string extension, string debugExtension, string destPluginFolder, bool copyDirectories ) : bool
pluginSourceFolder string
extension string
debugExtension string
destPluginFolder string
copyDirectories bool
return bool
        internal static bool InstallPluginsByExtension(string pluginSourceFolder, string extension, string debugExtension, string destPluginFolder, bool copyDirectories)
        {
            bool flag = false;
            if (Directory.Exists(pluginSourceFolder))
            {
                string[] fileSystemEntries = Directory.GetFileSystemEntries(pluginSourceFolder);
                foreach (string str in fileSystemEntries)
                {
                    string fileName = Path.GetFileName(str);
                    string str3 = Path.GetExtension(str);
                    bool flag3 = str3.Equals(extension, StringComparison.OrdinalIgnoreCase) || fileName.Equals(extension, StringComparison.OrdinalIgnoreCase);
                    bool flag4 = ((debugExtension != null) && (debugExtension.Length != 0)) && (str3.Equals(debugExtension, StringComparison.OrdinalIgnoreCase) || fileName.Equals(debugExtension, StringComparison.OrdinalIgnoreCase));
                    if (flag3 || flag4)
                    {
                        if (!Directory.Exists(destPluginFolder))
                        {
                            Directory.CreateDirectory(destPluginFolder);
                        }
                        string target = Path.Combine(destPluginFolder, fileName);
                        if (copyDirectories)
                        {
                            FileUtil.CopyDirectoryRecursive(str, target);
                        }
                        else if (!Directory.Exists(str))
                        {
                            FileUtil.UnityFileCopy(str, target);
                        }
                        flag = true;
                    }
                }
            }
            return flag;
        }

Usage Example

示例#1
0
        internal static void InstallPlugins(string destPluginFolder, BuildTarget target)
        {
            string str1 = "Assets/Plugins";
            IBuildPostprocessor buildPostProcessor = ModuleManager.GetBuildPostProcessor(target);

            if (buildPostProcessor != null)
            {
                bool     shouldRetainStructure;
                string[] pluginFilesToCopy = buildPostProcessor.FindPluginFilesToCopy(str1, out shouldRetainStructure);
                if (pluginFilesToCopy != null)
                {
                    if (pluginFilesToCopy.Length > 0 && !Directory.Exists(destPluginFolder))
                    {
                        Directory.CreateDirectory(destPluginFolder);
                    }
                    foreach (string str2 in pluginFilesToCopy)
                    {
                        if (Directory.Exists(str2))
                        {
                            string target1 = Path.Combine(destPluginFolder, str2);
                            FileUtil.CopyDirectoryRecursive(str2, target1);
                        }
                        else
                        {
                            string fileName = Path.GetFileName(str2);
                            if (shouldRetainStructure)
                            {
                                string directoryName = Path.GetDirectoryName(str2.Substring(str1.Length + 1));
                                string str3          = Path.Combine(destPluginFolder, directoryName);
                                string to            = Path.Combine(str3, fileName);
                                if (!Directory.Exists(str3))
                                {
                                    Directory.CreateDirectory(str3);
                                }
                                FileUtil.UnityFileCopy(str2, to, true);
                            }
                            else
                            {
                                string to = Path.Combine(destPluginFolder, fileName);
                                FileUtil.UnityFileCopy(str2, to, true);
                            }
                        }
                    }
                    return;
                }
            }
            bool          flag1           = false;
            List <string> subdirs         = new List <string>();
            bool          flag2           = target == BuildTarget.StandaloneOSXIntel || target == BuildTarget.StandaloneOSXIntel64 || target == BuildTarget.StandaloneOSXUniversal;
            bool          copyDirectories = flag2;
            string        extension       = string.Empty;
            string        debugExtension  = string.Empty;

            if (flag2)
            {
                extension = ".bundle";
                subdirs.Add(string.Empty);
            }
            else if (target == BuildTarget.StandaloneWindows)
            {
                extension      = ".dll";
                debugExtension = ".pdb";
                PostprocessBuildPlayer.AddPluginSubdirIfExists(subdirs, str1, PostprocessBuildPlayer.subDir32Bit);
            }
            else if (target == BuildTarget.StandaloneWindows64)
            {
                extension      = ".dll";
                debugExtension = ".pdb";
                PostprocessBuildPlayer.AddPluginSubdirIfExists(subdirs, str1, PostprocessBuildPlayer.subDir64Bit);
            }
            else if (target == BuildTarget.StandaloneGLESEmu)
            {
                extension      = ".dll";
                debugExtension = ".pdb";
                subdirs.Add(string.Empty);
            }
            else if (target == BuildTarget.StandaloneLinux)
            {
                extension = ".so";
                PostprocessBuildPlayer.AddPluginSubdirIfExists(subdirs, str1, PostprocessBuildPlayer.subDir32Bit);
            }
            else if (target == BuildTarget.StandaloneLinux64)
            {
                extension = ".so";
                PostprocessBuildPlayer.AddPluginSubdirIfExists(subdirs, str1, PostprocessBuildPlayer.subDir64Bit);
            }
            else if (target == BuildTarget.StandaloneLinuxUniversal)
            {
                extension = ".so";
                subdirs.Add(PostprocessBuildPlayer.subDir32Bit);
                subdirs.Add(PostprocessBuildPlayer.subDir64Bit);
                flag1 = true;
            }
            else if (target == BuildTarget.PS3)
            {
                extension = ".sprx";
                subdirs.Add(string.Empty);
            }
            else if (target == BuildTarget.Android)
            {
                extension = ".so";
                subdirs.Add("Android");
            }
            else if (target == BuildTarget.BlackBerry)
            {
                extension = ".so";
                subdirs.Add("BlackBerry");
            }
            using (List <string> .Enumerator enumerator = subdirs.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    string current = enumerator.Current;
                    if (flag1)
                    {
                        PostprocessBuildPlayer.InstallPluginsByExtension(Path.Combine(str1, current), extension, debugExtension, Path.Combine(destPluginFolder, current), copyDirectories);
                    }
                    else
                    {
                        PostprocessBuildPlayer.InstallPluginsByExtension(Path.Combine(str1, current), extension, debugExtension, destPluginFolder, copyDirectories);
                    }
                }
            }
        }
All Usage Examples Of UnityEditor.PostprocessBuildPlayer::InstallPluginsByExtension