Files
beyond/Assets/ThirdParty/PlayMaker/Actions/UI/UiDropDownAddOptions.cs
2024-11-20 15:21:28 +01:00

71 lines
1.7 KiB
C#

// (c) Copyright HutongGames, LLC 2010-2018. All rights reserved.
#if UNITY_5_3 || UNITY_5_3_OR_NEWER
using UnityEngine;
using System.Collections.Generic;
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory(ActionCategory.UI)]
[Tooltip("Add multiple options to the options of the Dropdown UI Component")]
public class UiDropDownAddOptions : ComponentAction<UnityEngine.UI.Dropdown>
{
[RequiredField]
[CheckForComponent(typeof(UnityEngine.UI.Dropdown))]
[Tooltip("The GameObject with the UI DropDown component.")]
public FsmOwnerDefault gameObject;
[Tooltip("The Options.")]
[CompoundArray("Options","Text","Image")]
public FsmString[] optionText;
[ObjectType(typeof(Sprite))]
public FsmObject[] optionImage;
private UnityEngine.UI.Dropdown dropDown;
private List<UnityEngine.UI.Dropdown.OptionData> options;
public override void Reset()
{
gameObject = null;
optionText = new FsmString[1];
optionImage = new FsmObject[1];
}
public override void OnEnter()
{
var go = Fsm.GetOwnerDefaultTarget(gameObject);
if (UpdateCache(go))
{
dropDown = cachedComponent;
}
DoAddOptions ();
Finish();
}
private void DoAddOptions()
{
if (dropDown==null) return;
options = new List<UnityEngine.UI.Dropdown.OptionData> ();
for (var i = 0; i < optionText.Length; i++)
{
var text = optionText[i];
options.Add(
new UnityEngine.UI.Dropdown.OptionData
{
text = text.Value,
image = optionImage[i].RawValue as Sprite
}
);
}
dropDown.AddOptions (options);
}
}
}
#endif