StrixConnectUI

Strix 기능을 사용해 보거나 빠르게 프로토타이핑을 할 때 미리 만들어 둔 프리팹을 사용할 수 있습니다.

StrixConnectUI 프리팹을 이용하면 스크립트 코드를 사용하지 않고도 마스터 서버와 즉시 연결하여 방에 입장하거나 새 방을 만들 수 있습니다.

프리팹 설정

먼저, 프리팹을 장면에 추가해야 합니다. (Assets > Strix > GUI > Scripts 폴더 안에 있습니다.)

StrixConnectUI in Assets folder

이 프리팹에는 StrixConnectPanel이라고 하는 자식 개체가 있으며, 이것은 두 STRIX 스크립트 요소, 즉 StrixConnectGUIStrixEnterRoom에 부착되어 있습니다. 먼저 StrixConnectGUI부터 보겠습니다.

StrixConnectPanel

게임을 실행하기 전에 스크립트의 Host, Port, Application Id 속성을 지정하여 서버에 맞춰야 합니다.

  • Host는 마스터 서버의 주소로, Strix Cloud에서는 마스터 호스트 이름이라고 불립니다.

  • Port는 Strix Cloud를 이용할 때는 항상 9122로 기본값을 이용합니다.

  • Application Id는 애플리케이션 식별에 이용합니다. 이것은 Strix Cloud에서 할당합니다.

서버의 마스터 호스트 이름애플리케이션 ID는 Strix Cloud의 애플리케이션 대시보드에서 확인할 수 있습니다.

인스펙터에서도 이 요소를 이용하여 로그 수준을 조절할 수 있습니다. 로그 수준에 관해서는 로그 수준을 참조해 주십시오.

StrixConnectGUI on Inspector

참고

장면에는 EventSystem이 반드시 있어야 합니다. 없으면 UI 버튼이 작동하지 않습니다. EventSystem을 추가할 때는 [GameObject] > [UI] > [이벤트 시스템] 메뉴를 이용하거나 장면 계층 빈 곳에서 마우스 우클릭을 하고 컨텍스트 메뉴에서 [UI] > [이벤트 시스템]을 선택하면 됩니다.

프리팹 이용

이제 Editor의 플레이 모드에서 (또는 패키지 빌드에서) 장면을 실행할 수 있습니다.

장면이 로드되고 프리팹이 인스턴스화되면 플레이어 이름을 입력하는 필드가 있는 UI와 [Connect] 버튼이 표시됩니다. 이 이름은 방 멤버에 할당됩니다. 이름을 빈 칸으로 놔두면 멤버의 이름도 빈 상태가 됩니다.

[Connect] 버튼을 누르면 스크립트는 마스터 서버에 연결을 시도합니다. 성공하면 기존 방 아무 데나 입장하며, 알맞은 방을 찾지 못하면 새로 만듭니다. 그 후에 UI는 사라집니다.

이제 STRIX 방에 들어가 있어야 합니다. 본인이 (또는 동료가) 같은 서버로 같은 프로그램을 실행하면 역시 같은 방에 있어야 합니다.

참고

빈 장면에 StrixConnectUI 프리팹을 추가하여 실행하면 UI가 사라진 후 별다른 일이 일어나지 않습니다. 장면에 GameObject를, 특히 복제된 것을 더 추가해야 멀티플레이어 게임 플레이가 가능합니다.

방법은 본 가이드의 다른 페이지를 확인해 주십시오.

이벤트

이 프리팹에 있는 두 STRIX 스크립트에는 본인 로직을 추가할 때 이용할 수 있는 이벤트가 몇 가지 있습니다. 이벤트는 모두 UnityEvents로 실행되기 때문에 자체 스크립트로 핸들러를 사용하여 간단히 추가할 수 있습니다.

이용 가능한 이벤트는 다음과 같습니다.

스크립트 요소

이벤트

설명

StrixConnectGUI

OnConnect

마스터 서버에 연결되면 다시 호출됩니다.

StrixEnterRoom

OnRoomEntered

방에 입장하면(가급적이면 만들고 난 후) 다시 호출됩니다

StrixEnterRoom

OnRoomEnterFailed

방에 들어가지 못하면 다시 호출됩니다.

예를 들어, 방에 입장하거나 방을 만든 후에 코드를 실행하고 싶다면 핸들러를 사용하여 인스펙터를 통해 OnRoomEntered 이벤트에 추가해도 됩니다.

OnRoomEntered and OnRoomEnterFailed

단, StrixConnectUI의 이벤트를 처리하는 스크립트를 StrixConnectUI 프리팹의 GameObject 또는 자식 GameObject에 연결할 경우, 스크립트는 마스터 서버가 연결되고 이벤트 핸들러가 모두 실행되는 동시에 비활성화됩니다. 예를 들어, 스크립트에서 코루틴을 시작하는 경우, 스크립트를 별도 GameObject에 연결해야 합니다.

StrixConnectGUI.OnConnect에는 이미 StrixEnterRoom.EnterRoom()이라는 핸들러가 있습니다. 이 때문에 마스터 서버에 연결되면 즉시 방에 입장하게 됩니다. 이 핸들러는 다른 핸들러(예: StrixRoomList 프리팹이 제공하는 것)로 교체하지 않는 한 계속 갖고 있어야 합니다.

WebGL 플랫폼에서 이용하기

Strix Unity SDK 버전 1.5.0부터, StrixConnectGUI 스크립트의 Host 속성에서 URL 스타일 스트링을 지정할 수 있습니다. WebGL 애플리케이션에는 이 프리팹을 이용하는 것이 좋습니다.

인스펙터에서 Host에 URL 스타일 스트링을 입력하면 Port 필드가 회색으로 변합니다. 포트 번호는 Host 스트링에서 가져오기 때문입니다. URL 스타일 호스트 스트링에서 포트 번호를 생략하면 지정된 프로토콜의 기본값이 사용됩니다.

예를 들면, Strix Cloud에서 안전한 WebSocket 연결을 이용하도록 구성된 마스터 서버에 연결할 때는 Host"wss://000000000000000000000000.game.strixcloud.net:9122"와 같은 스트링을 설정해도 됩니다.

Example Inspector behavior for a URL-style host string

URL 스타일 스트링의 구문은 URL 기반 연결을 참조해 주십시오. WebGL 지원에 관한 자세한 사항은 HTML5와 WebGL 클라이언트 만드는 방법을 참조해 주십시오.