Untitled
unknown
csharp
6 months ago
2.6 kB
5
Indexable
using System.Collections; using UnityEngine; public class CameraPan : MonoBehaviour { public Transform player; public float panSpeed = 5f; private bool isPanning = false; private float screenWidth; private float screenHeight; private void Start() { screenHeight = Camera.main.orthographicSize * 2; screenWidth = screenHeight * Camera.main.aspect; Debug.Log("Screen Width: " + screenWidth + ", Screen Height: " + screenHeight); } private void OnTriggerEnter2D(Collider2D other) { if (isPanning) { Debug.Log("Panning is already in progress, ignoring trigger."); return; } Vector3 panOffset = Vector3.zero; // Check for each border trigger specifically if (other.CompareTag("Right Border")) { Debug.Log("Triggered by Right Border"); panOffset = new Vector3(screenWidth, 0, 0); // Pan right } else if (other.CompareTag("Left Border")) { Debug.Log("Triggered by Left Border"); panOffset = new Vector3(-screenWidth, 0, 0); // Pan left } else if (other.CompareTag("Up Border")) { Debug.Log("Triggered by Up Border"); panOffset = new Vector3(0, screenHeight, 0); // Pan up } else if (other.CompareTag("Down Border")) { Debug.Log("Triggered by Down Border"); panOffset = new Vector3(0, -screenHeight, 0); // Pan down } else { Debug.Log("Triggered by an unknown object: " + other.tag); } if (panOffset != Vector3.zero) { Debug.Log("Starting camera pan to offset: " + panOffset); StartCoroutine(PanCamera(panOffset)); } else { Debug.Log("No pan offset set, pan not started."); } } private IEnumerator PanCamera(Vector3 panOffset) { isPanning = true; Vector3 targetPosition = transform.position + panOffset; Debug.Log("Target position for pan: " + targetPosition); while (Vector3.Distance(transform.position, targetPosition) > 0.1f) { transform.position = Vector3.Lerp(transform.position, targetPosition, panSpeed * Time.deltaTime); Debug.Log("Panning... Current Position: " + transform.position); yield return null; } transform.position = targetPosition; Debug.Log("Pan complete. Final Position: " + transform.position); isPanning = false; } }
Editor is loading...
Leave a Comment