Version: 2021.1
언어: 한국어
멀티플레이어 암호화 플러그인
공통 작업: HLAPI 사용

UnityWebRequest

UnityWebRequest는 HTTP 요청을 구성하고 HTTP 리스폰스를 처리하기 위한 모듈식 시스템을 제공합니다. UnityWebRequest 시스템의 주요 목표는 Unity 게임이 최신 웹 브라우저 백 엔드와 상호작용할 수 있도록 하는 것입니다. 또한 대량의 HTTP 요청, POST/PUT 스트리밍 작업, HTTP 헤더 및 동사의 완벽 제어 등 수요가 높은 기능을 지원합니다.

시스템은 다음과 같이 두 레이어로 구성됩니다.

  • 고급 레벨 API(HLAPI)는 낮은 레벨 API를 래핑하고 일반 작업을 수행하기 위한 편리한 인터페이스를 제공합니다.
  • 낮은 레벨 API(LLAPI)는 더 많은 고급 사용자를 위해 최대한의 유연성을 제공합니다.

지원되는 플랫폼

UnityWebRequest 시스템은 대부분의 Unity 플랫폼을 다음과 같이 지원합니다.

  • 모든 버전의 에디터 및 스탠드얼론 플레이어
  • WebGL
  • 모바일 플랫폼: iOS, Android
  • 유니버설 Windows 플랫폼
  • PS4 및 PSVita
  • XboxOne
  • Nintendo Switch

아키텍처

UnityWebRequest 생태계에서 HTTP 트랜잭션을 다음과 같이 세 단계의 작업으로 분리합니다.

  • 서버에 데이터 제공
  • 서버에서 데이터 수신
  • HTTP 플로우 컨트롤(예: 리디렉트 및 오류 처리)

이러한 작업은 고급 사용자에게 더 나은 인터페이스를 제공하기 위해 다음과 같이 각각의 자체 오브젝트를 통해 관리됩니다.

  • UploadHandler 오브젝트는 서버로의 데이터 송신을 담당합니다
  • DownloadHandler 오브젝트는 서버에서의 데이터 수신, 버퍼링 및 포스트 프로세스를 담당합니다
  • UnityWebRequest 오브젝트는 위의 두 오브젝트를 관리하고, HTTP 플로우 컨트롤을 담당합니다. 이 오브젝트에서는 커스텀 헤더와 URL이 정의되며, 오류및 리디렉트 정보가 저장됩니다.

모든 HTTP 트랜잭션의 일반 코드 플로우는 다음과 같습니다.

  • 웹 요청 오브젝트 생성
  • 웹 요청 오브젝트 설정
    • 커스텀 헤더 설정
    • HTTP 동사 설정(GET, POST, HEAD 등. 커스텀 동사는 Android용을 제외한 모든 플랫폼에서 사용할 수 있습니다.)
    • URL 설정
  • (선택) 업로드 핸들러를 생성하여 웹 요청에 연결
    • 업로드할 데이터 제공
    • 업로드할 HTTP 양식 제공
  • (선택) 다운로드 핸들러를 생성하여 웹 요청에 연결
  • 웹 요청 보내기
    • 코루틴 내에 있을 경우 Send() 호출 결과를 얻어서 요청이 완료될 때까지 대기 가능
  • (선택) 다운로드 핸들러에서 수신한 데이터 읽기
  • (선택) UnityWebRequest 오브젝트에서의 오류 정보, HTTP 상태 코드 및 리스폰스 헤더 읽기
멀티플레이어 암호화 플러그인
공통 작업: HLAPI 사용