Unity C#StartCoroutines - 是否可以将字符串放入StartCoroutine

时间:2016-07-31 16:25:46

标签: c# unity3d 2d-games

我在不同的类中使用StartCoroutines,问题是我需要将其调用为动态的类。 LevelSelected = "Camera.GetComponent<Level"+levelnumber+">().Pattern1()";

LevelSelected是一个字符串,levelnumber是level(int),我希望它从该类中获取枚举器函数。级别编号取决于玩家在开始菜单上选择的级别。

我遇到的问题是...如果我将所需内容输出到字符串中。

`StartCoroutine (LevelSelected);`

错误地说 - Coroutine&#39; Camera.GetComponent()。Pattern2()&#39;无法开始!但是当我对这个值进行硬编码时,它的工作正常......

有没有办法解决这个问题?

谢谢, 克雷格

1 个答案:

答案 0 :(得分:0)

我相当确定你正在那里进行非法行动 GetComponent&LT;&GT;只能使用对类名的直接引用。 不要试图在字符串中输入值,而是执行以下操作:

var levelScript = Camera.GetComponent<Level>();
StartCoroutine(levelScript.Pattern(levelnumber));

在你的模式函数中将其更改为类似

IEnumerator Pattern(int levelnumber)
{

}