C# 无法在此作用域中声明,因为该名称在封闭的本地作用域中使用
我希望能够实例化一个对象,然后给它的所有子对象一个脚本C# 无法在此作用域中声明,因为该名称在封闭的本地作用域中使用,c#,unity3d,C#,Unity3d,我希望能够实例化一个对象,然后给它的所有子对象一个脚本 public void buildTownHall() { GameObject TownHallBuilding = Instantiate(townhall, pos, Quaternion.Euler(new Vector3(0, 0, 0))); foreach (Transform TownHallBuilding in transform) { TownHallBui
public void buildTownHall()
{
GameObject TownHallBuilding = Instantiate(townhall, pos, Quaternion.Euler(new Vector3(0, 0, 0)));
foreach (Transform TownHallBuilding in transform)
{
TownHallBuilding.gameObject.AddComponent<ChangeColorChild>();
}
TownHallBuilding.AddComponent<ChangeColor>();
TownHallBuilding.SetActive(true);
}
public void building townhall()
{
GameObject TownHallBuilding=实例化(townhall,pos,Quaternion.Euler(新向量3(0,0,0));
foreach(在变换中变换市政厅建筑)
{
TownHallBuilding.gameObject.AddComponent();
}
TownHallBuilding.AddComponent();
Townhall Building.SetActive(真);
}
但我一直收到标题中的错误信息
GameObject TownHallBuilding = Instantiate(... // TownHallBuilding #1
foreach (Transform TownHallBuilding in transform) // TownHallBuilding #2
你不能两者兼得
顺便说一句,局部变量通常以普通字母开头(不是大写)
也许foreach应该是:
foreach (Transform t in transform)
{
// Use t
}
你有
TownHallBuilding
作为GameObject
和Transform
@LarsTech我会改变什么,我会假设它是这个foreach(GameObject TownHallBuilding in Transform){TownHallBuilding.GameObject.AddComponent();}但是,它仍然有相同的errorMessage,意思与它所说的完全相同。不能在同一范围内声明两个名称相同的不同事物。请参阅副本。