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

时间:2019-03-27 03:18:54

标签: c# unity3d local instantiation gameobject

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

我得到的错误是在未声明之前不能使用局部变量。 我尝试过声明它,但是随后它说不能使用封闭的本地范围。

如何在变量声明或确定作用域之前使用它?

这是我的代码。

if (x > 25)
        {
            if (newGameObject.scene.IsValid())
            {
                Destroy(newGameObject);
                GameObject newGameObject = GameObject.Instantiate(object1);
            }
            else
            {
                GameObject newGameObject = GameObject.Instantiate(object1);
            }
        }

2 个答案:

答案 0 :(得分:3)

首先在全局进行声明。

GameObject obj;

然后在一个可以初始化它的方法上。

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

答案 1 :(得分:2)

如果已经存在一个新变量,则不能创建一个名为“ newGameObject”的变量。

所以TerribleDog的建议是在类级别声明该属性。

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