/// <summary> /// ユニット進化実行 /// </summary> private void EvolveUnit() { //素材 List <long> partsList = new List <long>(); for (int i = 0; i < m_UnitMaterialPanel.MaterialList.Count; i++) { if (m_UnitMaterialPanel.MaterialList[i].m_UniqueId != 0) { partsList.Add(m_UnitMaterialPanel.MaterialList[i].m_UniqueId); } } //---------------------------------------- // 演出用に通信処理を行う前の情報を保持しておく //---------------------------------------- { MainMenuParam.m_EvolveBaseBefore = new PacketStructUnit(); MainMenuParam.m_EvolveBaseBefore.Copy(m_BaseUnit); MainMenuParam.m_EvolveParts.Release(); for (int i = 0; i < partsList.Count; i++) { if (partsList[i] == 0) { continue; } PacketStructUnit _unit = UserDataAdmin.Instance.SearchChara(partsList[i]); if (_unit == null) { continue; } PacketStructUnit cUnit = new PacketStructUnit(); cUnit.Copy(_unit); MainMenuParam.m_EvolveParts.Add(cUnit); } } ButtonBlocker.Instance.Block(MainMenuDefine.UNIT_DECIDE_BUTTON_BLOCK_TAG); //ユニット進化送信 ServerDataUtilSend.SendPacketAPI_Evolve_Unit( m_BaseUnit.unique_id , partsList.ToArray() , m_CharaEvol.fix_id , m_CharaEvol.unit_id_after , (MainMenuParam.m_BeginnerBoost != null) ? (int)MainMenuParam.m_BeginnerBoost.fix_id : 0) .setSuccessAction(_data => { resultSuccess(_data); }) .setErrorAction(_data => { #if BUILD_TYPE_DEBUG Debug.Log("request Error : " + _data.m_PacketCode.ToString()); #endif AndroidBackKeyManager.Instance.EnableBackKey(); buttonUnlock(); }) .SendStart(); }
//---------------------------------------------------------------------------- /*! * @brief 基底継承:MainMenuSeq:ページ切り替えにより有効化された際に呼ばれる関数 * @note ページのレイアウト再構築を兼ねる */ //---------------------------------------------------------------------------- protected override void PageSwitchSetting(bool initalize) { base.PageSwitchSetting(initalize); //-------------------------------- // 情報破棄 // // リソースの参照が残ると破棄処理で抜けが生じるので // ページを無効にしたタイミングでも破棄するよう対応してる //-------------------------------- //-------------------------------- // オブジェクト破棄 //-------------------------------- if (m_AssetAutoSet != null) { m_AssetAutoSet.DestroyCharaMesh(); } //-------------------------------- // リンク情報クリア //-------------------------------- m_WorkStep = STEP_000_START; m_WorkStepDelta = 0; m_WorkStepTriger = true; //-------------------------------- // Bugweb:5925 関連 // アチーブメント達成演出をスキップされる可能性を考慮しアチーブメント取得フラグONにしとく。 // フラグをONにすることで、次回、ミッション画面に遷移したとき、 // ローカルで保持してるアチーブメントマスタのリスト情報を破棄し、新しく一からマスタを取得し直すようになる。 //-------------------------------- if (MainMenuParam.m_AchievementListGet == false) { MainMenuParam.m_AchievementListGet = true; } //-------------------------------- // リンク前後の情報を保持しておく //-------------------------------- PacketStructUnit UnitBefore = new PacketStructUnit(); //!< ユニット情報:リンク前 PacketStructUnit UnitAfter = new PacketStructUnit(); //!< ユニット情報:リンク後 UnitBefore.Copy(MainMenuParam.m_LinkBaseBefore); UnitAfter.Copy(MainMenuParam.m_LinkBaseAfter); MasterDataParamChara m_UnitMasterData = MasterDataUtil.GetCharaParamFromID(UnitAfter.id); //!< ユニット情報:マスターデータ m_UnitNamePanel.setup(m_UnitMasterData); UnitBefore.add_hp = UnitAfter.add_hp; UnitBefore.add_pow = UnitAfter.add_pow; UnitBefore.link_unique_id = UnitAfter.link_unique_id; //-------------------------------- // リンク先のユニット情報を取得する //-------------------------------- PacketStructUnit cLinkUnit = CharaLinkUtil.GetLinkUnit(UnitBefore.link_unique_id); //---------------------------------------- // 初期情報としてリンク前のユニット情報を表示 //---------------------------------------- // 表示ユニット情報を設定 MainMenuParam.SetCharaDetailParam(UnitBefore, cLinkUnit); //---------------------------------------- // キャラメッシュ生成 //---------------------------------------- if (m_AssetAutoSet == null) { m_AssetAutoSet = m_ReferObject[OBJECT_CHARA_MESH].AddComponent <AssetAutoSetCharaMesh>(); m_AssetAutoSet.m_AssetBundleMeshScaleUp = true; m_AssetAutoSet.m_AssetBundleMeshPosition = true; } m_AssetAutoSet.SetCharaID(m_UnitMasterData.fix_id, true); //---------------------------------------- // カットインオブジェクト生成 //---------------------------------------- //-------------------------------- // リンクユニット //-------------------------------- m_CutinLink = new MainMenuCutin(); m_CutinLink.Setup(m_ReferObject[OBJECT_CUTIN_PARENT], MainMenuParam.m_LinkUnit.id, MainMenuDefine.CUTIN_OBJ_TYPE_FIX); //-------------------------------- // 素材ユニット //-------------------------------- if (MainMenuParam.m_LinkParts != null && MainMenuParam.m_LinkParts.m_BufferSize > 0) { m_CutinParts = new MainMenuCutin[MainMenuParam.m_LinkParts.m_BufferSize]; for (int i = 0; i < MainMenuParam.m_LinkParts.m_BufferSize; i++) { m_CutinParts[i] = new MainMenuCutin(); m_CutinParts[i].Setup(m_ReferObject[OBJECT_CUTIN_PARENT], MainMenuParam.m_LinkParts[i].id, MainMenuDefine.CUTIN_OBJ_TYPE_COST); } } //---------------------------------------- // とりあえず非表示へ //---------------------------------------- m_LayoutCategory.SetLayoutAllDisable(); m_LayoutWindow.SetLayoutAllDisable(); //遷移ボタンOFF m_UnitResultButton.IsActiveButton1 = false; m_UnitResultButton.IsActiveButton2 = false; // ロゴ情報 for (int i = 0; i < m_AnimationShotLogo.Length; i++) { if (m_AnimationShotLogo[i] == null) { continue; } UnityUtil.SetObjectEnabled(m_AnimationShotLogo[i].gameObject, false); } }