UDN
Search public documentation:
CLIKINIListKR
English Translation
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
ini 파일에서 목록 채우는 법
문서 변경내역: James Tan 작성. 홍성진 번역.
개요
ActionScript 에서 스크롤 목록, 드롭다운 등을 채우는 것은 꽤나 쉽습니다. 인스턴스 이름이 "dropDownList" 라는 드롭 다운 메뉴가 있다 가정한다면, 'dataProvider' 프로퍼티를 사용해서 그 목록을 채우기만 하면 됩니다:
dropDownList.dataProvider = ["row1", "row2", "row3", "row4", "row5", "row6", "row7", "row8"];
INI 파일
UDK 환경설정 파일, 특히 DefaultUI.ini 를 통해 목록을 채울 것입니다. 파일을 열고 맨밑에 이렇게 추가합니다. (주: 여기서는 드롭 다운 목록이 들어있는 클래스가 SFMenuTutorial 이라 가정합니다):
[UTGame.SFMenuTutorial] +ListOptions=(OptionName="Option 1",OptionLabel="Cool",OptionDesc="Something cool.") +ListOptions=(OptionName="Option 2",OptionLabel="Awesome",OptionDesc="Something awesome.") +ListOptions=(OptionName="Option 3",OptionLabel="Amazing",OptionDesc="Something amazing.")
Unrealscript
이제 드롭다운 스크롤 목록이 들어있는 UnrealScript 파일(제 경우는 SFMenuTutorial)에서, 환경설정 선언 부분에 UI 파일을 꼭 포함시키도록 하십시오. 이건 보통 환경설정 파일 이름에서 "Default" 부분을 뺀 것입니다. "DefaultUI.ini" 의 경우엔 이렇게, "UI" 만 쓰면 되겠죠:
class SFMenuTutorial extends GFxMoviePlayer config(UI);
/** 드롭 다운 메뉴입니다. */ var GFxClikWidget DropDown; /** 목록의 각 옵션을 정의하는 구조체입니다. */ struct Option { var string OptionName; var string OptionLabel; // 목록에는 이것이 표시됩니다. var string OptionDesc; };
/** 모든 목록 옵션 배열로, DefaultUI.ini 에 정의된 것입니다. */ var config array<Option> ListOptions;
event bool WidgetInitialized(name WidgetName, name WidgetPath, GFxObject Widget) { switch(WidgetName) { case ('dropDownList'): DropDown = GFxClikWidget(Widget); SetUpDataProvider(DropDown); break; default: break; } return true; }
function SetUpDataProvider(GFxClikWidget Widget) { local byte i; local GFxObject DataProvider; local GFxObject TempObj; DataProvider = CreateArray(); switch(Widget) { case(DropDown): for (i = 0; i < ListOptions.Length; i++) { TempObj = CreateObject("Object"); TempObj.SetString("name", ListOptions[i].OptionName); TempObj.SetString("label", ListOptions[i].OptionLabel); // 목록에는 이것이 표시됩니다. TempObj.SetString("desc", ListOptions[i].OptionDesc); DataProvider.SetElementObject(i, TempObj); } } Widget.SetObject("dataProvider", DataProvider); }
defaultproperties { WidgetBindings.Add((WidgetName="dropDownList",WidgetClass=class'GFxClikWidget')) }
부록
드롭 다운 목록이 있으면 표시되는 열의 수는 자동으로 변합니다. 즉 옵션이 5 줄 미만, 이를테면 3 줄 있다 친다면, 목록에는 3 줄만 표시됩니다. 최대로는 5 줄까지, 'DropdownMenu.as' 에 하드코딩된 대로인데, 물론 변경 가능합니다. ScrollingList 의 경우, UnrealScript 에 수동으로 rowCount 를 다음과 같이 지정해 줘야 합니다:
MyScrollingList.SetFloat("rowCount",ListOptions.Length);