Example #1
0
    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.");
        }
    }
Example #2
0
    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;
        }
    }