본문 바로가기
[ Unity ]/- 유니티 실습

유니티 코루틴

by MRG 2024. 9. 12.
728x90
반응형

 

▣ 코드 설명
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

 

코루틴 - Unity 매뉴얼

코루틴을 사용하면 작업을 다수의 프레임에 분산할 수 있습니다. Unity에서 코루틴은 실행을 일시 정지하고 제어를 Unity에 반환하지만 중단한 부분에서 다음 프레임을 계속할 수 있는 메서드입니

docs.unity3d.com

 

https://docs.unity3d.com/ScriptReference/MonoBehaviour.StartCoroutine.html

 

Unity - Scripting API: MonoBehaviour.StartCoroutine

The execution of a coroutine can be paused at any point using the yield statement. When a yield statement is used, the coroutine pauses execution and automatically resumes at the next frame. See the Coroutines documentation for more details. Coroutines are

docs.unity3d.com

 

https://docs.unity3d.com/ScriptReference/WaitForSeconds.html

 

Unity - Scripting API: WaitForSeconds

WaitForSeconds class in UnityEngine / Inherits from:YieldInstruction / Implemented in:UnityEngine.CoreModule Description Suspends the coroutine execution for the given amount of seconds using scaled time. The real time suspended is equal to the given time

docs.unity3d.com

 

 

728x90
반응형

'[ 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

댓글