Closed junhyungmoon closed 3 years ago
현재 몽몽이 손을 출현시키는 트리거는 똥 기록이 추가 될 때, 기록의 상태가 '잘 모름'일 경우입니다.
따라서 본 이슈에서 어제 '잘 모름'을 선택해 몽몽이 손이 출현했지만,
날짜를 변경했을 때 몽몽이 손이 사라지는 함수가 존재하지 않아
정상 동작하지 않는 것으로 판단됩니다.
아래는 관련 LogCanvasHandler.cs의 몽몽이 손 관련 부분인
public void CreatePoopLog(DataHandler.PoopLog log, int hour) 함수 부분입니다.
public void CreatePoopLog(DataHandler.PoopLog log, int hour) {
// ------------------------------------------
// ... 중략 ...
// ------------------------------------------
if(log.type == 0) {
isLogMongMong_Poo = true;
MongMongHand.SetActive(true);
Circle.SetActive(true);
wrongPooCheck[index] = true;
} else {
isLogMongMong_Poo = false;
MongMongHand.SetActive(false);
Circle.SetActive(false);
}
// ------------------------------------------
// ... 후략 ...
// ------------------------------------------
}
하루보기 페이지의 몽몽이 출현 트리거에 대한 큰 수정이 필요하다고 판단됩니다.
따라서 비슷한 이슈는 모두 클로즈하고,
41 [BUG] 하루보기 몽몽이 출현조건 및 빨간점 표시 - 배변모양 선택
52 [BUG] 하루보기 똥 기록 제거 후 빨간점과 몽몽이 손 지속문제
본 이슈에 통합하여 관리하도록 하겠습니다.
@junhyungmoon @2sukhyunlee @sayiovme @Yeohyun00 @josephhanbin
하루보기 페이지의 몽몽이 출현 조건을 모아밴드로 추가하여 사용자가 똥 모양을 선택하지 않은 경우로 변경합니다.
기존 몽몽이 출현 조건 : 해당 페이지에 '잘 모름'으로 선택된 기록이 있을 경우
즉, 모아밴드가아닌 태블릿 앱에서 추가했을 때, 모양을 '잘 모름'으로 선택한다면, 몽몽이는 나타나지 않습니다.
실제로 정말 모양을 모르는데, 몽몽이가 나타나서 알려달라고 요구하는 것은 부적절하다는 판단이 있기 때문입니다.
하지만 밴드의 경우, 누르기만 하면 일단 기록이 추가가 되므로, 이 경우에는 몽몽이가 나타납니다.
또한, #41 [BUG] 하루보기 몽몽이 출현조건 및 빨간점 표시 - 배변모양 선택에서 확인한 내용처럼,
단순히 "밴드에서 기록이 추가 됐을 때 몽몽이 손을 On/Off 하는 방식"은 적절하지 않음을 확인했습니다.
화면이 바뀌거나, 기록을 새로 불러올 때 몽몽이의 손 상태가 적절히 갱신되어야 한다는 뜻입니다.
따라서 몽몽이의 손을 보여줄지, 보여주지 않을지 결정하는 순간을 정리해보았습니다.
번호 | 트리거 |
---|---|
1. | 하루보기 페이지가 로딩 될 때 |
2. | 하루보기 페이지의 날짜가 변경될 때 |
3. | 하루보기 페이지의 오늘가기 버튼을 누를 때 |
4. | 하루보기 페이지가 보여지고 있을 때, 앱을 통해 기록을 추가할 때 |
5. | 하루보기 페이지가 보여지고 있을 때, 밴드를 통해 기록을 추가할 때 |
6. | 하루보기 페이지에서 기록을 삭제할 때 |
7. | 하루보기 페이지에서 기록을 변경할 때 |
아래와 같은 순간에는 기록의 변경이 없으므로, 몽몽이 손의 상태를 유지합니다.
- 하루보기 페이지의 시간대를 변경 할 때
하루보기 페이지에서, 똥 모양을 고르지 않아 몽몽이가 출현했을 때, 몽몽이를 화면에서 제거하는 방법은 3가지입니다.
이 기능을 구현하기 위해 밴드로 추가하는 똥 기록의 경우, 0~7 사이의 값(0: 잘모름 / 1~7:브리스톨 스케일)이 아닌
타입을 8번으로 추가합니다. 아래는 ProtocolHandler.cs 의 기록을 추가하는 부분입니다.
//==============================================================================
// Button Input
//==============================================================================
case 0x24:
if(!TotalManager.instance.isRegisterMode) {
string stamp = GetCurrentTimeStamp();
switch (bytes[6]) {
case 3:
DataHandler.PoopLog log1 = new DataHandler.PoopLog();
log1.id = DataHandler.User_id;
log1.auto = 1;
log1.type = 8; // 타입을 8번으로 추가
log1.timestamp = stamp;
log1.type = 0;
StartCoroutine(DataHandler.CreatePooplogs(log1));
break;
// 후략
이는 @sayiovme 와 함께 작업중인 FluidTrack Report server에도 적용되었습니다.
밴드로 추가한 타입 8의 똥 기록도 '잘 모름' 모양으로 보여집니다.
아래는 Report서버의 Graph.js의 관련 부분입니다.
if(temp==0 || temp == 8){
//console.log("START")
mainChart.append('image')
.attr('xlink:href', "../IMG/poo/unknown_poop.png")
.attr('width', size)
.attr('height', size)
.attr("x", x_loc[i])
.attr("y", y)//y)
y=y-size
}
위에 새로 정의한 출현 조건에 부합하지 않아서 공유합니다. "하루보기 페이지의 몽몽이 출현 조건을 모아밴드로 추가하여 사용자가 똥 모양을 선택하지 않은 경우로 변경합니다."
모아정원 앱과 모아밴드가 블루투스로 연동되어 있는 상황에서 모아밴드의 똥 버튼을 누른 상황입니다. 똥 아이콘에는 모양 선택하라는 표시가 뜨지만 몽몽이 손은 나오지 않습니다.
다른 화면으로 나갔다가 하루보기 화면으로 다시 돌아와도 나오지 않았습니다.
제가 해결했으니 @sanghyuplee20 님은 이 이슈는 패스하셔도 됩니다.
아래 화면의 똥은 모아정원 App 에서 입력한 똥이라 몽몽이 손이 나오지 않는 것이 맞는것 같습니다. 다만 그러면 똥 아이콘에 (i) 도 안나와야 하는것 아닌가 싶어서 코멘트 남겨둡니다. 똥 아이콘에 작게 표시하는 이유가 모양을 골라야 한다고 알려주는 기능이었기 때문입니다.
제가 모아밴드로 똥 버튼을 누른 후 App 에 나온 것을 모양 고르기에서 잘 모름으로 선택했더니 그 똥에도 (i) 가 남네요.
그리고 i 말고 ? 로 바꿔야 합니다. 이것도 회의에서 이봉신 박사님께서 말씀하셨던 기억이 납니다.
(i) 가 그림일것 같은데, 하루보기 화면에서 추가를 눌렀다가 취소하는 이슈에서 한빈 학생에게 assign 한 그림과 함께 요청해주세요
바로 위 이슈에서 설명한 대로, log
의 type
들 중, 0
, 8
모두 잘 모름이지만,
0
은 앱에서 잘 모름을 선택한 기록 (실제로 모름),
8
은 모아 밴드로 기록 했기 때문에 잘 모름의 기록 입니다.
따라서, 하루보기 페이지의 동작을 담당하는 LogPageHandler.cs
의 로그를 그리는 함수
public void CreatePoopLog(DataHandler.PoopLog log, int hour)
의 일부를 다음과 같이 수정합니다.
// 수정 전
if(log.type == 0 || log.type ==8)
wrongPooCheck[index] = true;
//수정 후
if(log.type ==8)
wrongPooCheck[index] = true;
디자인 변경은 @josephhanbin 님께 따로 요청드리겠습니다.
업데이트 완료
똥 기록이 없는데도 똥 모양을 고르라고 나옵니다 참고로 오늘이 아닌 이전의 기록에 똥이 있고 그 모양은 고르지 않은 상태입니다. 아래 화면은 오늘 화면이고요