// ライン変更 public void ChangeLine(int iNextLine) { // (11/13)(TODO)この処理だと全部取ってきて重いので何とかする。 // 解決案 最大サイズ取得したいだけなので最初にInt型にサイズを保存しておく。 CardData[] all = CardDataBase.GetDeckSortedCardData(); // カード情報を全て取得する。1/12 デッキ選択用のソートした配列を取得 int iMaxSize = all.Length; // カードの最大数 // セレクトタイプによってステート変更 switch ((CHANGE_LINE_TYPE)iNextLine) { case CHANGE_LINE_TYPE.BACK: SelectData.iDeckCollectLineNo -= 1; Debug.Log("SceneCollectState: LINE移動↑(マイナス)"); //+-------------------------------------------- // ラインが0より低ければ0にして何もせずReturun if (SelectData.iDeckCollectLineNo <= -1) { Debug.Log("ChangeLine:0よりマイナス行こうとしたため0に戻しReturun "); SelectData.iDeckCollectLineNo = 0; return; } ; // アニメーション開始 CollectCardGroup.GetComponent <ScreenOutAppeared>().SetPos(new Vector3(0, 600, 0)); //CollectCardGroup.GetComponent<ScreenOutAppeared>().SetNextPos(new Vector3(0, 0, 0)); CollectCardGroup.GetComponent <ScreenOutAppeared>().Action(); break; case CHANGE_LINE_TYPE.NEXT: SelectData.iDeckCollectLineNo += 1; Debug.Log("SceneCollectState: LINE移動↓(プラス)"); //+-------------------------------------------- // ラインが0より低ければ0にして何もせずReturun if ((SelectData.iDeckCollectLineNo * SelectData.DECK_COLLECTCARD_MAX) >= iMaxSize) { Debug.Log("ChangeLine:カード最大数を超えた空間に移動しようとしていたためReturn"); SelectData.iDeckCollectLineNo -= 1; return; } ; // アニメーション開始 CollectCardGroup.GetComponent <ScreenOutAppeared>().SetPos(new Vector3(0, -600, 0)); //CollectCardGroup.GetComponent<ScreenOutAppeared>().SetNextPos(new Vector3(0, 0, 0)); CollectCardGroup.GetComponent <ScreenOutAppeared>().Action(); break; case CHANGE_LINE_TYPE.END: Debug.LogWarning("SceneCollectState: それ以上のタイプはない。"); break; default: break; } int iNextNo = SelectData.iDeckCollectLineNo * SelectData.DECK_COLLECTCARD_MAX; for (int i = 0; i < SelectData.DECK_COLLECTCARD_MAX; i++) { m_aCollectCard[i].SetActive(true);//絵が表示されていない可能性があるため毎回True // 最大カード数を超えたら if ((iNextNo + i) >= iMaxSize) { m_aCollectCard[i].SetActive(false); //絵を表示しない continue; } // 01/12変更 ソートしたやつを左の表示をソートしたやつに変更 m_aCollectCard[i].GetComponent <uGUICard>().SetCardData(CardDataBase.GetSortedCardData(iNextNo + i)); // (11/13)最後にいつものうんこソート // 先にデッキに入っていないカード状態に m_aCollectCard[i].GetComponent <uGUICard>().NotGrasp_Off(); for (int i2 = 0; i2 < PlayerDeckData.deckMax; i2++) { // ★コレクションにあるカードがすでに被ってたら暗くするソート if (m_aCollectCard[i].GetComponent <uGUICard>().cardData.id == m_aMyDeckCard[i2].GetComponent <uGUICard>().cardData.id) { // デッキに入っている状態 m_aCollectCard[i].GetComponent <uGUICard>().NotGrasp_On(); break; } }// ソート } EventMANTAN(); AbilityMANTAN(); }