본문 바로가기
TIL

01.29 (TIL-Unity)

by 오랑이귀엽다 2024. 1. 29.

구현한 기능: 화면 어두워지는 효과와 위치 이동 (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