我知道这不应该是个大问题,但出于某种原因,我的Unity项目中的Foreach循环不会编译。据我所知,它完全遵循语法,但Unity在编译时会抛出10个语法错误。我尝试重新启动Unity和我的电脑,但问题依然存在。我已经注释掉了循环,代码编译得非常完美,所以我知道这就是问题的根源。
以下是完整的方法:
List<GameObject> GetTargets() { List<GameObject> targets = new List<GameObject>(); GameObject[] potential_targets; potential_targets = GameObject.FindGameObjectsWithTag("Enemy Object"); foreach (GameObject object in potential_targets) { if (Vector2.Distance(transform.position, object.transform.position) <= firingRangeDistance) { targets.Add(object); } } return targets; }
知道问题是什么吗?
我想问题可能是 object 是c#的关键字,你可以尝试使用@来转义 keyword ,否则使用其他名称而不是 对象
object
对象
foreach (GameObject @object in potential_targets) { if (Vector2.Distance(transform.position, @object.transform.position) <= firingRangeDistance) { targets.Add(@object); } }