using UnityEngine; using UnityEngine.SceneManagement; public class Obstacle : MonoBehaviour { public float fallSpeed = 200f; public RectTransform robot; public float shrink = 20f; public string nextScene = "GameOver"; private RectTransform rectTransform; private bool isHit = false; void Start() { rectTransform = GetComponent(); } void Update() { if (isHit) return; // Pád dolů rectTransform.anchoredPosition += Vector2.down * fallSpeed * Time.deltaTime; // Detekce dotyku přes Rect Rect obstacleRect = GetWorldRect(rectTransform, shrink); Rect robotRect = GetWorldRect(robot, shrink); if (obstacleRect.Overlaps(robotRect)) { isHit = true; Invoke("LoadNextScene", 0.5f); } } Rect GetWorldRect(RectTransform rt, float shrinkAmount = 0f) { Vector3[] corners = new Vector3[4]; rt.GetWorldCorners(corners); return new Rect( corners[0].x + shrinkAmount, corners[0].y + shrinkAmount, corners[2].x - corners[0].x - shrinkAmount * 2, corners[2].y - corners[0].y - shrinkAmount * 2 ); } void LoadNextScene() { SceneManager.LoadScene(nextScene); } }