public override void Open(DialogShowMenuSettings settings, Action <int> onSelected) { activationTarget?.SetActive(true); Items = settings.Items; Labels = new Text[Items.Length]; OnSelected = onSelected; //Clear int childCount = menuRoot.childCount; for (int i = 0; i < childCount; i++) { Destroy(menuRoot.GetChild(i).gameObject); } //Add for (int i = 0; i < Items.Length; i++) { var item = Instantiate(menuItemTemplate, menuRoot); item.SetActive(true); Labels[i] = item.GetComponent <Text>(); } CursorPosition = 0; UpdateLabels(); openTimer = Time.time; }
public void ShowMenu(DialogShowMenuSettings settings, Action <int> onSelected) { if (CurrentProvider == null) { throw new NullReferenceException("有効なDialogPlayerがありません。"); } CurrentProvider.ShowMenu(settings, onSelected); }
public override void Execute(EventExecutionContext context, CommandExecutionHandle handle) { var dialog = context.GetModule <DialogModule>(); if (dialog == default) { context.RaiseError(new ScriptExecutionException("DialogSessionが登録されていません。")); return; } string[] items = bifurcations.Select(b => b.Label).ToArray(); var settings = new DialogShowMenuSettings(items); dialog.ShowMenu(settings, (index) => { var script = new EventScript(); script.WaitForAllCommands = false; script.CommandList = bifurcations[index].CommandList; context.InsertInherit(script, handle.Complete); }); }
public abstract void ShowMenu(DialogShowMenuSettings settings, Action <int> onSelected);
public override void ShowMenu(DialogShowMenuSettings settings, Action <int> onSelected) { menuWindow.Open(settings, onSelected); }