如何在声明之前使用本地对象?
How to use a local object before it is declared?
我正在做一个 if 语句,我正在尝试检查一个游戏对象是否存在,如果它确实存在,我想销毁它然后重新创建它。
如果它不存在,我想创建它。
我得到的错误是在未声明之前无法使用局部变量。
我之前尝试过声明它,但后来它说不能使用封闭的本地范围。
如何在声明或作用域之前使用变量?
这是我的代码。
if (x > 25)
{
if (newGameObject.scene.IsValid())
{
Destroy(newGameObject);
GameObject newGameObject = GameObject.Instantiate(object1);
}
else
{
GameObject newGameObject = GameObject.Instantiate(object1);
}
}
先全局声明。
GameObject obj;
然后在一个方法上你可以初始化它。
public void try()
{
obj = new GameObject();
}
如果已经存在一个名为 "newGameObject" 的新变量,则无法创建该变量。
那么 TerribleDog 的建议是您在 class 级别声明 属性。
class YourClass: MonoBehaviour
{
GameObject newGameObject
void SomeMethod
{
Destroy(newGameObject);
//Then here just set the class level property
newGameObject = GameObject.Instantiate(object1);
}
}
我正在做一个 if 语句,我正在尝试检查一个游戏对象是否存在,如果它确实存在,我想销毁它然后重新创建它。 如果它不存在,我想创建它。
我得到的错误是在未声明之前无法使用局部变量。 我之前尝试过声明它,但后来它说不能使用封闭的本地范围。
如何在声明或作用域之前使用变量?
这是我的代码。
if (x > 25)
{
if (newGameObject.scene.IsValid())
{
Destroy(newGameObject);
GameObject newGameObject = GameObject.Instantiate(object1);
}
else
{
GameObject newGameObject = GameObject.Instantiate(object1);
}
}
先全局声明。
GameObject obj;
然后在一个方法上你可以初始化它。
public void try()
{
obj = new GameObject();
}
如果已经存在一个名为 "newGameObject" 的新变量,则无法创建该变量。
那么 TerribleDog 的建议是您在 class 级别声明 属性。
class YourClass: MonoBehaviour
{
GameObject newGameObject
void SomeMethod
{
Destroy(newGameObject);
//Then here just set the class level property
newGameObject = GameObject.Instantiate(object1);
}
}