127 lines
3.4 KiB
C#
127 lines
3.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using UnityEngine.EventSystems;
|
|
using UnityEngine.Events;
|
|
|
|
namespace Assets.Scripts.UI.Control
|
|
{
|
|
public class PFUIDropdown : PFUIComponentBase
|
|
{
|
|
private int mSelectedIndex = 0;
|
|
public int SelectedIndex
|
|
{
|
|
get
|
|
{
|
|
return this.mSelectedIndex;
|
|
}
|
|
}
|
|
|
|
//public int Value
|
|
//{
|
|
// get
|
|
// {
|
|
// return this.GetComponent<Dropdown>().value;
|
|
// }
|
|
// set
|
|
// {
|
|
// this.GetComponent<Dropdown>().value = value;
|
|
// }
|
|
//}
|
|
|
|
public string SelectedItem
|
|
{
|
|
get
|
|
{
|
|
if(this.mSelectedIndex >= 0)
|
|
{
|
|
return this.GetComponent<Dropdown>().options[this.mSelectedIndex].text;
|
|
}
|
|
return null;
|
|
}
|
|
}
|
|
|
|
private UnityAction<int> mOnValueChange;
|
|
public UnityAction<int> OnValueChange
|
|
{
|
|
get
|
|
{
|
|
return mOnValueChange;
|
|
}
|
|
set
|
|
{
|
|
mOnValueChange = value;
|
|
|
|
}
|
|
}
|
|
|
|
void Awake()
|
|
{
|
|
//this.mSelectedIndex =
|
|
//UIManager.AddEvent(this.transform.GetComponent<Image>().gameObject, EventTriggerType.Select, new UnityEngine.Events.UnityAction<BaseEventData>(OnSelect));
|
|
//UIManager.AddEvent(this.transform.GetComponent<Image>().gameObject, EventTriggerType.Deselect, new UnityEngine.Events.UnityAction<BaseEventData>(OnDeselect));
|
|
|
|
this.GetComponent<Dropdown>().onValueChanged.AddListener(i => {
|
|
mSelectedIndex = i;
|
|
if (OnValueChange != null)
|
|
{
|
|
mOnValueChange(i);
|
|
}
|
|
});
|
|
}
|
|
|
|
public void OnSelect(BaseEventData eventData)
|
|
{
|
|
var image = this.transform.GetComponent<Image>();
|
|
var png = Resources.Load<Sprite>("Images/ipt-1");
|
|
image.sprite = png;
|
|
}
|
|
public void OnDeselect(BaseEventData eventData)
|
|
{
|
|
var image = this.transform.GetComponent<Image>();
|
|
var png1 = Resources.Load<Sprite>("Images/ipt-0");
|
|
image.sprite = png1;
|
|
}
|
|
|
|
|
|
public void AddOptions(List<Dropdown.OptionData> options)
|
|
{
|
|
this.GetComponent<Dropdown>().AddOptions(options);
|
|
}
|
|
|
|
public void AddOptions(List<string> options)
|
|
{
|
|
this.GetComponent<Dropdown>().AddOptions(options);
|
|
}
|
|
|
|
public void ClearOptions()
|
|
{
|
|
this.GetComponent<Dropdown>().ClearOptions();
|
|
}
|
|
|
|
|
|
public void SelectIndex(int index)
|
|
{
|
|
this.GetComponent<Dropdown>().value = index;
|
|
this.mSelectedIndex = index;
|
|
}
|
|
|
|
public void SelectValue(string value)
|
|
{
|
|
var options = this.GetComponent<Dropdown>().options;
|
|
for (int i = 0; i < options.Count; i++)
|
|
{
|
|
if(options[i].text == value)
|
|
{
|
|
SelectIndex(i);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|