我正在使用 Unity 并努力制作一个自定义 SelectableButton,该按钮将方法存储在两个不同的委托中,并在选择按钮时执行一个,在取消选择时执行另一个。相关部分显示如下:
public delegate void OnSelectAction();
public delegate void OnDeselectAction();
public class SelectableButton : MonoBehaviour
{
private bool selected;
public OnSelectAction onSelect;
public OnDeselectAction onDeselect;
public bool Selected
{
get { return selected; }
set
{
selected = value;
if(selected)
onSelect();
else
onDeselect();
}
}
}
Run Code Online (Sandbox Code Playgroud)
在另一个脚本中,我尝试在 onSelect 中封装一个方法,在 onDeselect 中封装另一个方法。
for(int i = 0; i < racesData.RaceList.Count; i++)
{
selectableButton.onSelect = Select(racesData.RaceList[i]);
selectableButton.onDeselect = Deselect(racesData.RaceList[i]);
}
public void Select(Race race)
{
// Does its selection stuff
} …Run Code Online (Sandbox Code Playgroud)