public void SetUnit(UnitSaveData unitSave, bool isForceSortie, bool isForbiddenSortie, bool is_unitcheck = false) { unit = new Unitdata(unitSave, false, is_unitcheck); //HPとスキル使用回数の回復 unit.hp = unit.status.maxhp; foreach (Skill skill in unit.skills) { skill.use = skill.maxuse; } textName.text = unit.charaname; textLevel.text = string.Format("Lv:{0}", unit.status.level); //LvMAX判定 if (unit.status.level >= 99) { unit.status.level = 99; //メモリ改ざんとか対策 textExp.text = string.Format("MAX"); textExp.color = Color.red; expGauge.GetComponent <RectTransform>().sizeDelta = new Vector2(expGaugeParent.GetComponent <RectTransform>().sizeDelta.x, expGaugeParent.GetComponent <RectTransform>().sizeDelta.y); } else { textExp.text = string.Format("あと{0}", unit.status.needexp - unit.status.exp); textExp.color = Color.white; expGauge.GetComponent <RectTransform>().sizeDelta = new Vector2((float)unit.status.exp / (float)unit.status.needexp * expGaugeParent.GetComponent <RectTransform>().sizeDelta.x, expGaugeParent.GetComponent <RectTransform>().sizeDelta.y); } if (isForceSortie) { sortiestate = SortieState.FORCE; //強制出撃の場合、すでにマップ上に存在する該当キャラクターとunitの指し示す先が一致する必要がある。 foreach (Unitdata tempunit in BattleVal.unitlist) { if (tempunit.savescobj == unit.savescobj) { unit = tempunit; } } } else if (isForbiddenSortie) { sortiestate = SortieState.FORBIDDEN; } else { sortiestate = SortieState.NONE; } if (is_unitcheck) { buttonIsSortie.gameObject.SetActive(false); } unitcheckflag = is_unitcheck; }
//出撃フラグボタンがクリックされた時 public void OnClickSortieButton() { switch (sortiestate) { case SortieState.NONE: //出撃可能な場合 if (CharaSetup.sortieflag) { Operation.setSE(seOk); sortiestate = SortieState.SORTIE; DrawUnit(); } else { Operation.setSE(seCancel); } break; case SortieState.SORTIE: sortiestate = SortieState.NONE; HideUnit(); break; } }