FluidTrack / MOA_garden

Fluid Track Unity Application
MIT License
0 stars 0 forks source link

[BUG] 똥/음료 4개 초과 삭제 시 UI 오류 #115

Closed junhyungmoon closed 3 years ago

junhyungmoon commented 3 years ago

다른 critical 한 버그가 나와서 버전 업데이트를 해야하면 그때 수정하기로 해요~ 별로 일어날 일은 없어보이고, 일어나도 앱을 아예 사용하지 못하는건 아닌 버그입니다. "지금은 리포트만 하겠습니다."

여러개의 똥 삭제 시 화면에 최대 4개가 보이고 오른쪽으로 화면을 넘길 수 있죠. 한시간 막대기에 똥이 4개 초과 있다고 가정해 보겠습니다. 이때 똥 4개를 선택한 뒤 오른쪽으로 넘겨서 5번째 똥을 선택하면 소리는 나는데 선택이 안됩니다 (색이 진해지지 않음) 그 상태에서 확인을 하면 5개가 아니라 4개만 지워집니다. 음료도 동일합니다. 한시간 막대기에 한 10개 이상 기록을 모아놓고 삭제할 대상을 고르려고 좌우로 움직이면서 마구 클릭했더니 버그리포트 팝업이 나와서 서버로 날려드렸습니다.

KimYC1223 commented 3 years ago

아이고... ㅋㅋ 정말 끝이 없네요.. 고쳐보겠습니다

어차피 업데이트를 해야하므로, 수정은 해놓겠습니다.

junhyungmoon commented 3 years ago

제가 이것저것 앱에서 다 해봤는데 다른 버그는 없어보입니다~ㅎ @2sukhyunlee @Yeohyun00 내일 오전까지 별다른 버그가 없으면 매뉴얼이랑 데모영상 업데이트 부탁드려요 만드실 때 궁금하거나 같이 얘기했으면 싶은게 생기면 언제든 말씀 부탁드립니다.

KimYC1223 commented 3 years ago

문제 해결

@sanghyuplee20 님과 같이 작업했던 부분에서 오류가 난 것으로 보입니다.

SelectDrinkHandler.cs에서,

public void DrawIcons() {
    // ... 중략 ...
    // icon.index = ( i - page );
    icon.index = i;

    // ... 후략 ...
}

ublic void IconClick(int index) {
    if(isDelete) {
        if (realClickedIconIndex.Contains(index))
        {
            // realClickedIconIndex.Remove( page + index );
            realClickedIconIndex.Remove(index);
        }
        else
        {
            // realClickedIconIndex.Add( page + index );
            realClickedIconIndex.Add(index);
        }

        if (realClickedIconIndex.Count > 0)
        {
            OkayButton.interactable = true;
        }
        else
        {
            OkayButton.interactable = false;

        }
    } else {
        if (realClickedIconIndex.Count > 0)
        {
            realClickedIconIndex.RemoveAt(0);
            // realClickedIconIndex.Add(page + index);
            realClickedIconIndex.Add(index);
        }
        else
        {
            // realClickedIconIndex.Add(page + index);
            realClickedIconIndex.Add(index);
        }

        OkayButton.interactable = true;
    }
    isClicked = true;
    DrawIcons();
}

이제 문제 없이 잘 동작합니다.