using System.Collections; using System.Collections.Generic; using UnityEngine; public class ScreenWrapper : MonoBehaviour { Renderer[] renderers; public Camera mainCamera; Vector3 newPos; Vector3 viewPortPos; void Start() { renderers = GetComponentsInChildren(); newPos = transform.position; } bool isOffScreen() { foreach (Renderer renderer in renderers) { if (renderer.isVisible) { return false; } } return true; } void Update() { viewPortPos = mainCamera.WorldToViewportPoint(transform.position); if (isOffScreen()) { if (viewPortPos.x > 1 || viewPortPos.x < 0) { newPos.x = -newPos.x; } if (viewPortPos.y > 1 || viewPortPos.y < 0) { newPos.y = -newPos.y; } transform.position = newPos; newPos = transform.position; } } }