issues
search
pknu-wap
/
Zenocide
부경대학교 중앙동아리 WAP, 2024년 1학기 게임 2팀 프로젝트입니다.
3
stars
1
forks
source link
카드 관련 버그 픽스
#86
Closed
miniron-v
closed
1 month ago
miniron-v
commented
1 month ago
개요
다음 에러들을 해결했습니다.
턴 종료 후,
묘지로 가던 카드를 사용
할 수 있음
카드 사용을 취소한 직후 턴 종료 시,
카드가 버려지지 않음
카드 드로우 중
턴 종료 시, 드로우되던 카드가 다음 턴에도 남아 있음.
카드를 빠르게 더블클릭 시 (강조 중 클릭 시) 게임이 멈춤 -> 재현 실패
카드가 리셋될 때 포물선으로 움직이지 않던 현상
84
변경 사항
OnMouseDrag
isDragging 함수를 만들어두고, if 문에서 체크를 안 하고 있었습니다.
우클릭 취소를 구현하며 발견했고, if문에 isDiscarded, isDragging 함수가 추가되었습니다.
OnMouseUp
moveSequence.Kill()을 추가해, 카드 더블클릭 시 가운데에 멈춰 있던 에러를 수정했습니다.
Card
우클릭 시 호출되는, 취소 함수가 신설되었습니다. (CancelWithRightClick)
isDiscarded 변수를 두어, 더 이상 콜라이더를 껐다 켜며 이벤트를 막지 않습니다. (마우스 이벤트 제외)
CardManager
변수에 헤더를 붙여뒀습니다.
더 이상 TurnManager에 접근해 Draw를 실행하지 않습니다. 이제 드로우는 오로지
CardManager의 몫
입니다.
AddCardToHand
함수에 대대적인 개편이 있었습니다.
이제 매개변수로
플레이어 턴 검사
가 아닌,
드로우 할 카드의 수
를 받습니다.
호출 직후 Card를 생성해, Draw Buffer에
전부
넣어둡니다.
생성이 완료되면
Draw Buffer에서 Hand
로, 하나씩,
딜레이를 주며
이동시킵니다. 애니메이션이 끝나면
Hand에 카드가 추가됩니다.
DiscardHandCo에도 변화가 생겼습니다.
드로우가 진행 중일 때를 고려,
Draw Buffer
에 카드가 있다면
0이 될 때까지 기다립니다
. (즉, 드로우가 끝날 때까지 기다립니다.)
hand가
빌 때까지
Discard를 진행합니다.
모든 카드가 버려지면
hand를 비우고, 선택된 카드를 비웁니다.
버려지는 동안 모든 Hand 내 카드의
isDiscarded
를 켜서, 이벤트를 막았습니다.
포물선 이동을 정상화 시켰습니다.
SetEase가 괄호 밖에 있어 모든 DOTween에 적용되고 있었습니다.
전체적으로
딜레이 사용 방식을 변경했습니다. delay05처럼 시간에 따라 나누지 않고,
drawDelay
처럼 용도에 맞게 변수를 사용합니다. 아직 적용 안 된 코드들도 있습니다.
DOTween 사용 후 완료
를 기다릴 때,
눈대중으로 delay를 주는 대신
yield return sequence.WaitForCompletion
을 사용했습니다.
중복 호출되던 함수들을 수정했습니다. (MergeDumpToDeck, onStartPlayerTurn.Invoke)
참고 자료
개요
다음 에러들을 해결했습니다.
84
변경 사항
OnMouseDrag
OnMouseUp
Card
CardManager
전체적으로
yield return sequence.WaitForCompletion
을 사용했습니다.참고 자료