代码之家  ›  专栏  ›  技术社区  ›  XFMW

为什么我的foreach循环不能统一编译?[重复]

  •  0
  • XFMW  · 技术社区  · 2 年前

    我知道这不应该是个大问题,但出于某种原因,我的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;
    }
    

    知道问题是什么吗?

    1 回复  |  直到 2 年前
        1
  •  1
  •   D-Shih    2 年前

    我想问题可能是 object 是c#的关键字,你可以尝试使用@来转义 keyword ,否则使用其他名称而不是 对象

    foreach (GameObject @object in potential_targets)
    {
        if (Vector2.Distance(transform.position, @object.transform.position) <= firingRangeDistance)
        {
            targets.Add(@object);
        }
    }