Как использовать локальный объект перед его объявлением? - PullRequest
0 голосов
/ 27 марта 2019

Я делаю оператор if и пытаюсь проверить, существует ли игровой объект. Если он существует, я хочу уничтожить его, а затем воссоздать.Если его не существует, я хочу его создать.

Я получаю сообщение об ошибке: невозможно использовать локальную переменную, пока она не объявлена.Я пытался объявить это раньше, но затем он говорит, что не может использовать вмещающий локальный объем.

Как я могу использовать переменную до того, как она будет объявлена ​​или ограничена?

Вот мой код.

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

Ответы [ 2 ]

3 голосов
/ 27 марта 2019

Сначала объявите это глобально.

GameObject obj;

Затем метод можно инициализировать.

public void try()
{
    obj = new GameObject();
} 
2 голосов
/ 27 марта 2019

Вы не можете создать новую переменную с именем "newGameObject", если она уже существует.

Так что TerribleDog предлагает вам объявить свойство на уровне класса.

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