개발일지/TIL
[Unity Devcamp] 0323 개발일지
JangKroed
2023. 3. 23. 07:13
728x90
반응형

[기획수정]
신기록 달성 시 나오는 폭죽효과 5초만 지속되도록 수정
- 기존에 Particle 구현시 Looping에 체크되있어 반복되도록 설정되어있어 체크제거하여 반복되지 않게 수정
- Start Lifetime을 5로 수정하여 구현완료.
도전모드의 여러번 터뜨려야 하는 블록이 파괴조건 달성시 애니메이션 효과 제거
- 숫자가 없는 블록만 애니메이션 효과 적용하여야 한다.
- 해당 칸의 value값이 1일 경우에 숫자가 없는데, 1일경우에만 애니메이션 효과 적용하니 앞선 코드순서에서 이미 1이었던 칸은 0이 되어 적용되지않아 0일경우 애니메이션 효과 적용되도록 수정.
// GameHUD.cs
private Transform SetMatches(List<Vector2Int> matches, int i)
{
int x = matches[i].x;
int y = matches[i].y;
matrix[x, y] = matrix[x, y] > 0 ? matrix[x, y] - 1 : 0;
SetCellSprite_Default(boardCells[x, y], x, y, matrix[x, y]);
// 해당 좌표의 블록의 값이 0인경우에만 애니메이션 효과 적용
if (matrix[x, y] == 0) GfxCreate_BlockCrear(boardCells[x, y].transform);
if (comboTextPositionState)
{
ScoreTextPosition.x += boardCells[x, y].transform.position.x;
ScoreTextPosition.y += boardCells[x, y].transform.position.y;
}
return boardCells[x, y].transform;
}
현재점수가 최고점수 갱신 시 플레이 화면의 최고점수도 갱신되어야 한다.
- 현재 로직은 현재점수가 최고점수(All Time)를 넘기게 되면 효과음이 나오고 정산시 Save되는 방식.
- 현재 점수가 최고점수를 갱신시 마다 효과음이 나게되면 유저입장에서 효과음이 과다하다는 인식이 생길 수 있어 기존대로 정산시에만 Save하고 효과음의 기준은 Save된 최고점수를 갱신하는 시점으로 적용.
// GameHUD.cs
IEnumerator SetScoreUpdate(int input, float delay)
{
int start = int.Parse(scoreText.text, NumberStyles.AllowThousands);
int best = int.Parse(BestScoreTxt.text, NumberStyles.AllowThousands);
// 현재점수가 최고점수보다 높을 시 최고점수 갱신
if (start > best) BestScoreTxt.text = string.Format("{0:#,###}", input);
while (input > start)
{
start++;
scoreText.text = string.Format("{0:#,###}", start);
yield return YieldCache.WaitForSeconds(delay);
}
yield return null;
}
728x90
반응형