我正在尝试学习如何使用委托功能,而且在传递参数时我似乎遇到了问题。有人可以建议一个简单的方法吗?我已经在这里阅读了一些教程,但他们遇到了LINQ的复杂问题,我宁愿避免这样做。
public delegate void DelegateFunction(int levelType, string levelName);
public DelegateFunction delegateFunction;
public void LoadMap(int levelType, string levelName)
{
gameManager.levelType = levelType;
gameManager.started = false;
Application.LoadLevel(levelName);
}
void OnCollisionEnter2D(Collision2D collision)
{
if(collision.gameObject.tag == "ZoneTransport")
{
delegateFunction+= LoadMap(0, "MainMap");//incorrect and will not compile
}
}
答案 0 :(得分:0)
您可以使用此类代码:
if(collision.gameObject.tag == "ZoneTransport")
{
delegateFunction = LoadMap;
delegateFunction(0, "MainMap");
}
虽然如果您正在使用代表,那么最好直接调用函数。