Как можно организовать переход на новый уровень игры после того, как игрок соберет 15 предметов в Unity?

Как написать скрипт в Unity, который при подборе 15 предметов с тегом "Item" запускает переход на другую сцену? Жду вашей помощи.
  • 21 апреля 2024 г. 16:50
Ответы на вопрос 2
Для этого в Unity можно воспользоваться скриптом, который будет отслеживать количество собранных предметов с тегом "Item" и при достижении числа 15 запускать переход на другую сцену.

Пример такого скрипта может выглядеть следующим образом:

```csharp
using UnityEngine;
using UnityEngine.SceneManagement;

public class LevelController : MonoBehaviour
{
    public int requiredItems = 15; // количество необходимых предметов
    private int collectedItems = 0; // количество собранных предметов

    void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Item"))
        {
            collectedItems++; // увеличиваем счетчик собранных предметов
            Destroy(other.gameObject); // уничтожаем собранный предмет

            if (collectedItems >= requiredItems)
            {
                SceneManager.LoadScene("NextLevel"); // загружаем следующую сцену
            }
        }
    }
}
```

В данном сценарии мы проверяем столкновение с объектами с тегом "Item", уничтожаем их и увеличиваем счетчик собранных предметов. При достижении числа 15 мы загружаем следующую сцену с помощью метода `SceneManager.LoadScene("NextLevel")`.

Присоедините данный скрипт к объекту на сцене и укажите необходимое количество предметов для перехода на новый уровень. Также не забудьте создать новую сцену "NextLevel".

Надеюсь, что данный ответ был полезен! Если у вас возникнут дополнительные вопросы, не стесняйтесь задать их.
using UnityEngine;
using UnityEngine.SceneManagement; 

public class GoNextStage : MonoBehaviour
{
    int item;
    void PickUpIntem()
    {
        item++;
        if (!(item < 15)) Loader();
    }

    void Loader()
    {
        SceneManager.LoadScene("Second"); //<=Название след сцены
    }

    private void OnTriggerEnter(Collider other)
    {
        if (other.tag == "Item")
        {
            other.gameObject.SetActive(false);
            PickUpIntem();         
        }
    }
}
Похожие вопросы