using UnityEngine; using UnityEngine.SceneManagement; // Required for scene management public class RestartLevelOnTouch : MonoBehaviour { // This function is called when another Collider2D enters the trigger attached to this GameObject // If your restart object is NOT a trigger and is a solid collider, use OnCollisionEnter2D instead. private void OnTriggerEnter2D(Collider2D other) { // Check if the object that entered the trigger is tagged as "Player" if (other.CompareTag("Player")) { Debug.Log("Player touched restart object. Restarting level."); RestartCurrentLevel(); } } // If your restart object is a solid collider (not a trigger), use this method instead of OnTriggerEnter2D. // Ensure your player also has a Rigidbody2D for collision events to be reliably detected. /* private void OnCollisionEnter2D(Collision2D collision) { // Check if the object we collided with is tagged as "Player" if (collision.gameObject.CompareTag("Player")) { Debug.Log("Player collided with restart object. Restarting level."); RestartCurrentLevel(); } } */ private void RestartCurrentLevel() { // Get the name of the currently active scene string currentSceneName = SceneManager.GetActiveScene().name; // Load the scene by its name, effectively restarting it SceneManager.LoadScene(currentSceneName); // Alternatively, you can load by build index if you prefer: // int currentSceneIndex = SceneManager.GetActiveScene().buildIndex; // SceneManager.LoadScene(currentSceneIndex); } }