Untitled
unknown
csharp
a year ago
2.6 kB
8
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