BuildReportTool.Util.AttemptGetUnityFolderMonoDLLs C# (CSharp) Метод

AttemptGetUnityFolderMonoDLLs() публичный статический Метод

public static AttemptGetUnityFolderMonoDLLs ( bool wasWebBuild, bool wasAndroidApkBuild, string editorAppContentsPath, ApiCompatibilityLevel monoLevel, StrippingLevel codeStrippingLevel, string &path, string &higherPriorityPath ) : bool
wasWebBuild bool
wasAndroidApkBuild bool
editorAppContentsPath string
monoLevel ApiCompatibilityLevel
codeStrippingLevel StrippingLevel
path string
higherPriorityPath string
Результат bool
	public static bool AttemptGetUnityFolderMonoDLLs(bool wasWebBuild, bool wasAndroidApkBuild, string editorAppContentsPath, ApiCompatibilityLevel monoLevel, StrippingLevel codeStrippingLevel, out string path, out string higherPriorityPath)
	{
		bool success = false;

		// more hackery
		// attempt to get DLL size info
		// from Unity install folder
		//
		// this only happens in:
		//  1. Web build
		//  2. Android build
		//  3. Custom builders
		//
		string[] pathTries = new string[]
		{
			editorAppContentsPath + "/Frameworks/Mono/lib/mono",
			editorAppContentsPath + "/Mono/lib/mono",
			"/Applications/Unity/Unity.app/Contents/Frameworks/Mono/lib/mono",
			"C:/Program Files (x86)/Unity/Data/Mono/lib/mono",
			"C:/Program Files (x86)/Unity/Editor/Data/Mono/lib/mono",
#if UNITY_3_5
			"/Applications/Unity3/Unity.app/Contents/Frameworks/Mono/lib/mono",
			"/Applications/Unity 3/Unity.app/Contents/Frameworks/Mono/lib/mono",
			"/Applications/Unity3.5/Unity.app/Contents/Frameworks/Mono/lib/mono",
			"/Applications/Unity 3.5/Unity.app/Contents/Frameworks/Mono/lib/mono",
			"C:/Program Files (x86)/Unity3/Data/Mono/lib/mono",
			"C:/Program Files (x86)/Unity 3/Data/Mono/lib/mono",
			"C:/Program Files (x86)/Unity3.5/Data/Mono/lib/mono",
			"C:/Program Files (x86)/Unity 3.5/Data/Mono/lib/mono",
			"C:/Program Files (x86)/Unity3/Editor/Data/Mono/lib/mono",
			"C:/Program Files (x86)/Unity 3/Editor/Data/Mono/lib/mono",
#endif
#if UNITY_4_AND_GREATER
			"/Applications/Unity4/Unity.app/Contents/Frameworks/Mono/lib/mono",
			"/Applications/Unity 4/Unity.app/Contents/Frameworks/Mono/lib/mono",
			"C:/Program Files (x86)/Unity4/Data/Mono/lib/mono",
			"C:/Program Files (x86)/Unity 4/Data/Mono/lib/mono",
			"C:/Program Files (x86)/Unity4/Editor/Data/Mono/lib/mono",
			"C:/Program Files (x86)/Unity 4/Editor/Data/Mono/lib/mono",
#endif
		};

		string tryPath = "";

		for (int n = 0, len = pathTries.Length; n < len; ++n)
		{
			tryPath = pathTries[n];
			if (Directory.Exists(tryPath))
			{
				break;
			}
			tryPath = "";
		}

		if (!string.IsNullOrEmpty(tryPath))
		{
			success = true;

			// "unity_web" is obviously for the web build. Presumably, this one has DLLs removed that can compromise web security.
			// "2.0" is likely the full featured Mono libraries
			// "unity" is most likely the one used when selecting 2.0 subset in the player settings. this is the setting by default.
			// "micro" is probably the one used in StrippingLevel.UseMicroMSCorlib. only makes sense to be here when building on Android.
			//   since in iOS, we already have the DLL files. No need for this hackery in iOS. But since in Android we do not have a project folder,
			//   we resort to this.

			if (wasWebBuild)
			{
				path = tryPath + "/unity_web/";
			}
			else if (monoLevel == ApiCompatibilityLevel.NET_2_0_Subset)
			{
				path = tryPath + "/unity/";
			}
			else
			{
				path = tryPath + "/2.0/";
			}

			if (wasAndroidApkBuild && codeStrippingLevel == StrippingLevel.UseMicroMSCorlib)
			{
				higherPriorityPath = tryPath + "/micro/";
			}
			else
			{
				higherPriorityPath = "";
			}
		}
		else
		{
			path = "";
			higherPriorityPath = "";
		}

		return success;
	}