我已经编写了一个类来检测我的UI上的按钮按下,它什么也没做。当代码运行时,我编写的UI管理器类会查找按钮并将它们存储在列表中。
我遇到的问题是我希望不同的按钮具有不同的功能,但都可以从同一个UI管理器执行。我有一个名为“按钮信息”的第三个类,我想对按钮的函数类进行引用,但我无法弄清楚如何去做。
基本上,我希望按钮类是这样的:
using System.Collections;
using System.Collections.Generic;
public class ButtonInfo
{
public int States;
public int CurrentState;
public int Animations;
public void ButtonFunction<T>(); <--- This is the issue!
}
这是在Unity引擎中,因此无法使用C#的最新功能,但我确信这一定是可行的。
我希望上面这个类中的'ButtonFunction'能够在不具体的情况下携带任何类。
有可能吗?
干杯,
下进行。
答案 0 :(得分:0)
不确定Unity3d是否支持此功能(目前无法测试),但您是否试过这个?
public class ButtonInfo<T>
{
public Action<T> ButtonFunction;
}
或者,如果不支持Action<T>
,请尝试普通代表:
public class ButtonInfo<T>
{
public delegate void ButtonHandler(T param);
public ButtonHandler ButtonFunction;
}
然后您可以像这样分配ButtonFunction(此处应支持Lambda表达式):
var x = new ButtonInfo<string>();
x.ButtonFunction += s => { Debug.Log(s); };