C# 如何在声明本地对象之前使用它?

C# 如何在声明本地对象之前使用它?,c#,unity3d,local,instantiation,gameobject,C#,Unity3d,Local,Instantiation,Gameobject,我在做一个if语句,我试图检查一个游戏对象是否存在,如果它确实存在,我想销毁它,然后重新创建它。 如果它不存在,我想创建它 在未声明局部变量之前,我无法使用它。 我以前尝试过声明它,但后来它说不能使用封闭的局部作用域 在声明或限定变量的作用域之前,如何使用该变量 这是我的密码 if(x>25) { if(newGameObject.scene.IsValid()) { 销毁(新游戏对象); GameObject newGameObject=GameObject.Instantiate(objec

我在做一个if语句,我试图检查一个游戏对象是否存在,如果它确实存在,我想销毁它,然后重新创建它。 如果它不存在,我想创建它

在未声明局部变量之前,我无法使用它。 我以前尝试过声明它,但后来它说不能使用封闭的局部作用域

在声明或限定变量的作用域之前,如何使用该变量

这是我的密码

if(x>25)
{
if(newGameObject.scene.IsValid())
{
销毁(新游戏对象);
GameObject newGameObject=GameObject.Instantiate(object1);
}
其他的
{
GameObject newGameObject=GameObject.Instantiate(object1);
}
}

首先全局声明它

GameObject obj;
然后在一个方法上你可以初始化它

public void try()
{
    obj = new GameObject();
} 

如果已经存在名为“newGameObject”的新变量,则无法创建该变量

TerribleDog建议您在类级别声明属性

class YourClass: MonoBehaviour 
{
    GameObject newGameObject
    void SomeMethod 
    {
        Destroy(newGameObject);
        //Then here just set the class level property
        newGameObject = GameObject.Instantiate(object1);
    }
}

将其更改为
GameObject newGameObject=null
newGameObject.scene.IsValid()更改为
newGameObject!=null&&newGameObject.scene.IsValid()
也是。我已经尝试过newGameObject!=null&&newGameObject.scene.IsValid()有效,但不会破坏对象,它们仍保留在屏幕上。