개인 일정이 있어 작업 시간이 별로 없었다. 당장 할 수 있는 업무 자체도 많지는 않다 보니, 간단하게만 작업을 하고 대신 조금 쉴 수 있는 시간을 가졌다.
해당 기능을 추가하는 데 별 어려움은 없었다. 사실상 작업 자체도 간단하게 추가할 수 있었다.
public void SelectCharacterPreset(int index)
{
if (_currentCharacterSOs[0] == null)
{
_popUpUI.SetActive(true);
_popUpText.text = "Leader is not added.\nPlease add.";
return;
}
_currentCharacterSOs = _selectedCharacters[index].CharLists;
_currentCost = 0;
_currentOverallPower = 0;
for(int i = 0; i < _currentCharacterSOs.Length; i++)
{
if (_currentCharacterSOs[i] != null)
{
_currentCost += _currentCharacterSOs[i].Cost;
_currentOverallPower += _currentCharacterSOs[i].OverallPower;
}
}
OnCharacterDataChanged?.Invoke();
}
경고 패널이 떴을 때에는 다른 UI와 상호작용하지 못하도록 투명한 패널로 덮어버리고, 리더가 배치되지 않았다는 패널을 출력
버튼을 눌렀을 때 해당 패널 자체가 비활성화되도록 인스펙터로 바로 연결
이와 같이 간단한 방법으로 프리셋 상 리더 효과에 대한 예외처리가 가능하며, 아래와 같이 이벤트가 활성화되었을 때 리더 효과 표기에 대한 부분을 추가해 주면 된다.
private void ShowLeaderEffectInfo()
{
if (_currentCharacterSOs[0] == null) _leaderEffectText.text = "LeaderEffect : None";
else _leaderEffectText.text = $"LeaderEffect : {_currentCharacterSOs[0].LeaderEffectDescription}";
}