▣ 코드 설명
Start() 메서드: 게임이 시작되면 유니티가 자동으로 호출하는 메서드입니다. 여기서 StartCoroutine()을 사용해 코루틴을 시작합니다.
MoveCharacter() 메서드: IEnumerator 타입의 코루틴입니다. while (true)를 사용해 무한히 반복됩니다.
transform.Translate(Vector2.right * moveSpeed): 캐릭터를 오른쪽으로 moveSpeed만큼 이동시킵니다.
yield return new WaitForSeconds(2f): 2초 동안 대기한 후, 다시 반복문이 실행됩니다.
Debug.Log()로 이동 후 콘솔에 로그를 출력하여 작업이 수행되었음을 확인할 수 있습니다.
▣ 코드 설명
jumpForce: 캐릭터가 점프할 때 적용되는 힘의 크기입니다.
canJump: 캐릭터가 점프할 수 있는 상태인지 여부를 판단하는 변수입니다. 점프를 한 후에는 false로 설정하여 일정 시간 동안 점프를 할 수 없게 만듭니다.
jumpCooldown: 캐릭터가 점프 후 다시 점프할 수 있기까지의 대기 시간입니다. 예제에서는 2초 동안 대기합니다.
Rigidbody2D: 물리적 힘을 적용하기 위해 캐릭터에 추가된 컴포넌트입니다. 여기서 위로 힘을 가하여 캐릭터가 점프하도록 구현되었습니다.
코루틴 Jump(): 점프를 처리하는 코루틴입니다. 점프한 후 일정 시간 동안 대기하고, 대기 시간이 끝난 후 다시 점프할 수 있도록 상태를 변경합니다.
▣ 코루틴(Coroutine)은 유니티에서 비동기 작업을 처리할 때 사용하는 유용한 방법입니다. 코루틴은 여러 프레임에 걸쳐 작업을 나누어 실행하거나, 특정 시간 동안 작업을 중지했다가 다시 실행할 수 있게 해 줍니다. 주로 시간이 걸리는 작업, 예를 들어 애니메이션, 시간 지연, 데이터 다운로드 등의 작업에서 사용됩니다.
▣ 코루틴을 사용하는 이유
프레임 간 작업 분할: 코루틴은 한 프레임에서 끝나지 않고, 여러 프레임에 걸쳐 실행됩니다. 따라서 한 번에 많은 연산을 실행하지 않고 나눠서 처리할 수 있습니다.
비동기적 실행: 다른 작업을 방해하지 않으면서 작업을 비동기적으로 수행할 수 있습니다.
일정 시간 대기: yield return new WaitForSeconds()와 같은 구문을 사용하면 특정 시간 동안 대기하고 그 후에 다음 작업을 실행할 수 있습니다.
코루틴 사용 시기
특정 시간 동안 대기하고 작업을 실행해야 할 때 (예: 3초 후에 특정 동작 실행)
애니메이션이나 효과 등을 시간에 맞춰 실행해야 할 때
긴 작업을 여러 프레임에 나누어 처리해야 할 때 (예: 데이터 로딩이나 다운로드)
https://docs.unity3d.com/kr/2022.3/Manual/Coroutines.html
https://docs.unity3d.com/ScriptReference/MonoBehaviour.StartCoroutine.html
https://docs.unity3d.com/ScriptReference/WaitForSeconds.html
'[ Unity ] > - 유니티 실습' 카테고리의 다른 글
유니티 2D Collider (0) | 2024.09.13 |
---|---|
유니티 2D 배경 스크롤링 (1) | 2024.09.12 |
유니티 콜리전 범위 시각화 (0) | 2024.09.11 |
유니티 2D Object Ping Pong (0) | 2024.09.11 |
유니티 2D 점프, 더블점프 (7) | 2024.09.10 |
댓글