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);
}
}
}
}