예제 #1
0
        public void Show(LavaUser user)
        {
            this.Title = user.UserName;
            this.Show();

            currentUser = user;

            LoadingScreen.LoadingScreen loadingScreen = new LoadingScreen.LoadingScreen();
            loadingScreen.Show();

            // Open document
            var LoadingThread = new BackgroundWorker();
            //Запуск процесса десереализации в фоновом потоке
            LoadingThread.DoWork += (s, args) =>
            {
                try
                {
                    IFileTransfer fileHost = new FileTransferClient();

                    string[] fileList = fileHost.GetFileList(user.UserName);
                    if (fileList == null)
                        throw new Exception("Error. File list in null");

                    foreach (var file in fileList)
                    {
                        //Получаем файл. Расшифровываем. Парсим.
                        entrys.Deserialize(file, CryptoLibrary.decrypt28147cfb(user.MasterKey, GetFile(fileHost, file)));
                    }
                }
                catch (Exception ex)
                {
                    args.Result = ex.Message;
                }
            };
            LoadingThread.RunWorkerCompleted += (s, e) =>
            {
                if (e.Result != null)
                    MessageBox.Show(loadingScreen, e.Result.ToString(), "Error!", MessageBoxButton.OK, MessageBoxImage.Error);
                loadingScreen.Close();
            };
            LoadingThread.RunWorkerAsync();
        }
예제 #2
0
        // Visible for testing
        internal static void PopulateScene(Texture2D backgroundTexture, string assetBundleUrl)
        {
            var loadingScreenGameObject = new GameObject("Loading Screen");

            var camera = GenerateCamera();

            camera.transform.SetParent(loadingScreenGameObject.transform, false);

            var canvasObject = GenerateCanvas(camera);

            canvasObject.transform.SetParent(loadingScreenGameObject.transform, false);

            var backgroundImage = GenerateBackground(backgroundTexture);

            backgroundImage.transform.SetParent(canvasObject.transform, false);

            var loadingContainer = LoadingBarGenerator.GenerateLoadingContainer();

            loadingContainer.SetParent(canvasObject.transform, false);

            var retryButton = GenerateRetryButton();

            retryButton.transform.SetParent(loadingContainer.transform, false);

            var loadingScreen = loadingScreenGameObject.AddComponent <LoadingScreen.LoadingScreen>();

            loadingScreen.AssetBundleUrl = assetBundleUrl;
            loadingScreen.LoadingBar     = LoadingBarGenerator.GenerateLoadingBar();
            loadingScreen.RetryButton    = retryButton;
            loadingScreen.LoadingBar.transform.SetParent(loadingContainer.transform, false);
            loadingScreen.LoadingBar.transform.SetAsFirstSibling(); // Places loading bar behind the retry button.

            // Hook up the retry button here so that the AttemptAssetBundleDownload function shows up in its inspector.
            UnityEventTools.AddPersistentListener(retryButton.onClick, loadingScreen.ButtonEventRetryDownload);

            CurrentLoadingScreen = loadingScreen;
        }