Мне нужно знать, когда объект перестал видеть камеру, чтобы вернуть его в бассейн.Я попробовал пару вещей, но безуспешно, хочу заметить, что камера следит за игроком только по оси X, это 3D, но это игра с боковым скроллом.Кстати, я не использую MonoBehaviour, поэтому избегайте предлагать OnBecameInvisible и родственников.
Здесь мои две неудачные попытки.
internal static bool IsVisible(this Renderer renderer)
{
Plane[] planes = GeometryUtility.CalculateFrustumPlanes(Camera.main);
return GeometryUtility.TestPlanesAABB(planes, renderer.bounds);
}
internal static void IsVisible(this GameObject go)
{
var screenPoint = Camera.main.WorldToScreenPoint(go.transform.position);
screenPoint.x = Mathf.Clamp01(screenPoint.x);
if (screenPoint.x > .05f)
{
Debug.Log("Visible");
}
else Debug.Log("Invisible");
}