47 lines
1.7 KiB
C#
47 lines
1.7 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.SceneManagement;
|
|
|
|
namespace Beyond
|
|
{
|
|
public class LoadLevelTrigger : MonoBehaviour
|
|
{
|
|
// Nowa, preferowana zmienna: nazwa sceny do załadowania
|
|
[Tooltip("Wpisz nazwę sceny, która ma zostać załadowana. Ma priorytet nad indeksem.")]
|
|
public string levelToLoadByName;
|
|
|
|
// Stara zmienna, teraz jako opcja zapasowa
|
|
[Tooltip("Wpisz numer (indeks) sceny z Build Settings. Używane, jeśli nazwa sceny jest pusta.")]
|
|
public int levelToLoadByIndex = 1;
|
|
|
|
// Nie musisz tego ustawiać w inspektorze, Start() zrobi to za Ciebie
|
|
private int m_playerLayer;
|
|
|
|
void Start()
|
|
{
|
|
m_playerLayer = LayerMask.NameToLayer("Player");
|
|
}
|
|
|
|
private void OnTriggerEnter(Collider other)
|
|
{
|
|
// Sprawdzamy, czy obiekt, który wszedł w trigger, jest na warstwie gracza
|
|
if (other.gameObject.layer == m_playerLayer)
|
|
{
|
|
// Sprawdzamy, czy nazwa sceny została podana w Inspektorze
|
|
if (!string.IsNullOrEmpty(levelToLoadByName))
|
|
{
|
|
// Jeśli tak, ładujemy scenę po nazwie
|
|
Debug.Log($"Ładowanie sceny o nazwie: {levelToLoadByName}");
|
|
SceneManager.LoadScene(levelToLoadByName);
|
|
}
|
|
else
|
|
{
|
|
// Jeśli nie, używamy numeru (indeksu) jako alternatywy
|
|
Debug.Log($"Ładowanie sceny o indeksie: {levelToLoadByIndex}");
|
|
SceneManager.LoadScene(levelToLoadByIndex);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |