NetworkServerSimple
공통 작업: HLAPI 사용(Common operations: using the HLAPI)

UnityWebRequest

Note: UNet is deprecated, and will be removed from Unity in the future. A new system is under development. For more information and next steps see this blog post and the FAQ.

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 상태 코드 및 리스폰스 헤더 읽기

• 2017–05–16 편집 리뷰 없이 페이지 수정됨

NetworkServerSimple
공통 작업: HLAPI 사용(Common operations: using the HLAPI)