36 lines
1.3 KiB
C#
36 lines
1.3 KiB
C#
using UnityEngine;
|
|
using UnityEngine.SceneManagement;
|
|
|
|
public class FlagTrigger : MonoBehaviour
|
|
{
|
|
[Header("Ustawienia Przejścia")]
|
|
public string nextSceneName = "TESTING"; // Nazwa sceny badawczej
|
|
public string nextPhaseName = "Experimental"; // Nazwa folderu/fazy dla menedżera
|
|
|
|
// Zabezpieczenie, żeby scena nie próbowała się załadować 5 razy w ułamku sekundy
|
|
private bool _hasTriggered = false;
|
|
|
|
// Ta funkcja wywołuje się automatycznie, gdy inny obiekt z Colliderem wejdzie w ten obiekt
|
|
private void OnTriggerEnter(Collider other)
|
|
{
|
|
// Sprawdzamy, czy obiekt, który nas dotknął, ma tag "Player"
|
|
if (other.CompareTag("Player") && !_hasTriggered)
|
|
{
|
|
_hasTriggered = true;
|
|
Debug.Log("[FlagTrigger] Gracz dotknął flagi! Zmieniam fazę i scenę.");
|
|
|
|
// 1. Zmieniamy fazę w Menedżerze (tworzy się nowy plik CSV)
|
|
if (ExperimentManager.Instance != null)
|
|
{
|
|
ExperimentManager.Instance.SetPhase(nextPhaseName);
|
|
}
|
|
else
|
|
{
|
|
Debug.LogWarning("[FlagTrigger] Nie znaleziono ExperimentManager!");
|
|
}
|
|
|
|
// 2. Ładujemy nową scenę
|
|
SceneManager.LoadScene(nextSceneName);
|
|
}
|
|
}
|
|
} |