コード例 #1
0
    void Update()
    {
        //----------------------------------------
        // インスタンスのチェック
        //----------------------------------------
        if (SceneObjReferGameMain.Instance == null)
        {
            return;
        }

        if (m_Window == null ||
            m_WindowPos == null ||
            m_CharaIcon == null
            //		||   m_Collision   == null
            //		||   m_Caption     == null
            //		||   m_Race        == null
            //		||   m_Type        == null
            //		||   m_Week        == null
            //		||   m_Rare        == null
            //		||   m_LabelTarget == null
            )
        {
            return;
        }

        //----------------------------------------
        // ターゲットマークがついている敵なのかチェック
        //----------------------------------------
        bool isTarget = false;

        if (BattleParam.m_TargetEnemyWindow == BattleParam.m_TargetEnemyCurrent)
        {
            isTarget = true;
        }

        //----------------------------------------
        // ターゲットウィンドウに表示する対象が設定されているかチェック
        //----------------------------------------
        if (m_TargetID == InGameDefine.SELECT_NONE)
        {
            //----------------------------------------
            // ターゲットウィンドウを閉じている時の処理
            //----------------------------------------
            m_TargetID = BattleParam.m_TargetEnemyWindow;
            if (m_TargetID != InGameDefine.SELECT_NONE &&
                m_SetUpInfo == false)
            {
                BattleEnemy enemy = BattleParam.m_EnemyParam[m_TargetID];
                if (enemy != null)
                {
                    MasterDataParamChara charaParam = enemy.getMasterDataParamChara();
                    if (charaParam != null)
                    {
                        // 名前
                        Caption = charaParam.name;
                        // 種族
                        Item_race_title = GameTextUtil.GetText("WORD_UNIT_KIND");
                        Item_race       = GameTextUtil.GetKindToText(enemy.getKind(), enemy.getKindSub());
                        // 属性
                        Item_type_title = GameTextUtil.GetText("WORD_UNIT_ELEMENT");
                        Item_type       = GameTextUtil.GetText(GameTextUtil.GetElemToTextKey(charaParam.element));
                        // 弱点
                        Item_week_title = GameTextUtil.GetText("WORD_UNIT_WEEK");
                        MasterDataDefineLabel.ElementType week = InGameUtilBattle.GetElementAffinity(charaParam.element);
                        Item_week = GameTextUtil.GetText(GameTextUtil.GetElemToTextKey(week));
                        // レア
                        Item_rare_title = GameTextUtil.GetText("WORD_RARE_JP");
                        Item_rare       = GameTextUtil.GetText(GameTextUtil.GetRareToTextKey(charaParam.rare));

                        // 状態異常アイコンの設定
                        SetAilmentIcon(enemy);

                        // キャラアイコンの設定
                        UnitIconImageProvider.Instance.Get(
                            charaParam.fix_id,
                            sprite => { Chara_icon = sprite; });
                    }

                    // 特性情報の設定
                    SetAbilityInformation(enemy);

                    // ターゲットボタンの状態を設定
                    SetTargetButton(isTarget);

                    // ウィンドウの有効化
                    UnityUtil.SetObjectEnabledOnce(m_WindowPos, true);

                    m_SetUpInfo = true;

                    // 表示位置へ移動
                    gameObject.transform.localPosition = m_DispPos;

                    m_bTouchReleaseAfterWindowOpen = false;

                    //-----------------------------------------------------
                    // 初期状態:基本情報から開始。
                    //-----------------------------------------------------
                    ChangeState(ESTATE.eSTATE_PAGE_BASIC);
                    return;
                }
            }
        }
        else
        {
            //----------------------------------------
            // ターゲットウィンドウを開いている時の処理
            //----------------------------------------


            //-------------------------------------------------------------
            // 閉じるボタン押下によるウィンドウ閉じる処理。
            //-------------------------------------------------------------
            bool dispChange = false;

            // 閉じる。
            if (dispChange == true)
            {
                //---------------------------------------------------------
                // ページ情報クリアのため、状態解除。
                //---------------------------------------------------------
                ChangeState(ESTATE.eSTATE_NULL);

                UnityUtil.SetUILabelValue(m_AbilityDetailObj[ABILITY_LABEL], "");               // ここでクリアしておかないと、別の敵でスクロールバーの表示判定がうまく機能しない
                m_SetUpInfo = false;
                m_TargetID  = InGameDefine.SELECT_NONE;
                UnityUtil.SetObjectEnabledOnce(m_WindowPos, false);
                UnityUtil.SetObjectEnabledOnce(m_Collision, false);
                UnityUtil.SetObjectEnabledOnce(this.gameObject, false);
                return;
            }


            //-------------------------------------------------------------
            // 状態更新。
            //-------------------------------------------------------------
            switch (m_eState)
            {
            case ESTATE.eSTATE_PAGE_BASIC: State_PageBasicUpdate(); break;

            case ESTATE.eSTATE_PAGE_STATUS: State_PageStatusAilmentUpdate(); break;

            case ESTATE.eSTATE_PAGE_ABILITY: State_PageAbilityUpdate(); break;
            }
        }
    }