Exemple #1
0
        private async Task RenameGameProfileAsync()
        {
            var name = _navigationService.ShowRenameProfileDialog(Target.EntryPoint, _package.GameProfile.Name);

            if (name.IsNullOrEmpty())
            {
                return;
            }

            using (await _queue.GetBlockingScope())
                using (new ProcessingScope(_processable))
                {
                    var gameProfileId = _package.GameProfile.Id;
                    var gameProfile   = _package.GameProfile.Clone();
                    gameProfile.Name = name;

                    await _actionBuilder.Dispatch(new UpdateGameProfileCommand(gameProfile))
                    .CompleteFor <ActionSucceededNotification>(async(context, @event) => await PublishUpdateStatusEventAsync(StatusType.Ok, "GameProfileRenamed"))
                    .CompleteFor <ErrorOccuredNotification>(async(context, @event) => await PublishUnknownErrorEventAsync())
                    .OnTimeout(async() => await PublishTimeoutEventAsync())
                    .Execute();

                    _package = await _findGamePackageByIdQuery.FindByGameProfileIdAsync(gameProfileId);

                    RebindGameProfiles();
                    OnPropertyChanged(() => GameProfileId);
                    OnPropertyChanged(() => GameProfileName);
                }
        }
Exemple #2
0
        private async Task AddGameProfileAsync()
        {
            var gameId       = _package.Game.Id;
            var addedProfile = _navigationService.ShowAddProfileDialog(Target.EntryPoint, _gameProfiles);

            if (addedProfile == null)
            {
                return;
            }

            using (new ProcessingScope(_processable))
            {
                var id = Guid.Empty;
                await _actionBuilder.Dispatch(new AddGameProfileCommand(addedProfile.ProfileName, gameId, addedProfile.BasedOnGameProfileId))
                .CompleteFor <GameProfileAddedNotification>((context, @event) => id = @event.Id)
                .CompleteFor <ErrorOccuredNotification>(async(context, @event) => await PublishUnknownErrorEventAsync())
                .OnTimeout(async() => await PublishTimeoutEventAsync())
                .Execute();

                if (id != Guid.Empty)
                {
                    _package = await _findGamePackageByIdQuery.FindByGameIdAsync(gameId);

                    RebindGameProfiles();
                    Rebind();
                }
            }
        }
Exemple #3
0
        private async Task RemoveGameProfileAsync()
        {
            var id = _package.GameProfile.Id;

            if (!_navigationService.ShowConfirmationDialog(
                    Target.EntryPoint,
                    Localization.Localization.Current.Get("RemoveGameProfileDialogTitle"),
                    Localization.Localization.Current.Get("RemoveGameProfileQuestion")))
            {
                return;
            }

            using (await _queue.GetBlockingScope())
                using (new ProcessingScope(_processable))
                {
                    await _actionBuilder.Dispatch(new RemoveGameProfileCommand(id))
                    .CompleteFor <ActionSucceededNotification>(async(context, @event) => await PublishUpdateStatusEventAsync(StatusType.Ok, "ProfileRemoved"))
                    .CompleteFor <ErrorOccuredNotification>(async(context, @event) => await PublishUnknownErrorEventAsync())
                    .OnTimeout(async() => await PublishTimeoutEventAsync())
                    .Execute();

                    _package = await _findLastEditedGamePackageQuery.FindAsync();

                    RebindGameProfiles();
                    Rebind();
                }
        }
Exemple #4
0
        private async Task InitializeInjectorModeAsync()
        {
            _mode = ModeType.Injector;
            _scheduler?.Dispose();

            if (_package == null)
            {
                _package = await _findLastEditedGamePackageQuery.FindAsync();

                _gamePackages = await _findGamesQuery.FindAllAsync();
            }

            _injectionViewModel = new InjectionViewModel(this, _package);
            _scheduler          = new BlockingScheduler(() => _runner.Run(async() => await EstimateInjectorStateAsync(true)), TaskInterval);

            PluginViewModel = new PluginViewModel(
                _pluginFactory.Create(_package),
                _publisher,
                _navigationService,
                _componentViewModelFactory);

            await EstimateInjectorStateAsync();

            Validate();
            EditPluginMainSettings();
            StartScheduler();
        }
        /// <summary>
        /// Обработчик главной страницы
        /// </summary>
        public async Task <IActionResult> Index()
        {
            var model = new HomeIndexModel()
            {
                AvailableGames = GamePackage.ListAvailable()
                                 .Select(pkg => GameInfo.FromGamePackage(pkg))
                                 .ToList(),
                ActiveSessions = sessionsManager.GetSessions()
                                 .Select(s => SessionInfo.FromGameSession(s))
                                 .OrderBy(si => si.StartedAt)
                                 .ToList()
            };

            if (model.IsSigned)
            {
                try
                {
                    var playerSession = userCtx.GetGameSession();
                    model.PlayerSession = SessionInfo.FromGameSession(playerSession);
                    model.IsSigned      = true;
                }
                catch (NullReferenceException)
                {
                    await userCtx.PerformLogout();
                }
            }

            return(View(model));
        }
Exemple #6
0
        /// <summary>
        /// 数据保存
        /// </summary>
        protected void btnSave_Click(object sender, EventArgs e)
        {
            GamePackage config = new GamePackage();

            if (IntParam > 0)
            {
                if (!AuthUserOperationPermission(Permission.Edit))
                {
                    return;
                }
                config = FacadeManage.aidePlatformFacade.GetGamePackage(IntParam);
            }


            config.Name         = CtrlHelper.GetText(txtName);
            config.TypeID       = Convert.ToByte(ddlTypeID.SelectedValue);
            config.SortID       = CtrlHelper.GetInt(txtSortID, 0);
            config.Describe     = CtrlHelper.GetText(txtDescribe);
            config.Nullity      = Convert.ToByte(rblNullity.SelectedValue);
            config.PlatformKind = Convert.ToInt32(Dropplatform.SelectedValue);

            int result = IntParam > 0 ? FacadeManage.aidePlatformFacade.UpdateGamePackage(config) : FacadeManage.aidePlatformFacade.InsertGamePackage(config);

            if (result > 0)
            {
                ShowInfo("操作成功", "GamePackageConfigList.aspx", 1200);
            }
            else
            {
                ShowError("操作失败");
            }
        }
        public async Task <FileResult> GetAsset(string name)
        {
            const string DefaultMime = "application/octet-stream";

            var ext2MimeMap = new Dictionary <string, string>
            {
                [".json"] = "text/json",
                [".png"]  = "image/png",
                [".jpg"]  = "image/jpeg"
            };

            var pkg = new GamePackage(GameName);

            using (var file = pkg.OpenAssetFile(name))
            {
                var contents = new byte[file.Length];
                await file.ReadAsync(contents, 0, contents.Length);

                // Определить тип содержимого
                string ext = Path.GetExtension(name);
                if (!ext2MimeMap.TryGetValue(ext, out string contentType))
                {
                    contentType = DefaultMime;
                }

                return(File(contents, contentType));
            }
        }
Exemple #8
0
        public IPluginDataAccessLayer Create(GamePackage package)
        {
            if (!_gameProfileFactory.ContainsKey(package.GameProfile.PluginType))
            {
                throw new ArgumentException($@"plugin component policy for {package.GameProfile.PluginType} could not be resolved", nameof(package));
            }

            return(_gameProfileFactory[package.GameProfile.PluginType](package));
        }
 /// <summary>
 /// Создать из информации о пакете игры
 /// </summary>
 /// <param name="pkg">Пакет данных игры</param>
 /// <returns>Информация об игре</returns>
 public static GameInfo FromGamePackage(GamePackage pkg)
 {
     return(new GameInfo()
     {
         Name = pkg.Name,
         Path = pkg.DirectoryPath,
         IsValid = pkg.Validate()
     });
 }
        public async Task TestObjectsLoading()
        {
            var pkg        = new GamePackage(GamePackageName);
            var objManager = new ObjectsManager(pkg);
            await objManager.LoadDefinitions();

            var fieldObject = objManager.CreateObject("field");

            Assert.IsTrue(fieldObject.Type == ObjectType.Static);
        }
        public string GetPackageName(int PackageID)
        {
            string      PackageName = "";
            GamePackage info        = FacadeManage.aidePlatformFacade.GetGamePackage(PackageID);

            if (info != null)
            {
                PackageName = info.Name;
            }
            return(PackageName);
        }
        public async Task TestSceneLoading()
        {
            var pkg = new GamePackage(GamePackageName);

            var objManager = new ObjectsManager(pkg);
            await objManager.LoadDefinitions();

            var roomLoader = new GameRoomLoader(pkg);
            var room       = await roomLoader.Load(objManager);

            Assert.AreNotEqual(0, room.Interior.Count);
            Assert.AreNotEqual(0, room.PresentationMetadata.PointsOfView.Count);
        }
Exemple #13
0
        public void RenewWindowPackage(GamePackage package)
        {
            _cardUIList = ConvertPackageToUI(package);

            if (_cardSpriteList.Count == 0)
            {
                return;
            }

            _cardSpriteList.ForEach((sprite) => sprite.OnClick -= CardClickHandler);

            for (var i = 0; i < _cardSpriteList.Count; i++)
            {
                for (var j = 0; j < _cardUIList.Count; j++)
                {
                    if (_cardSpriteList[i].Card.CardSuit == _cardUIList[j].CardSuit &&
                        _cardSpriteList[i].Card.CardType == _cardUIList[j].CardType)
                    {
                        Vector2 position; Texture2D texture; float rotation; float zIndex;

                        // Renew sprite state
                        CalculateNewSpriteState(_cardUIList[j], out position, out texture, out rotation, out zIndex);
                        var texturePosition = (texture == _backSprite) ? Point.Zero : new Point((int)_cardUIList[j].CardSuit, (int)_cardUIList[j].CardType);
                        _cardSpriteList[i].Reset(texture, texturePosition, rotation, zIndex, CardResizeIndex);
                        if (position != _cardSpriteList[i].Position)
                        {
                            _cardSpriteList[i].Animate(position, AnimationTime);
                        }

                        // Set event handlers
                        if (_cardUIList[j].CardPosition == CardPosition.Player)
                        {
                            _cardSpriteList[i].OnClick += CardClickHandler;
                        }
                    }
                }
            }

            // Renew button state
            if (package.WhoseParty == PlayerType.Enemy)
            {
                ResetButtons(ButtonType.GetAll);
            }
            if (package.WhoseParty == PlayerType.Player)
            {
                ResetButtons(ButtonType.Pass);
            }

            ShowCards = true;
        }
Exemple #14
0
 /// <summary>
 /// 数据绑定
 /// </summary>
 private void BindData()
 {
     if (IntParam > 0)
     {
         GamePackage config = FacadeManage.aidePlatformFacade.GetGamePackage(IntParam);
         if (config != null)
         {
             CtrlHelper.SetText(txtName, config.Name.ToString());
             CtrlHelper.SetText(txtSortID, config.SortID.ToString());
             CtrlHelper.SetText(txtDescribe, config.Describe.ToString());
             ddlTypeID.SelectedValue    = config.TypeID.ToString();
             rblNullity.SelectedValue   = config.Nullity.ToString();
             Dropplatform.SelectedValue = config.PlatformKind.ToString();
         }
     }
 }
 // Start is called before the first frame update
 void Start()
 {
     app.SetActive(false);
     //button.onClick.AddListener(() => AppIn(button.gameObject));
     for (int i = 0; i < gamePackageSet.games.Length; i++)
     {
         GamePackage g   = gamePackageSet.games[i];
         GameObject  obj = Instantiate(appButton, canvas.transform);
         Button      b   = obj.GetComponent <Button>();
         Image       im  = obj.transform.GetChild(0).GetComponent <Image>();//プレハブの構造が変わると危険!
         obj.transform.localPosition = upperRightPos + new Vector3(width * (i % widthCount), -height * (i / widthCount));
         b.onClick.AddListener(() => AppIn(obj.transform.position, g));
         im.sprite = g.iconImage;
     }
     app.transform.SetAsLastSibling();
 }
Exemple #16
0
    public void ReceiveMessage(DataPackage pack)
    {
        if (pack.requestType == RequestType.game)
        {
            string stream = System.Text.Encoding.UTF8.GetString(pack.data);

            Debug.Log("在线好友:" + stream);

            GamePackage package = LitJson.JsonMapper.ToObject <GamePackage>(stream);

            // 用Loom的方法在Unity主线程中调用
            Loom.QueueOnMainThread((param) =>
            {
                Loom.ins.Alert(this.transform, "好友在线列表");
            }, null);
        }
    }
Exemple #17
0
        public void SetGameData(GamePackage gamePackage)
        {
            if (Trump != gamePackage.Trump ||
                PlayerCards != gamePackage.PlayerCards)
            {
                if (OnGameError != null)
                {
                    OnGameError(GameError.Error, "Trump suit and player's card list do not match");
                }
                return;
            }

            Deck       = gamePackage.Deck;
            EnemyCards = gamePackage.EnemyCards;
            DescPairs  = gamePackage.DescPairs;
            WhoseParty = gamePackage.WhoseParty;
        }
    private static void LoadSetting()
    {
        // 設定を保存(読み込み)するパス ScriptableObjectは.assetを付けないと正しく読んでくれません
        var path = "Assets/Main/Games/TestPlayPackage.asset";

        setting = AssetDatabase.LoadAssetAtPath <GamePackage>(path);

        if (setting == null)
        {                                                              // ロードしてnullだったら存在しないので生成
            setting = ScriptableObject.CreateInstance <GamePackage>(); // ScriptableObjectはnewではなくCreateInstanceを使います
            AssetDatabase.CreateAsset(setting, path);
        }

        string[] strs = EditorSceneManager.GetActiveScene().path.Split('/');

        setting.sceneName = strs[strs.Length - 1].Replace(".unity", string.Empty);
    }
Exemple #19
0
        private async Task ChangeGameProfileAsync(AggregateId gameProfileId)
        {
            using (new ProcessingScope(_processable))
            {
                _package = await _findGamePackageByIdQuery.FindByGameProfileIdAsync(gameProfileId);

                await InitializeInjectorModeAsync();

                Rebind();

                await _actionBuilder.Dispatch(new UpdateLastEditedGameProfileCommand(_package.GameProfile.Id))
                .CompleteFor <ActionSucceededNotification>(async(context, @event) => await PublishUpdateStatusEventAsync(StatusType.Ok, "GameProfileChanged", GameName, GameProfileName))
                .CompleteFor <ErrorOccuredNotification>(async(context, @event) => await PublishUnknownErrorEventAsync())
                .OnTimeout(async() => await PublishTimeoutEventAsync())
                .Execute();
            }
        }
    public void AppIn(Vector3 pos, GamePackage gamePackage)
    {
        app.transform.position = pos;
        backPos      = pos;
        selectedGame = gamePackage;

        titleText.text       = gamePackage.titleName;
        explanationText.text = gamePackage.explanation;
        authorText.text      = "つくったひと : " + gamePackage.authorName;
        screenshotIm.sprite  = gamePackage.screenshotImage;


        highScoreText.text = "ハイスコア:" + System.String.Format("{0, 3}", ScoreManager.Instance.GetScoreData(gamePackage.sceneName).Scores[0].ToString());

        app.SetActive(true);
        app.transform.localScale = Vector3.zero;
        app.transform.DOScale(1, 0.25f).SetEase(Ease.OutCubic);
        app.transform.DOLocalMove(Vector3.zero, 0.25f).SetEase(Ease.OutCubic);
    }
Exemple #21
0
        public async Task <IActionResult> UserGameDetails(Token tokenVar)
        {
            var decodeToken = new JwtSecurityTokenHandler().ReadJwtToken(tokenVar.token);
            //var identity = HttpContext.User.Identity as ClaimsIdentity;
            IList <Claim> claim       = decodeToken.Claims.ToList();
            var           userName    = claim[0].Value;
            UserAccount   userAccount = await _context.UserAccounts.Where <UserAccount>(UserAccount => UserAccount.UserName == userName).FirstOrDefaultAsync <UserAccount>();

            Game[] games = await _context.Games.Where(e => e.OwnerId == userAccount.Id).ToArrayAsync();

            //player to game is just the list of player ID's, use that to get the user-datas, then put that list of userdatas into the game array

            GamePackage[] gamePackageList = new GamePackage[games.Length];

            for (int i = 0; i < games.Length; i++)
            {
                List <UserData> userDataList = new List <UserData>();
                gamePackageList[i] = new GamePackage(games[i], userDataList);
                //Get the player Id's
                PlayerToGame[] playerIds = await _context.PlayerToGames.Where <PlayerToGame>(PlayerToGame => PlayerToGame.GameId == games[i].GameId).ToArrayAsync <PlayerToGame>();

                for (int j = 0; j < playerIds.Length; j++)
                {
                    //Get the userDatas from those ID's
                    UserData userData = await _context.UserDatas.Where <UserData>(UserData => UserData.UserId == playerIds[j].UserId).FirstOrDefaultAsync <UserData>();

                    gamePackageList[i].playerList.Add(userData);
                }
            }

            var jsonGameList = JsonConvert.SerializeObject(gamePackageList);

            IActionResult response = Ok(new { gameList = jsonGameList });

            return(response);
            //use the username to get the id
            //use the id to get list of game id's
            //use the list of game id's to return a json list of the game details
            //Send back and de-serialize
            //Make a looping list of things in front-end.
        }
Exemple #22
0
        private void RecvThread()
        {
            try
            {
                while (true)
                {
                    if (client == null || !client.Connected)
                    {
                        break;
                    }

                    client.Receive(recvBuf, 4, SocketFlags.None);
                    recvReader.BaseStream.Seek(0, SeekOrigin.Begin);

                    var pkgLen = recvReader.ReadInt32();

                    int recvLen = 0;
                    while (recvLen < pkgLen)
                    {
                        recvLen += client.Receive(recvBuf, recvLen, pkgLen - recvLen, SocketFlags.None);
                    }

                    recvReader.BaseStream.Seek(0, SeekOrigin.Begin);

                    var pkg = new GamePackage
                    {
                        MainCmd = recvReader.ReadByte(),
                        ParaCmd = recvReader.ReadByte(),
                        DataLen = recvReader.ReadInt16()
                    };
                    pkg.Data = recvReader.ReadBytes(pkg.DataLen);

                    recvQueue.Enqueue(pkg);
                }
            }
            catch (ThreadAbortException)
            {
            }
        }
        public void TestGameListing()
        {
            var availableGames = GamePackage.ListAvailable();

            Assert.AreNotEqual(0, availableGames.Count);
        }
Exemple #24
0
 /// <summary>
 /// 新增签到礼包配置
 /// </summary>
 /// <param name="config"></param>
 /// <returns></returns>
 public int InsertGamePackage(GamePackage config)
 {
     return(_aidePlatformData.InsertGamePackage(config));
 }
Exemple #25
0
 /// <summary>
 /// 修改签到礼包配置
 /// </summary>
 /// <param name="config"></param>
 /// <returns></returns>
 public int UpdateGamePackage(GamePackage config)
 {
     return(_aidePlatformData.UpdateGamePackage(config));
 }
Exemple #26
0
 public InjectionViewModel(InjectionConfigurationViewModel injectionConfigurationViewModel, GamePackage package)
 {
     _injectionConfigurationViewModel = injectionConfigurationViewModel;
     _package       = package;
     _tokenReplacer = new TokenReplacer(new ApplicationFilePathTokenReplacingPolicy(() => _package.Game?.FilePath ?? string.Empty));
 }
Exemple #27
0
        public List <CardUI> ConvertPackageToUI(GamePackage package)
        {
            _countPlayerCards = package.PlayerCards.Count;
            _countEnemyCards  = package.EnemyCards.Count;

            List <CardUI> cardUIList = new List <CardUI> {
            };
            int index = 0;

            package.Deck.ForEach((card) =>
            {
                cardUIList.Add(new CardUI
                {
                    CardPosition = CardPosition.Deck,
                    CardSuit     = card.CardSuit,
                    CardType     = card.CardType,
                    Index        = index++
                });
            });

            index = 0;
            package.DescPairs.ForEach((pair) =>
            {
                cardUIList.Add(new CardUI
                {
                    CardPosition = CardPosition.Desc,
                    CardSuit     = pair.LowerCard.CardSuit,
                    CardType     = pair.LowerCard.CardType,
                    Index        = index++
                });

                if (pair.UpperCard != null)
                {
                    cardUIList.Add(new CardUI
                    {
                        CardPosition = CardPosition.Desc,
                        CardSuit     = pair.UpperCard.Value.CardSuit,
                        CardType     = pair.UpperCard.Value.CardType,
                        Index        = index++
                    });
                }
            });

            index = 0;
            package.PlayerCards.ForEach((card) =>
            {
                cardUIList.Add(new CardUI
                {
                    CardPosition = CardPosition.Player,
                    CardSuit     = card.CardSuit,
                    CardType     = card.CardType,
                    Index        = index++
                });
            });

            index = 0;
            package.EnemyCards.ForEach((card) =>
            {
                cardUIList.Add(new CardUI
                {
                    CardPosition = CardPosition.Enemy,
                    CardSuit     = card.CardSuit,
                    CardType     = card.CardType,
                    Index        = index++
                });
            });


            // Get list of cards out of desc
            foreach (var sprite in _cardSpriteList)
            {
                var contains = false;
                foreach (var fui in cardUIList)
                {
                    if (fui.CardType == sprite.Card.CardType &&
                        fui.CardSuit == sprite.Card.CardSuit)
                    {
                        contains = true; break;
                    }
                }

                if (!contains)
                {
                    cardUIList.Add(new CardUI
                    {
                        CardPosition = CardPosition.OutOfDesc,
                        CardSuit     = sprite.Card.CardSuit,
                        CardType     = sprite.Card.CardType,
                        Index        = 0
                    });
                }
            }

            return(cardUIList);
        }
    // Start is called before the first frame update
    void Start()
    {
        Time.timeScale = 1;

#if UNITY_EDITOR
        DebugNotificationGenerator.Notify("Qキーでデバッグ表示ON/OFF");
#else
        DebugNotificationGenerator.Notify("4本マルチタッチでデバッグ表示ON/OFF");
#endif

#if UNITY_EDITOR
        isTestPlay = EditorPrefs.GetBool("testPlayFlag", false);
        if (isTestPlay)
        {
            Debug.Log("これはテストプレイです😀");
            EditorPrefs.SetBool("testPlayFlag", false);
            mode = PlayMode.Debug;
            var path = "Assets/Main/Games/TestPlayPackage.asset";
            singleGame     = AssetDatabase.LoadAssetAtPath <GamePackage>(path);
            Time.timeScale = EditorPrefs.GetFloat("timeScale", 1);
            //Initialization();
        }
#endif

        //Debug.Log(SceneManager.GetActiveScene().buildIndex);

        /*
         * if (mode != PlayMode.None)
         * {
         *  Initialization();
         * }
         */

        //やばい実装、後で直す
        if (SceneManager.GetActiveScene().buildIndex == 1)
        {
            mode = PlayMode.Normal;
        }
        else
        {
            //IsGamePlaying = true;
            //mode = PlayMode.None;
        }

        if (mode != PlayMode.None)
        {
            Initialization();
        }

        statementMesh.gameObject.SetActive(false);

        //デバッグ用
        //EndGame();
        DebugTextManager.Display(() => "TimeScale:" + Time.timeScale + "\n");
        //DebugTextManager.Display(() => "progress:" + async.progress + "\n");
        //DebugTextManager.Display(() => "IsGamePlaying:" + IsGamePlaying.ToString() + "\n");
        DebugTextManager.Display(() => "mode:" + mode.ToString() + "\n");
        //DebugTextManager.Display(() => "gameType:" + currentGameType.ToString() + "\n");
        //DebugTextManager.Display(() => "Loading:" + (async.progress * 100).ToString("D3") + "%\n");
        //DebugTextManager.Display(() => "Aspect:" + managerCamera.aspect + "\n");
        //DebugTextManager.Display(() => "AdsIsReady:" + Advertisement.IsReady() + "\n");
        //managerCammera.DOAspect(1, 5);
        //managerCammera.aspect = 16f / 9f;
        //カメラをアス比に合わせる設定
        //managerCamera.orthographicSize *= 16f / 9f / managerCamera.aspect;
    }
    private void EndGame()
    {
        Sequence seq = DOTween.Sequence()
                       .OnStart(() =>
        {
            ClearActionQueue.Clear();
            CameraZoomOut();
            IsGamePlaying = false;
            MusicManager.audioSource.volume = 1f;
            if (ClearFlag)
            {
                MusicManager.Play(BgmCode.Success);
                backgrondAnim.Play("Clear");
                for (int i = 0; i < restNum; i++)
                {
                    coinAnims[i].Play("CoinClear");
                }
            }
            else
            {
                MusicManager.Play(BgmCode.Failure);
                backgrondAnim.Play("Failure");

                /*
                 * for (int i = 0; i < restNum; i++)
                 * {
                 *  coinAnims[i].Play("CoinClear");
                 * }
                 * foreach (Animator anim in coinAnims)
                 * {
                 *  if (anim.gameObject.activeSelf)
                 *  {
                 *      anim.Play("CoinFailure");
                 *  }
                 * }
                 */
                coinAnims[restNum - 1].Play("CoinFailure");
            }
        })
                       .AppendInterval(0.5f)
                       .AppendCallback(() =>
        {
            SceneManager.UnloadSceneAsync(Instance.sceneName);
            //シーン削除
            Scene scene = SceneManager.GetSceneByName("ManagerScene");
            // 取得したシーンのルートにあるオブジェクトを取得
            GameObject[] rootObjects = scene.GetRootGameObjects();
            foreach (GameObject obj in rootObjects)
            {
                //Debug.Log(obj.name);
                //レイヤーがManagerSceneでないオブジェクトを削除
                if (obj.layer != 8)
                {
                    Destroy(obj);
                }
            }
            gameScene = SceneManager.GetSceneByName(sceneName);
            //EffectManager.StopEffect();
            currentGame = LoadGamePackage();
            isCanPause  = true;
            //Debug.Log(currentGame.name);
        })
                       .AppendInterval(1.5f)
                       .AppendCallback(() =>
        {
            //失敗処理
            if (!ClearFlag)
            {
                coinAnims[restNum - 1].gameObject.SetActive(false);
                restNum--;
                if (restNum == 0)
                {
                    FinishFlag = true;
                }
            }
            ClearFlag = false;
            foreach (Animator anim in coinAnims)
            {
                if (anim.gameObject.activeSelf)
                {
                    anim.Play("CoinReady");
                }
            }

            if (FinishFlag)
            {
                Finish();
            }
            else
            {
                backgrondAnim.Play("Ready");
                number++;
                numberMesh.text = number.ToString();
                Time.timeScale += 0.1f;
                MusicManager.audioSource.volume = 1f;
                MusicManager.Play(BgmCode.Ready);
                StartGame();

                //SpeedUp();
            }
        });
    }
    public void Initialization()
    {
        if (!isTestPlay)
        {
            Time.timeScale = 1;
        }
        number          = 1;
        restNum         = 4;
        numberMesh.text = number.ToString();
        numberMesh.gameObject.SetActive(false);
        gameQueue.Clear();
        gameList.Clear();
        ClearFlag = false;
        numberMesh.transform.localScale = Vector3.one;
        if (isTestPlay)
        {
            currentGame = LoadGamePackage();
            SceneManager.SetActiveScene(SceneManager.GetSceneByName("ManagerScene"));
            SceneManager.UnloadSceneAsync(currentGame.sceneName);
        }
        //gameListを初期化
        InitializeGamePackage();
        currentGame = LoadGamePackage();
        if (mode == PlayMode.Normal)
        {
            highScoreMesh.text = "ハイスコア:" + System.String.Format("{0, 3}", ScoreManager.Instance.GetScoreData().Scores[0].ToString());
        }
        else if (mode == PlayMode.Single)
        {
            highScoreMesh.text = "ハイスコア:" + System.String.Format("{0, 3}", ScoreManager.Instance.GetScoreData(currentGame.sceneName).Scores[0].ToString());
        }

        Sequence seq = DOTween.Sequence()
                       .OnStart(() =>
        {
            FinishFlag = false;
            MusicManager.Play(BgmCode.Start);
            backgrondAnim.Play("Start", 0, 0);
            for (int i = 0; i < restNum; i++)
            {
                coinAnims[i].gameObject.SetActive(true);
                coinAnims[i].Play("CoinStart", 0, 0);
                coinAnims[i].speed = 0;
            }
        })
                       .AppendInterval(1f)
                       .AppendCallback(() =>
        {
            for (int i = 0; i < restNum; i++)
            {
                coinAnims[i].speed = 1;
            }
        })
                       .AppendInterval(1f)
                       .AppendCallback(() =>
        {
            MusicManager.Play(BgmCode.Ready);
            backgrondAnim.Play("Ready");
            foreach (Animator anim in coinAnims)
            {
                anim.Play("CoinReady");
            }
            numberMesh.gameObject.SetActive(true);

            /*
             * //次のシーン読み込み
             * currentGame = LoadGamePackage();
             * gameScene = SceneManager.GetSceneByName(sceneName);
             * if (!gameScene.IsValid())
             * {
             *  async = SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Additive);
             *  async.allowSceneActivation = false;
             * }
             */

            ClearActionQueue.Clear();
            isCanPause = true;
        })
                       .AppendCallback(() => StartGame());
    }