카테고리 없음
본캠프_TIL_64일차(몬스터 선택 후 MainScene으로 넘어가지 않음)
티-히히
2024. 12. 12. 21:00
오늘 한 일
- 오전
- 오전회의
- 새로운 몬스터 spirteAtlas 만들기
- sprite이름과 몬스터 이름이 같아야함.
- test데이터 적용→ 실제 몬스터 데이터 적용
- DataManager에 몬스터 데이터를 가져오는 함수작성필요
- 오후
- 오전 작업한것들 합치기
- 선택된 몬스터데이터가 삭제되는 문제 발견. 고침.
오늘 오후 튜터님께 중간검사를 받았습니다
도중 몬스터 선택 후 MainScene으로 넘어가지 않는 문제가 발생했습니다.
몬스터가 다 선택되지 않아 발생한 오류였습니다. 그림에는 다 선택되어 있는걸로 나와 있음에도요.
들어온 정보를 바로 볼 수 있게 몬스터를 선택하면 왼쪽 하단과 같이 몬스터 정보를 볼 수 있게 만들어뒀습니다.
테스트 결과
슬롯을 클릭 후 이미 선택된 몬스터를 선택하면 몬스터 정보가 삭제되는 문제를 발견했습니다.
public void SelectListSlot(Sprite listSlotSprite)
{
string name = listSlotSprite.name.Replace("(Clone)","").Trim();
//이미 슬롯이 채워져있을 시 채워져있는 몬스터를 삭제해주는 로직.
if (_selectedListData.ContainsKey(_crrSlotIdx))
{
_selectedListData.Remove(_crrSlotIdx);
}
//선택한 몬스터 데이터를 _selectedListData 넣어줌.
foreach (var Data in _monsterListData)
{
if (Data.Key == name)
{
foreach (var data in _selectedListData)
{
if (data.Value.MonsterId == Data.Value)
{
Debug.Log("이미 선택한 몬스터입니다!!");
testText.text = "";
foreach (var asdf in _selectedListData)
{
testText.text += $"{asdf.Key} : {asdf.Value}\n";
}
return;
}
}
_selectedListData.Add(_crrSlotIdx, (Data.Value, Data.Key));
}
}
리스트 슬롯을 클릭하자마자 현재 슬롯의 몬스터를 삭제하고 있었기에 발생한 문제였습니다.
if (_selectedListData.ContainsKey(_crrSlotIdx))
{
_selectedListData.Remove(_crrSlotIdx);
}
_selectedListData.Add(_crrSlotIdx, (Data.Value, Data.Key));
삭제하는 위치를 몬스터를 더해주는 위치 바로 전으로 바꿔 문제를 해결했습니다.