public override bool PageSwitchEventEnableBefore(bool bBack = false) { bool bEnable = base.PageSwitchEventEnableBefore(); // アセットバンドルの読み込み if (!m_bStartLoadImg) { m_bStartLoadImg = true; uint currentHeroID = MasterDataUtil.GetCurrentHeroID(); string assetname = string.Format("tex_hero_perform_l_{0:D4}", currentHeroID); AssetBundler.Create().Set(string.Format("hero_{0:D4}", currentHeroID), assetname, (o) => { Texture2D texture = o.GetTexture2D(assetname, TextureWrapMode.Clamp); if (texture != null) { m_HeroImage = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero); m_HeroImage_mask = o.GetTexture(assetname + "_mask", TextureWrapMode.Clamp); } if (m_HomeMenu != null) { m_HomeMenu.HeroImage = m_HeroImage; m_HomeMenu.HeroImage_mask = m_HeroImage_mask; } m_bEndLoadImg = true; }, (s) => { m_bEndLoadImg = true; }).Load(); } #if false//トピック情報を表示するボタンは削除されたので情報取得APIもコメントアウトする。 if (!m_bStartApi) { ServerDataUtilSend.SendPacketAPI_GetTopicInfo() .setSuccessAction(_data => { m_RecvData = _data.GetResult <RecvGetTopicInfo>().result.Clone <RecvGetTopicInfoValue>(); m_bEndApi = true; }) .SendStart(); m_bStartApi = true; } bEnable = !m_bEndApi && !m_bEndLoadImg; #else bEnable = !m_bEndLoadImg; #endif return(bEnable); }
public static void cacheBattleUnitTexture() { if (BattleParam.m_PlayerParty != null) { CharaOnce[] player_party_members = BattleParam.m_PlayerParty.getPartyMembers(CharaParty.CharaCondition.EXIST); for (int idx = 0; idx < player_party_members.Length; idx++) { CharaOnce player_party_member = player_party_members[idx]; BattleUnitTextureCache.Instance.loadTexture((int)player_party_member.m_CharaMasterDataParam.fix_id, false); if (player_party_member.m_LinkParam != null && player_party_member.m_LinkParam.m_cCharaMasterDataParam != null ) { BattleUnitTextureCache.Instance.loadTexture((int)player_party_member.m_LinkParam.m_cCharaMasterDataParam.fix_id, false); } } } if (BattleParam.m_EnemyParam != null) { for (int idx = 0; idx < BattleParam.m_EnemyParam.Length; idx++) { BattleEnemy battle_enemy = BattleParam.m_EnemyParam[idx]; if (battle_enemy != null) { MasterDataParamChara enemy_chara = battle_enemy.getMasterDataParamChara(); if (enemy_chara != null) { BattleUnitTextureCache.Instance.loadTexture((int)enemy_chara.fix_id, false); } } } } // 主人公の画像をキャッシュ int current_hero_id = (int)MasterDataUtil.GetCurrentHeroID(); BattleUnitTextureCache.Instance.loadTexture(-current_hero_id, false); }
/// <summary> /// パーティ詳細情報の変更 /// </summary> void CreatePartyParam() { PacketStructUnit[][] partys = UserDataAdmin.Instance.m_StructPartyAssign; m_PartyParamPanel.m_CurrentIndex = m_UnitPartyCurrent; m_PartyParamPanel.PartyParams.Clear(); m_PartyParamPanel.OnChangedPartyParamAction = OnChangedPartyParam; List <MasterDataParamChara> charaMasterList = MasterFinder <MasterDataParamChara> .Instance.FindAll(); m_partyPanels.Clear(); for (int i = 0; i < partys.Length; ++i) { int index = i; var partyPanelModel = new PartyParamListItemModel((uint)index); PartyParamListItemContext paertParam = new PartyParamListItemContext(partyPanelModel); PartySelectGroupUnitContext party = m_PartySelectGroup.GetParty(i); m_partyPanels.Add(partyPanelModel); //-------------------------------------------- // パーティ情報 //-------------------------------------------- if (m_PartyParamPanel != null) { CharaUtil.setupCharaParty(ref paertParam.PartyInfo, party.PartyData); // パーティ情報の設定 paertParam.NameText = string.Format(GameTextUtil.GetText("questlast_text7"), party.Index + 1); paertParam.CostText = string.Format(GameTextUtil.GetText("questlast_text5"), paertParam.PartyInfo.m_PartyTotalCost , UserDataAdmin.Instance.m_StructPlayer.total_party); // Cost paertParam.CharmText = string.Format(GameTextUtil.GetText("questlast_text6"), paertParam.PartyInfo.m_PartyTotalCharm); // CHARM } //------------------------- // ユニット設定 //------------------------- List <PartyMemberUnitContext> unitList = new List <PartyMemberUnitContext>(); int unitDataIndex = 0; for (int pt_count = 0; pt_count < party.PartyData.Length; ++pt_count) { PacketStructUnit unitData = party.PartyData[pt_count]; PacketStructUnit linkData = party.PartyLinkData[pt_count]; var unitDataModel = new PartyMemberUnitListItemModel((uint)unitDataIndex++); PartyMemberUnitContext unit = new PartyMemberUnitContext(unitDataModel); unit.IsActiveStatus = true; unit.IsActiveParamText = true; if (unitData != null) { unit.CharaMaster = charaMasterList.Find((v) => v.fix_id == unitData.id); UnitIconImageProvider.Instance.Get( unitData.id, sprite => { unit.UnitImage = sprite; }); unit.UnitData = unitData; unitDataModel.OnLongPressed += () => { OnLongPressParamUnit(unit); }; } else { unit.OutSideCircleImage = ResourceManager.Instance.Load("icon_circle_deco", ResourceType.Common); unit.UnitImage = ResourceManager.Instance.Load("icon_empty2", ResourceType.Menu); unit.IsEnalbeSelect = true; } if (linkData != null && linkData.id > 0) { unit.LinkCharaMaster = charaMasterList.Find((v) => v.fix_id == linkData.id); UnitIconImageProvider.Instance.Get( linkData.id, sprite => { unit.LinkUnitImage = sprite; }); unit.IsEmptyLinkUnit = false; } else { unit.LinkOutSideCircleImage = ResourceManager.Instance.Load("icon_circle_deco", ResourceType.Common); unit.LinkUnitImage = ResourceManager.Instance.Load("icon_empty2", ResourceType.Menu); unit.IsEmptyLinkUnit = true; } // indexがm_UnitPartyCurrentとその前後の時にアイコンとステータスを更新する. if ((index == m_UnitPartyCurrent) || (index == m_UnitPartyCurrent - 1) || (index == m_UnitPartyCurrent + 1)) { MainMenuUtil.SetPartySelectUnitData(ref unit, unitData, linkData, party.PartyData); } else if (unit.OutSideCircleImage == null) { unit.OutSideCircleImage = ResourceManager.Instance.Load("icon_circle_deco", ResourceType.Common); } unitDataModel.OnClicked += () => { OnSelectParamUnit(unit); }; unitList.Add(unit); partyPanelModel.AddUnit(unitDataModel); } unitList[0].PartyCharaIndex = GlobalDefine.PartyCharaIndex.LEADER; unitList[1].PartyCharaIndex = GlobalDefine.PartyCharaIndex.MOB_1; unitList[2].PartyCharaIndex = GlobalDefine.PartyCharaIndex.MOB_2; unitList[3].PartyCharaIndex = GlobalDefine.PartyCharaIndex.MOB_3; paertParam.Units = unitList; //------------------------- // スキル //------------------------- int skillDataIndex = 0; if (unitList[0].UnitData.id > 0) { List <UnitSkillAtPartyContext> skillList = new List <UnitSkillAtPartyContext>(); var skillDataModel = new ListItemModel((uint)skillDataIndex++); UnitSkillAtPartyContext leaderSkill = new UnitSkillAtPartyContext(skillDataModel); leaderSkill.setupLeaderSkill(unitList[0].CharaMaster.skill_leader); skillList.Add(leaderSkill); paertParam.Skills = skillList; partyPanelModel.AddSkill(skillDataModel); #if BUILD_TYPE_DEBUG Debug.Log("*************** UnitSkillAtPartyContext *********************"); #endif } paertParam.SelectLinkAction = OnSelectLink; m_PartyParamPanel.PartyParams.Add(paertParam); } //-------------------------------------- // 主人公 //-------------------------------------- // アセットバンドルの読み込み uint currentHeroID = MasterDataUtil.GetCurrentHeroID(); AssetBundler.Create(). Set(string.Format("hero_{0:D4}", currentHeroID), (o) => { Texture2D texture = o.GetTexture2D(string.Format("tex_hero_perform_l_{0:D4}", currentHeroID), TextureWrapMode.Clamp); Texture2D texture_mask = o.GetTexture2D(string.Format("tex_hero_perform_l_{0:D4}_mask", currentHeroID), TextureWrapMode.Clamp); foreach (var paertParam in m_PartyParamPanel.PartyParams) { paertParam.HeroImage = texture; paertParam.HeroImage_mask = texture_mask; } }).Load(); }