小编McG*_*777的帖子

用于 OnSelect 和 OnDeselect 的委托

我正在使用 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)

c# delegates unity-game-engine

5
推荐指数
1
解决办法
608
查看次数

标签 统计

c# ×1

delegates ×1

unity-game-engine ×1