А как выполнить какие-нибудь действия, когда сцена закрыта?

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

А как выполнить какие-нибудь действия, когда сцена закрыта?

Сообщение SSlava 18 фев 2018, 17:57

А как выполнить какие-нибудь действия, когда текущая сцена закрыта?

Ну например if (сцена закрыта).
Я читал справку, но подходящего пока что ничего не нашел. Плохо смотрю наверное))
SSlava
UNITрон
 
Сообщения: 157
Зарегистрирован: 15 янв 2018, 13:43

Re: А как выполнить какие-нибудь действия, когда сцена закрыта?

Сообщение seaman 18 фев 2018, 18:59

Тебе приз за странность вопроса.
1. Рантайм.
Если ни одна сцена не открыта - игры нет!
2. Редактор.
В любом случае какая то сцена открыта. Если нет - редактор закрыт!
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: А как выполнить какие-нибудь действия, когда сцена закрыта?

Сообщение SSlava 18 фев 2018, 20:07

Да нет, вопрос не странный.
Если ни одна сцена не открыта - игры нет!


Ну да, может не так написал)). Это при закрытии одной сцены, и открытии другой сцены ошибки возникают.

Синтаксис:
Используется csharp
public class bonus_on_the_enemy : MonoBehaviour
{
    public string gameobject;
    private GameObject enemy;
    private bool Exet = false;
   
    void Start()
    {
        enemy = (GameObject)this.gameObject;
    }

    void OnApplicationQuit()
    {
        Exet = true;
    }

    void UnloadCurrentScene()
    {

    }
    void OnDestroy() // срабатывает, когда объект, на котором прикреплен бонус, уничтожен.
    {
        if (Exet == false)
        {
            GameObject Prefab1 = Pool.Pool11(Resources.Load(gameobject) as GameObject, enemy.transform.position, enemy.transform.rotation);
        }

        string sceneName = SceneManager.GetActiveScene().name;
     

    }


}


Ну это для вешания бонусов и объектов всяких при уничтожении.

Так раньше ошибку выдавал просто при остановке игры в Юнити, а сейчас при загрузке новой сцены стал выдавать ту же ошибку
Some objects were not cleaned up when closing the scene. (Did you spawn new GameObjects from OnDestroy?), плюс NullReferenceException: Object reference not set to an instance of an object

Как интересно можно это исправить?
SSlava
UNITрон
 
Сообщения: 157
Зарегистрирован: 15 янв 2018, 13:43

Re: А как выполнить какие-нибудь действия, когда сцена закрыта?

Сообщение SSlava 18 фев 2018, 20:12

А хотя да, тоже с пулом связано, объекты уничтожаются все, и ссылаются на несуществующие, сейчас исправлю, но плюс еще что-то еще есть другое наверное.
SSlava
UNITрон
 
Сообщения: 157
Зарегистрирован: 15 янв 2018, 13:43

Re: А как выполнить какие-нибудь действия, когда сцена закрыта?

Сообщение SSlava 18 фев 2018, 20:23

:D ну да, что-то не так с этим самим скриптом, а не с пулом.

Пул очищаю (ну точнее List, чтобы там нулевых значений всяких непонятных не было), в одном случае это помогло, а тут не помогает, те же самые ошибки при закрытии сцены.

Метод void OnDestroy() Какой-то проблемный)) Или не умею его использовать правильно, скорее всего.
SSlava
UNITрон
 
Сообщения: 157
Зарегистрирован: 15 янв 2018, 13:43

Re: А как выполнить какие-нибудь действия, когда сцена закрыта?

Сообщение seaman 18 фев 2018, 20:37

Что Вы хотите сделать то?
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: А как выполнить какие-нибудь действия, когда сцена закрыта?

Сообщение SSlava 18 фев 2018, 20:46

Да ничего не делается, сцена закрывается, открывается новая, и ошибки выдаются в этом скрипте.

Этот скрипт повешен на многие объекты закрытой сцены.
SSlava
UNITрон
 
Сообщения: 157
Зарегистрирован: 15 янв 2018, 13:43

Re: А как выполнить какие-нибудь действия, когда сцена закрыта?

Сообщение seaman 18 фев 2018, 21:50

С Вами очень сложно общаться - Вы прямо партизан. Ну и скрипт явно не полный, хотя и с ненужными деталями...
Что Вы хотите сделать в этом скрипте? Зачем Вы его вообще написали? Что он по Вашему делает?
ЗЫ: Советую создание объекта вынести из OnDestroy. Вы же как-то его удаляете? Он ведь не только при закрытии сцены удаляется?
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: А как выполнить какие-нибудь действия, когда сцена закрыта?

Сообщение SSlava 19 фев 2018, 04:09

:D да нет. Скрипт полный.
Он нужен был для создания бонусов после уничтожения противника.

Но действительно лучше было перенести создание в другой скрипт. Туда создание бонуса добавил, где обьект уничтожается.
Вроде все нормально стало.
SSlava
UNITрон
 
Сообщения: 157
Зарегистрирован: 15 янв 2018, 13:43


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 25