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

问题描述 投票:-1回答:2

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

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

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

这是我的代码。

if (x > 25)
        {
            if (newGameObject.scene.IsValid())
            {
                Destroy(newGameObject);
                GameObject newGameObject = GameObject.Instantiate(object1);
            }
            else
            {
                GameObject newGameObject = GameObject.Instantiate(object1);
            }
        }
c# unity3d local instantiation gameobject
2个回答
2
投票

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

所以TerribleDog建议你在类级声明属性。

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

3
投票

首先在全球范围内声明它。

GameObject obj;

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

public void try()
{
    obj = new GameObject();
} 
© www.soinside.com 2019 - 2024. All rights reserved.