본문 바로가기
TIL

12.27 (TIL-Unity3D)

by 오랑이귀엽다 2023. 12. 27.

프로빌더(ProBuilder)

프로빌더(ProBuilder)는 Unity의 유용한 에셋 중 하나로, 게임 개발자들이 빠르고 쉽게 3D 모델을 만들고 편집하는 도구입니다. 기본적으로 Unity에서 제공하는 기능으로, 유료 라이선스가 필요 없이 무료로 사용할 수 있다.

프로빌더의 주요 기능과 특징은 다음과 같다:

  1. 3D 모델링: 프로빌더는 내장된 도구들을 사용하여 3D 모델을 쉽게 생성할 수 있다. 기본적인 기하 도형(정육면체, 원기둥 등)을 생성하거나, 다른 모델링 도구를 사용하여 더 복잡한 모델을 만들 수 있다.
  2. 편집과 수정: 프로빌더는 객체를 선택하고 이동, 회전, 스케일 등을 수행하는 편집 도구를 포함하고 있다. 또한 정점, 엣지, 면 수준에서 세부적인 편집이 가능.
  3. UV 매핑: 3D 모델의 텍스처 UV 매핑을 프로빌더에서 직접 할 수 있다. 이를 통해 텍스처를 정확하게 적용할 수 있다.
  4. 콜리전 설정: 프로빌더는 간단한 콜리전 메쉬를 만들 수 있으며, 이를 통해 게임 캐릭터나 객체와 상호작용하는데 사용될 수 있다.
  5. 성능 최적화: 프로빌더는 다른 모델링 도구와 함께 사용하여 메시의 폴리곤 개수를 최적화하고 게임 성능을 향상시킬 수 있다.

캐릭터 컨트롤러(Character Controller)

캐릭터 컨트롤러(Character Controller)는 Unity에서 캐릭터나 플레이어의 움직임과 충돌을 관리하기 위해 사용되는 컴포넌트. 이 컴포넌트는 물리 엔진이 아닌 캐릭터의 움직임을 프레임 기반으로 처리하므로, 주로 3D 캐릭터를 제어하는 데 사용.

캐릭터 컨트롤러의 주요 기능과 특징은 다음과 같다:

  1. 캐릭터 이동: 캐릭터 컨트롤러는 단순한 이동을 쉽게 구현할 수 있도록 메서드를 제공. 주로 이동 방향과 이동 속력을 설정하여 캐릭터를 움직이게 한다.
  2. 중력 적용: 캐릭터 컨트롤러는 중력을 적용하여 점프나 떨어짐을 자연스럽게 처리할 수 있다.
  3. 충돌 처리: 캐릭터 컨트롤러는 물리 엔진을 사용하지 않고, 캐릭터의 충돌을 감지하고 처리할 수 있다. 다른 콜리더와의 충돌을 통제하고, 경사로와의 상호작용 등을 지원.
  4. 바닥 검출: 캐릭터 컨트롤러는 캐릭터가 바닥 위에 놓이도록 바닥 검출을 처리. 바닥과의 거리, 표면 노멀 등을 고려하여 캐릭터의 높이를 조절하거나 점프를 가능하게 한다.
  5. 움직임 제한: 캐릭터 컨트롤러는 움직임을 제한하는 기능도 제공. 지정된 영역 내에서만 움직이도록 하거나, 지형의 경사를 따라 이동할 수 있도록 설정할 수 있다.

일반 메서드(함수)와 코루틴의 차이

일반 메서드(함수)

  1. 정의 및 작동 방식:
    • 일반 메서드는 프로그램의 흐름을 순차적으로 실행하는 함수.
    • 호출 시, 함수의 시작점부터 끝점까지 실행되고, 리턴 값이 있으면 값을 반환한 후 종료.
  2. 블로킹 동작:
    • 함수가 실행되는 동안, 해당 함수를 호출한 부분(코드)는 대기 상태가 된다. 이를 '블로킹'이라고 한다.
    • 함수 내부에서 시간이 많이 소요되는 작업(예: 파일 읽기/쓰기, 네트워크 요청)을 수행하면, 전체 프로그램의 흐름이 해당 작업이 완료될 때까지 멈춤.
  3. 자원 사용:
    • 각 함수 호출마다 새로운 실행 컨텍스트가 생성되며, 함수가 종료되면 그 컨텍스트는 사라진다.
    • 동시에 많은 함수를 호출하면, 각 함수의 실행 컨텍스트에 대한 메모리 사용량이 증가한다.

코루틴

  1. 정의 및 작동 방식:
    • 코루틴은 비동기 프로그래밍을 위해 사용되는 특별한 유형의 함수.
    • 실행을 시작하고, 중단점(yield, await 등)에서 일시 중지했다가 필요할 때 다시 재개할 수 있다.
  2. 비블로킹 및 비동기 동작:
    • 코루틴은 비동기적으로 작동. 코루틴이 대기 상태에 있을 때 (예: 데이터를 기다리는 중), 프로그램은 다른 작업을 계속 수행할 수 있다.
    • 이는 I/O 바운드 작업(네트워크 요청, 파일 I/O 등)에서 특히 유용.
  3. 자원 사용 효율성:
    • 코루틴은 실행 상태를 유지하기 위해 적은 양의 메모리만을 사용한다.
    • 이를 통해 많은 수의 비동기 작업을 효율적으로 관리할 수 있다.
  4. 중단과 재개:
    • 코루틴은 중단점에서 일시 중지되었다가, 프로그램의 다른 부분이 코루틴을 재개할 수 있다.
    • 이렇게 하면 단일 코루틴이 여러 번에 걸쳐 실행되며, 각 실행 사이에 다른 작업을 수행할 수 있다.

결론

  • 일반 메서드는 단순하고 순차적인 작업에 적합하며, 코루틴은 비동기적이고 자원 효율적인 작업에 적합.
  • 코루틴은 복잡한 비동기 흐름을 관리하는데 유리하며, 특히 네트워크 요청이나 I/O 작업과 같이 대기 시간이 필요한 작업에서 강력.

'TIL' 카테고리의 다른 글

12.29 (TIL-Unity3D)  (0) 2024.01.02
12.28 (TIL-Unity3D)  (1) 2023.12.28
12.26 (TIL-Unity3D)  (0) 2023.12.26
12.22 (TIL-코딩문제)  (1) 2023.12.22
12.21 (TIL - Unity)  (0) 2023.12.21