/* * ================================================ * ゲームメインループ * ================================================ */ IEnumerator MainLoop() { /* 初期化処理 */ yield return(Init()); // セーブデータの読み込みにウェイトを挟む /* メインループ */ editPartyStatus = EDIT_PARTY_STATUS._CHANGE_CHARACTER; editPartyStatus = EDIT_PARTY_STATUS._PARTY_SELECT; changeCharaPartyId = -1; while (true) { switch (editPartyStatus) { // 編集するパーティの選択 case EDIT_PARTY_STATUS._PARTY_SELECT: yield return(DecideEditParty.Loop(saveData.GetSaveParty())); editPartyId = DecideEditParty.editPartyId; editPartyStatus = DecideEditParty.editPartyStatus; break; // 編成対象となるキャラクターの選択 case EDIT_PARTY_STATUS._CHANGE_CHARACTER: SetEditParty(); // editPartyId に応じて、パーティ情報を格納 yield return(DecideChangeCharacter.Loop(editParty)); changeCharaPartyId = DecideChangeCharacter.changeCharaPartyId; editPartyStatus = DecideChangeCharacter.editPartyStatus; break; // 誰を加入させるか選択 case EDIT_PARTY_STATUS._JOIN_CHARACTER: yield return(DecideJoinCharacter.Loop(saveData.GetObtainChara())); joinCharaId = DecideJoinCharacter.joinCharaId; editPartyStatus = DecideJoinCharacter.editPartyStatus; break; // 実際の入れ替え処理 case EDIT_PARTY_STATUS._DECIDED_JOIN_CHARACTER: ChangeMember(); SaveParty(); editPartyStatus = EDIT_PARTY_STATUS._CHANGE_CHARACTER; break; case EDIT_PARTY_STATUS._END: yield return(Utility._Scene.MoveScene("Base", "Images\\Background\\Black", 90)); break; default: break; } // フリーズを防止 yield return(0); } }
/* ガチャを回す */ IEnumerator PlayGacha() { /* 引くキャラのID */ getCharaResultId = Random.Range(1, Variables.Unit.Num + 1); /* データを持ってくる */ /* ( 一部ロード ⇒ 全体ロード&部品読み込みにすべき) */ string charaStand = CharacterStatus.LoadPlayerCharacterStringStatus( getCharaResultId, _ST._standGraphicPath); string description = CharacterStatus.LoadPlayerCharacterStringStatus( getCharaResultId, _ST._description); /* リザルトオブジェクト */ // :透明のボタン resultObj = Utility._Object.MyGenerateImage( Variables.Gacha.BackgroundPath, canvas, new Vector2(1280, 960)); resultObj.name = "ResultEnd"; resultObj.GetComponent <Image>().color = new Color(0, 0, 0, 0); Button bt = resultObj.AddComponent <Button>(); bt.onClick.AddListener(() => this.onClick(resultObj)); // :キャラ画像(親子関係を持たせると被せてもクリック可能) GameObject charaObj = Utility._Object.MyGenerateImage( charaStand, resultObj, new Vector2(360, 720)); charaObj.GetComponent <Image>().color = Color.white; // :説明文 GameObject textObj = Utility._Object.MyInstantiate( "Prefabs\\Gacha\\GachaText", resultObj, new Vector2(0, -200)); textObj.GetComponent <Text>().text = description.ToString(); /* 実際の入手処理 */ saveData.GetObtainChara().isObtainChara[getCharaResultId] = true; yield return(0); }