public void OnSlotSelected(CharacterSlot _slot) { if (resetMode) { bool cancel = false; if (PlayerData.Instance.characters[resetJoinCharacter - 1] == _slot.cha) { cancel = true; } Character exchange = null; int exchangeIndex = 0; for (int i = 0; i < 5; ++i) { if (i == resetJoinCharacter - 1) { continue; } Character cha = PlayerData.Instance.characters[i]; if (cha == _slot.cha) { exchange = cha; exchangeIndex = i; } } resetMode = false; topBackground.color = Color.white; botBackground.color = Color.white; for (int i = 0; i < 5; ++i) { joinChaBtn[i].interactable = true; } if (cancel) { return; } if (exchange != null) { Character ori = PlayerData.Instance.characters[resetJoinCharacter - 1]; PlayerData.Instance.characters[exchangeIndex] = ori; joinChaBtn[exchangeIndex].image.sprite = ori.portrait; } PlayerData.Instance.characters[resetJoinCharacter - 1] = _slot.cha; PlayerData.Instance.SaveData(); joinChaBtn[resetJoinCharacter - 1].image.sprite = _slot.cha.portrait; } else { int lv = PlayerData.Instance.chaLevel[_slot.cha.id - 1]; purchase.ActiveTrue(); purchase.slot = _slot; purchase.SetContents(_slot.cha.CalculateLevel(lv)); purchase.Open(); } }