SPRT BootCamp Unity : 29일차

강동현·2025년 11월 7일

SpartaCodingClub_Unity_12th

목록 보기
23/23

0. 서론

 금일 또한 강의 영상과 챌리저반 수업을 진행하였다. 코르틴과 에이싱크, 동기 비동기를 다뤘다. 무엇인지 알지만 정확하게 설명할 정도로 알고있지 않아 이에 대해 적어볼 것이다.

1. 금일 학습 내용

  Unity에서 시간이 걸리는 작업(로딩, 애니메이션 등)을 처리할 때 코드를 "잠시 멈췄다가 다시 이어서 실행"해야 하는 경우가 있다. 이럴 때 사용하는 대표적인 방법이 코루틴(Coroutine)async/await 이다.

코루틴(Coroutine)


  • Unity에서 제공하는 '비동기' 흐름 제어 방식
  • 메인 스레드를 멈추지 않고, 중간에 멈췄다가 나중에 이어서 실행 가능
    IEnumerator WaitAndPrint()
    {
      Debug.Log("3초 대기 시작");
      yield return new WaitForSeconds(3f);
      Debug.Log("3초 후 실행됨!");
    }
    void Start()
    {
      StartCoroutine(WaitAndPrint());
    } 
    //예시 코드
  • 반드시 IEnumerator 반환형으로 선언하고, StartCoroutine()으로 호출
  • yield return으로 멈춤점을 만듬
  • 프레임 단위, 시간, 조건 등으로 다양하게 대기가 가능
  • Unity 메인 스레드 안에서만 동작

async/await (에이싱크, 어싱크X)


- C# 언어 문법 기반의 비동기 처리 방식
- 코루틴보다 더 범용적인 코드 작성 가능하다고 함
- *Unity 2017 이후부터 사능 가능
using System.Threading.Tasks;
async void Start()
{
  Debug.Log("3초 대기 시작");
  await Task.Delay(3000);
  Debug.Log("3초 후 실행됨!");
} //예시 코드
  • await는 비동기적으로 작업을 기다림
  • 비Unity환경에서도 사용 가능하다고 함

동기 비동기

구분설명예시
동기한 작업이 끝나야
다음 작업이 실행됨
줄 서서 기다리는 방식
비동기기다리지 않고, 다른 작업을
동시에진행할 수 있음
번호표를 뽑고 다른 일
하다가 호출되면 가는방식

3. 다음 학습 내용

  • 주말동안 영상 강의 전부 시청
  • 과제 프레임 작업

4. 느낀 점

  알던 개념도 확실하게 아는 게 아니면 금일처럼 제대로 한 번 더 공부하는 것이 좋아보여 앞으로 이런 글이 많아 질 것 같다. 그리고 쓰다보니 내가 이해하는 방향으로 적다보니 비전공자들이 봐도 이해 가능한 글을 쓰는 목표에서 벗어난 것 같다. 다음부턴 약간 더 글을 유하게 써볼 것 이다.

0개의 댓글