Files
beyond/Assets/Scripts/Triggers/LoadLevelTrigger.cs
2025-11-13 20:23:25 +01:00

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);
}
}
}
}
}