이 가이드는 에디터에서 바로 변경할 수 있어 Verse 코드를 수정할 필요가 없는 프로퍼티를 노출함으로써 Verse 장치를 더욱 커스터마이징하기 용이하게 만드는 방법을 보여줍니다.
이 접근법의 장점은 다음과 같습니다.
- 더 빠른 반복작업: 코드 변경 없이 포크리 장치에서 다양한 환경설정을 테스트합니다.
- 재사용 가능성: 동일한 장치를 다양한 프로퍼티와 값으로 재사용합니다. 예를 들어 에디터에 노출된
logic
타입 프로퍼티를 기반으로 특정 행동을 활성화할 수 있습니다. - 단순화: 코드로 들어가서 작동 원리를 살펴보는 대신 프로퍼티를 기반으로 장치가 어떻게 사용되는지 빠르게 파악합니다.
에디터에 변수 노출하기
변수를 에디터에 편집 가능 프로퍼티로 노출하려면 editable
어트리뷰트를 변수에 추가합니다.
다음 단계를 따라 에디터에 변수를 노출하세요.
- Verse 장치를 레벨에 추가했는지 확인하세요. 레벨에 Verse 장치 추가하기에서 단계를 확인하세요.
- Verse 장치 정의의 일부인 변수에 편집 가능 어트리뷰트를 추가합니다. 다음 예시에서 string 필드
GreetingMessage
는 편집 가능 프로퍼티이며 디폴트값은"Hello, stranger"
입니다.using { /Fortnite.com/Devices } using { /Verse.org/Simulation } hello_world_device := class(creative_device): @editable GreetingMessage:string = "Hello, stranger"
- 코드를 컴파일하여 레벨에서 Verse 장치를 업데이트합니다.
- UEFN 아웃라이너 에서 Verse 장치를 선택하여 디테일 패널을 엽니다.
- 장치의 디테일 패널을 보면, 이제 Verse 장치에
GreetingMessage
프로퍼티가 있고, 장치의 이 인스턴스에 대한 스트링 값을 변경할 수 있습니다.
편집 가능 프로퍼티의 값을 변경하면 장치의 해당 인스턴스만 변경됩니다. 레벨에 다수의 Verse 장치가 있다면, 장치마다 이 프로퍼티에 대한 값이 다를 수 있습니다.
레벨의 포크리 장치에 Verse 레퍼런스 추가하기
레벨의 포크리 장치에 레퍼런스를 구성하려면 다음 단계를 따르세요.
- Make sure your Verse device is added to your level. See Adding Your Verse Device to Your Level for steps.
- Verse 장치 정의의 일부인 포크리 장치 변수에 편집 가능 어트리뷰트를 추가합니다. 다음 예시에서 버튼 장치 필드
MyButtonDevice
는 편집 가능 프로퍼티이며 디폴트값은button_device{}
지만, 레벨의 버튼 장치에 연결되어 있지 않습니다.using { /Fortnite.com/Devices } using { /Verse.org/Simulation } hello_world_device := class(creative_device): @editable MyButtonDevice:button_device = button_device{}
- 코드를 컴파일하여 레벨에서 Verse 장치를 업데이트합니다.
- UEFN 아웃라이너 에서 Verse 장치를 선택하여 디테일 패널을 엽니다.
- 장치의 디테일 패널을 보면, 이제 Verse 장치에
MyButtonDevice
프로퍼티가 있습니다. - 레벨의 버튼 장치를 선택하여 Verse 장치로 다음을 참조할 수 있습니다.
- Pick Actor from scene 을 선택하여 뷰포트에서 장치를 고르거나
- 드롭다운을 사용하여 참조하고자 하는 장치를 검색합니다.
에디터에 배열 노출하기
Verse 장치의 일부이며 크기 변경 가능한 배열을 에디터에 노출할 수 있습니다. 다음 예시에서는 MyButtonDevices
라는 편집 가능 button_device
배열 필드를 추가합니다.
- Verse 장치를 레벨에 추가했는지 확인하세요. 레벨에 Verse 장치 추가하기에서 단계를 확인하세요.
- Verse 장치 정의의 일부인 포크리 장치 배열 변수에 편집 가능 어트리뷰트를 추가합니다. 다음 예시에서는 버튼 장치 배열 필드
MyButtonDevices
가 편집 가능 프로퍼티이며 빈 배열입니다.using { /Fortnite.com/Devices } using { /Verse.org/Simulation } hello_world_device := class(creative_device): @editable MyButtonDevices:[]button_device = array{}
- 코드를 컴파일하여 레벨에서 Verse 장치를 업데이트합니다.
- UEFN 아웃라이너 에서 Verse 장치를 선택하여 디테일 패널을 엽니다.
- 장치의 디테일 패널을 보면, 이제 Verse 장치에 엘리먼트가 없는 배열 프로퍼티 MyButtonDevices 가 있습니다.
-
엘리먼트 추가(Add Element) 를 클릭하여 MyButtonDevices 배열에 엘리먼트를 추가합니다.
에디터의 배열에서 엘리먼트를 제거하고 싶은 경우
- 모든 엘리먼트 제거(Remove All Elements) 를 선택하여 배열의 모든 엘리먼트를 삭제하거나
- 엘리먼트의 추가 액션을 확장하고 삭제(Delete) 를 선택하여 개별 엘리먼트를 삭제하면 됩니다.
레벨에 배치한 hello_world_device 장치의 각 사본은 MyButtonDevices
에 대한 편집 가능 값을 가지며, 이를 사용하여 Verse 장치가 어떤 버튼 장치를 참조할지를 변경할 수 있습니다.
에디터에 커스텀 유형 노출하기
클래스 같은 커스텀 유형을 편집 가능 프로퍼티로서 에디터에 노출할 수 있습니다.
- Verse 장치를 레벨에 추가했는지 확인하세요. 레벨에 Verse 장치 추가하기에서 단계를 확인하세요.
- 클래스 정의에
concrete
지정자를 추가합니다. 모든 필드를 초기화해야 에디터에 나타날 수 있기 때문에concrete
지정자가 필요합니다.example := class<concrete>: MyData:float = 0.0 MyDevice:button_device = button_device{} IsEnabled:logic = false
- 에디터에서 편집 가능 프로퍼티가 되었으면 하는 클래스의 각 변수에
editable
어트리뷰트를 추가합니다.example := class<concrete>: @editable MyData:float = 0.0 @editable MyDevice:button_device = button_device{} IsEnabled:logic = false
- Verse 장치 정의에서 커스텀 유형으로 변수를 정의하고 에디터에서 나타나도록
editable
어트리뷰트를 추가합니다.using { /Fortnite.com/Devices } using { /Verse.org/Simulation } example := class<concrete>: @editable MyData:float = 0.0 @editable MyDevice:button_device = button_device{} IsEnabled:logic = false hello_world_device := class(creative_device): @editable MyExample:example = example{}
- 코드를 컴파일하여 레벨에서 Verse 장치를 업데이트합니다.
- UEFN 아웃라이너 에서 Verse 장치를 선택하여 디테일 패널을 엽니다.
- 장치의 디테일 패널을 보면, 이제 Verse 장치에
MyExample
섹션이 있습니다. MyExample
섹션을 확장하여 MyData 및 MyDevice 프로퍼티를 확인합니다.IsEnabled
프로퍼티는editable
프로퍼티가 없기 때문에 나타나지 않습니다.
편집 가능 프로퍼티를 커스텀 유형의 배열로 만들면 Verse 장치에 제공하는 정보가 유연성이 더해집니다. 예를 들어, 장치 레퍼런스로 자신만의 게임보드 클래스를 정의할 수 있습니다. Verse 장치에 있는 이러한 게임보드의 배열은 게임의 레벨 수를 마음대로 선택하고, 저마다 독특한 구성이 가능하다는 뜻입니다. 클래스의 정의에 편집 가능 배열을 정의함으로써 정보에 확장성과 커스터마이징을 더할 수도 있습니다.
지원되는 편집 가능 유형
현재 편집 가능한 프로퍼티로 에디터에 노출될 수 있는 타입은 다음과 같습니다.
다음 단계: Verse 및 장치 이벤트
Verse로 장치를 제어하는 방법을 간단히 살펴봤지만 아직 배울 내용이 많습니다. 장치 상호작용 코딩에서 장치를 더 커스터마이징하는 방법을 알아보세요. 버튼 등 장치가 전송하는 이벤트에 반응하여 플레이어의 액션에 반응하는 다이내믹한 게임플레이 경험을 만드는 방법을 설명합니다.