방 속성 컨테이너¶
Strix에는 방 속성과 같은 방 속성이 많이 있으며, 본인의 게임 요건에 따라 커스텀 속성을 별도로 정의할 수 있습니다. 이 방 속성들은 블루프린트 스크립트(또는 C++ 코드)에서 처리할 때 방의 컨테이너 개체에 담깁니다.
Strix Unreal SDK에는 방 속성용 컨테이너가 몇 가지 있습니다.
Strix Property Map 스트럭트¶
Strix Property Map 스트럭트는 Strix Unreal SDK에서 방 속성(과 방 멤버 속성 등 기타 속성)을 담을 때 가장 많이 사용되는 컨테이너입니다. UE 맵 컨테이너와 비슷한 개체지만, 항상 속성의 이름을 나타내는 스트링(String 스트럭트)입니다. 그 값은 상응하는 속성값을 나타냅니다. UE 맵과 달리, 값의 데이터 타입은 균일하지 않습니다. 값이란 Strix 속성이 될 수 있는 몇 가지 데이터 타입 중 하나를 말합니다.
Strix Property Map 스트럭트는 다음 데이터 타입의 속성값을 저장할 수 있습니다.
Byte
Boolean
Integer
Float
String
참고
Byte의 표준 방 속성은 없지만, 커스텀 바이트 속성을 만들 수 있습니다.
Strix Property Map 스트럭트는 원하는 속성값을 SDK에 말할 때, 예컨대 새 방을 만들 때 최초 방 속성값을 지정하기 위해, 또는 SetRoom 함수로 방 속성을 업데이트할 때 새 값을 지정하기 위해 사용됩니다. Strix Unreal SDK는 지원 데이터 타입에 대한 Set <type> Property 함수가 있어 Strix Property Map 스트럭트에서 속성값을 설정할 수 있습니다.
일반적으로, 먼저 (빈) Strix Property Map 스트럭트를 만들고 필수 속성값을 설정한 후 적절한 Strix 함수로 전달합니다.
참고
이 목적으로 Strix Property Map 스트럭트를 이용할 때는 위 그림과 같이 표준 속성과 커스텀 속성을 모두 한 맵 안에 넣습니다. 표준 속성은 이름(Strix Room 스트럭트의 멤버 이름과는 다름. 아래 참조)으로 지정하며, 그 값은 Strix Unreal SDK에서 정의한 데이터 타입이어야 합니다(방 속성 참조). 커스텀 속성의 이름과 데이터 타입은 본인이 지정한 것입니다.
Strix Property Map의 또 다른 용도는 Strix 방처럼 스트럭트에 커스텀 속성을 저장하는 것입니다(아래 참조).
Strix Room과 Strix NodeRoom 스트럭트¶
Strix Room 스트럭트는 방 속성 전용 컨테이너입니다. 여기에는 커스터마이징이 가능한 것을 포함하여 표준 방 속성에 상응하는 멤버 변수가 있으므로, 쉽게 이용할 수 있습니다. 이때, 블루프린트 스크립트에서 본 멤버 변수의 이름은 속성 이름과 다르므로 유의해야 합니다. 예를 들어, memberCount 속성의 멤버 변수 이름은 Member Count입니다. (전체 목록은 방 속성 참조.)
Strix Room 스트럭트는 SDK가 방의 여러 방 속성을 방 서버에서 블루프린트에 노출할 때 이용합니다. 따라서 멤버는 모두 읽기 전용입니다.
참고
Make StrixRoom 블루프린트 노드는 블루프린트 그래프 에디터가 제공하는 것이지만, 속성값을 기본값에서 변경할 수 없습니다. 블루프린트 스크립트에서는 Make StrixRoom 노드를 만들지 마십시오.
Strix Room 스트럭트에서는 C++ 코드로 속성값을 (또는 C++ 용어로 FStrixRoom을) 수정하는 것이 가능합니다. 하지만 권장하지 않습니다. 변경은 오직 로컬을 유지하기 위한 것으로, 변경한 값을 서버나 다른 클라이언트로 쉽게 알리는 방법은 없습니다.
Strix Room 스트럭트에는 멤버 변수 Properties가 있으며, 이것은 커스텀 속성을 저장하는 Strix Property Map입니다. (표준 속성은 Properties에 들어 있지 않습니다.)
Strix Unreal SDK에는 맵에서 커스텀 속성값을 불러오는 Try Get <type> Property 함수가 있습니다. Value 핀이 불러온 속성에 값을 부여합니다.
참고
Try Get <type> Property의 노드는 Result라고 하는 아웃풋 핀이 있습니다. Strix Structure 핀에 공급된 Strix Property Map 스트럭트에서 요청 속성값을 제대로 가져오는지 여부를 표시하는 Boolean 값입니다.
(본인을 포함하여) 클라이언트 누구도 커스텀 방 속성을 정의하지 않았다면 상응하는 Strix Property Map 스트럭트에도 속성은 없습니다. 그 값을 불러오려고 하면 Result 핀은 거짓을 리턴합니다.
또, 속성을 미리 설정했지만 데이터 타입의 값이 Try Get 함수의 데이터 타입과 다르면 Result 핀은 거짓을 리턴하며, 해당 속성값을 가져올 수 없습니다.
데이터 타입이 서로 달라서 생기는 버그를 피하기 위해서는 같은 커스텀 속성에 같은 데이터 타입 값을 사용하는 것이 좋습니다.
Strix Room 스트럭트와 똑같이 Strix NodeRoom 스트럭트를 사용해도 됩니다.