void LoadLib() { if (!bLoodLib) { bLoodLib = true; } else { return; } LoadSolutionLib(); var enData = FileAccessManager.LoadBytes(FileName); if (enData != null) { //var sw = new System.Diagnostics.Stopwatch(); //sw.Start(); var deData = DESCrypto.Decrypt(enData, Number); //sw.Stop(); deData = Utils.UnpackMemory(deData); //Debug.LogInfo("Decrypt time: " + sw.ElapsedMilliseconds); var ass = System.Reflection.Assembly.Load(deData); //动态库的名称 //gameObject.AddComponent(ass.GetType("TestUI")); if (ass.GetType("MogoInitialize") != null) { gameObject.AddComponent(ass.GetType("MogoInitialize")); } else { Debug.LogError("---------------Reflection MogoInitialize Failed------------------------"); } //gameObject.AddComponent(ass.GetType("TestUI")); if (Application.platform == RuntimePlatform.Android && SystemSwitch.UsePlatformSDK) { IsRunOnAndroid = true; if (ass.GetType("AndroidSdkManager") != null) { gameObject.AddComponent(ass.GetType("AndroidSdkManager")); } else { Debug.LogError("---------------Reflection AndroidSdkManager Failed------------------------"); } //IsRunOnAndroid = false; } else { gameObject.AddComponent(ass.GetType("PlatformSdkManager")); IsRunOnAndroid = false; } } else { Debug.LogError("Missing MogoLib."); } }
void LoadSolutionLib() { var index = 0; var resName = FileName + index; while (FileAccessManager.IsFileExist(resName)) { Debug.Log("load: " + resName); var enData = FileAccessManager.LoadBytes(resName); if (enData != null) { var deData = DESCrypto.Decrypt(enData, Number); deData = Utils.UnpackMemory(deData); System.Reflection.Assembly.Load(deData); } index++; resName = FileName + index; } }