UDN
Search public documentation:
CLIKINIListJP
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 ファイルからリストを満たす方法
概要
スクロールリストやドロップダウンなどを ActionScript で満たすことは非常に簡単です。インスタンス名が dropDownList となっているドロップダウンメニューがあれば、リストを満たすには dataProvider プロパティを使用するだけでよいのです。
dropDownList.dataProvider = ["row1", "row2", "row3", "row4", "row5", "row6", "row7", "row8"];
INI ファイル
UDK コンフィギュレーションファイル (具体的には DeraultUI.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);
/** The drop down menu */ var GFxClikWidget DropDown; /** Structure which defines each option in the list. */ struct Option { var string OptionName; var string OptionLabel; // This will be displayed in the list. var string OptionDesc; };
/** Aray of all list options, defined in 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); // this will be displayed in the list 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 クラスにハードコードされていますが、値を変更することは可能です。 スクロールリストについては、UnrealScript 内で rowCount を手動で指定する必要があります。
MyScrollingList.SetFloat("rowCount",ListOptions.Length);