HTML5와 WebGL 클라이언트 만드는 방법

Unity는 WebGL 플랫폼을 타깃으로 지원하며, 이를 통해 사용자는 HTML5 기술과 WebGL 그래픽 렌더링 서브시스템을 이용하여 웹 브라우저에서 Unity 애플리케이션을 실행할 수 있습니다. Strix Unity SDK 버전 1.5.0부터는 WebGL 플랫폼용 STRIX 클라이언트를 구축할 수 있습니다.

A screenshot of a sample game running on a web browser using WebGL

서버 구성

STRIX 클라이언트를 WebGL 플랫폼에서 실행하기 위해서는 WebSocket 프로토콜을 사용해야 합니다. 마스터 서버와 방 서버는 WebSocket 연결을 이용하도록 구성해야 합니다. 필요에 따라 일반 WebSocket(ws)을 사용해도 되고 보안 WebSocket(wss)을 사용해도 됩니다.

Strix Cloud에서는 일반 WebSocket을 사용할 수 없으며 [클러스터 만들기] 또는 [서버 구성하기] 팝업의 [프로토콜] 드롭다운에서 항상 "WSS"(보안 WebSocket)을 선택해야 합니다.

참고

[프로토콜] 드롭다운은 [클러스터 만들기] 팝업에 숨어 있으며, 보려면 옵션 더 보기를 클릭합니다.

자세한 사항은 Strix Cloud 사용자 가이드 <https://www.strixengine.com/doc/cloud/guide/ko/>를 참조해 주십시오.

그 외에 Strix Cloud에서 WebSocket을 이용하기 위해 필요한 설정은 없습니다.

WebSocket을 통한 연결

인수가 셋인 StrixNetwork.ConnectMasterServer 메서드(port 인수가 없는 것)로 WebSocket을 이용하여 마스터 서버에 연결합니다. host 스트링은 다음 패턴 중 하나로 해야 합니다.

  • ws://master-hostname[:port][/path] (일반 WebSocket 연결)

  • wss://master-hostname[:port][/path] (보안 WebSocket 연결)

Strix Cloud를 이용할 경우 포트는 항상 9122로 하고 경로는 이용하지 않습니다. host 스트링을 구성할 때는 애플리케이션 대시보드에 있는 [마스터 호스트 이름]만 체크하면 됩니다. 마스터 호스트 이름이 000000000000000000000000.game.strixcloud.net인 경우, host 스트링은 다음과 같습니다.

  • wss://000000000000000000000000.game.strixcloud.net:9122

예시

string masterHostUrl = "wss://000000000000000000000000.game.strixcloud.net:9122";

StrixNetwork.instance.ConnectMasterServer(masterHostUrl, successHandler, failureHandler);

방 서버와 연결할 때는 마스터 서버가 클라이언트에게 프로토콜을 알려주며, SDK는 그것을 자동으로 이용합니다. 방 서버 연결 시 WebSocket의 이용에 관해서는 걱정할 필요가 없습니다. 단, 방 서버에 수동으로 연결할 경우 RoomInfo.protocol을 연결 프로토콜로 이용해야 합니다.

참고

게임을 WebGL 플랫폼용으로 구축할 의도라면 항상 StrixNetwork.ConnectMasterServerhost 매개변수에서 ws:// 또는 wss://을 지정해야 합니다.

host 매개변수에서 이 프로토콜을 생략할 경우, 즉 마스터 hostname에만 속하는 스트링, 예컨대, "000000000000000000000000.game.strixcloud.net"을 지정할 경우, 기본 프로토콜은 스크립트가 실행 중인 플랫폼에 따라 달라집니다. WebGL에 맞춰 구축된 프로그램은 웹브라우저에서 처음 시작할 때 WebSocket을 이용하여 마스터 서버에 연결을 시도합니다. 단 프로그램을 Unity에서 플레이 모드로 실행하면 프로토콜은 TCP가 기본으로 설정되며, WebSocket을 이용하도록 구성된 마스터 서버에는 연결할 수 없습니다.

wss://000000000000000000000000.game.strixcloud.net:9122를 지정하면 ConnectMasterServer는 플레이 모드일 때를 포함해 항상 안전한 WebSocket을 이용하여 연결합니다.

플랫폼 간 매치메이킹

게임은 WebGL 플랫폼과 다른 플랫폼용으로 동시에 출시하여 플랫폼 간 매치메이킹을 허용할 수 있습니다.

이 경우 플랫폼 버전을 불문하고 ws:// 또는 wss://로 시작하는 동일한 host 스트링을 이용하여 마스터 서버에 연결해야 합니다.

WebGL 플랫폼용 패키징

게임을 WebGL 플랫폼에 맞춰 구축할 때는 Unity의 WebGL용 일반 패키징 프로세스를 따라야 합니다. 즉 [빌드 설정]의 [플랫폼] 대화상자에서 WebGL을 선택하고 나머지 설정은 기본값으로 둬야 합니다.

WebGL 플랫폼에서 Strix Unity SDK를 이용할 때 필요한 별도 설정은 없습니다.

기타 고려사항

  • Strix Unity SDK 버전 1.5.0 이상을 WebGL 플랫폼과 함께 이용해야 합니다. 이전 버전은 WebSocker를 지원하지 않으며, WebGL 플랫폼과 호환되지도 않습니다.

  • WebGL 플랫폼에 Strix Cloud를 이용하기 위해서는 애플리케이션의 Strix 서버 버전을 1.3.0 이상으로 설정해야 합니다. Strix 서버 버전 드롭다운은 Strix Cloud 애플리케이션 대시보드의 [옵션] 페이지에 있습니다. (Strix Cloud 사용자 가이드 참조.)

  • Unity는 공식적으로 WebGL 플랫폼을 지원하지만 WebGL만의 단점이 있고 일부 Unity 기능에는 제한도 있습니다. WebGL 지원에 관해서는 관련 Unity 문서를 참조해 주십시오. 특히, Unity 문서에는 Unity WebGL은 모바일 기기를 지원하지 않습니다라고 나와 있습니다.

    참고

    Strix Unity SDK는 WebGL PC 클라이언트와 네이티브 모바일 클라이언트 간에 서로 플랫폼을 바꿔 운용할 수 있습니다. 따라서 게임도 그런 식으로 릴리스할 수 있습니다.

  • 사용자의 웹 브라우저가 WebGL 클라이언트를 다운로드할 웹 서버가 필요합니다. Strix Cloud에는 이 서버가 없으므로 별도 사이트가 필요합니다.