구현한 기능: 화면 어두워지는 효과와 위치 이동 (Fade Screen and Teleport)
- 목적 : 플레이어가 특정 지점(루프 스타트)에 도달했을 때 시각적으로 인지할 수 있는 화면 효과를 제공하고, 지정된 다른 위치(루프 앤드)로 이동시키는 것
- 사용한 스크립트 : SW_Loop
구현코드(간단한로직)
IEnumerator FadeScreenAndTeleport(GameObject player) {
// 화면을 어두워지게 하는 과정
float timer = 0;
while (timer < delayBeforeTeleport) {
timer += Time.deltaTime;
float alpha = Mathf.Clamp01(timer / delayBeforeTeleport);
fadePanel.color = new Color(0, 0, 0, alpha);
yield return null;
}
// 플레이어 위치 이동
player.transform.position = loopEndPosition.position;
// 화면을 다시 밝게 만드는 과정
timer = 0;
while (timer < delayBeforeTeleport) {
timer += Time.deltaTime;
float alpha = Mathf.Clamp01(1 - (timer / delayBeforeTeleport));
fadePanel.color = new Color(0, 0, 0, alpha);
yield return null;
}
}
사용이유 :
플레이어의 위치 이동과 같은 중요한 게임 메커니즘을 시각적으로 강조하여 플레이어의 몰입도를 높일 수 있다.
게임 내에서 플레이어가 특정 행동을 할 때 명확한 시각적 피드백을 제공하여 사용자 경험을 향상.
트러블슈팅: 위치 이동이 작동하지 않는 문제
상황
- 플레이어가 트리거에 들어갔을 때 지정된 위치로 이동하지 않는 문제가 발생했습니다.
원인
- 초기 구현에서 OnTriggerEnter 내에서 직접 위치를 변경하는 로직이 다른 스크립트의 업데이트 메소드와 충돌하여 예상대로 작동하지 않았습니다.
해결
- 코루틴을 사용하여 지연시간 후에 플레이어의 위치를 변경하는 방식으로 수정했습니다. 이를 통해 다른 스크립트와의 충돌을 방지하고 원하는 동작을 정상적으로 수행할 수 있었습니다
이 기능은 내일 쫌더 내용을 추가할 예정.
'TIL' 카테고리의 다른 글
02.07 (TIL-Unity) (1) | 2024.02.07 |
---|---|
01.30 (TIL-Unity) (0) | 2024.01.30 |
01.26 (TIL-Unity) (0) | 2024.01.26 |
01.25 (TIL-Unity) (0) | 2024.01.25 |
01.24 (TIL-Unity) (0) | 2024.01.24 |