はじめに
UnityでGameObjectが画面(カメラ)の外に居るのか中に居るのかを確認したい時がママあります。
例えば、画面に表示された際に処理を行ったり、画面の外に行ったらGameObject自体を破棄したり。
今日はそのやり方の紹介です。
RendererのisVisibleを使う
カメラのviewPortで判断しても良いのですが、RendererのisVisibleを使うと便利です。
以下は、自分自身(GameObject)が画面上に表示されているのかのIsVisibleメソッドの例です。
public class SampleScript : MonoBehaviour { private Renderer _Renderer; void Start () { _Renderer = GetComponent<Renderer>(); } void Update() { if (IsVisible()) { Debug.Lod("表示中"); } else { Debug.Log("非表示中"); } } public bool IsVisible() { return _Renderer.isVisible; } }
これで、画面上に居るのか確認できます。