はとの豆知識

Unityを中心に手っ取り早い機能の実装を紹介します。

【Unity】画面外に出た、カメラから見えなくなったオブジェクトを検知する方法。

シューティングゲームで弾が画面外に出た時など
カメラの外にオブジェクトが出た事を検知して処理を呼びたいな~って時に使える処理の紹介です。

手っ取り早い実装方法

    //移動速度
    private readonly float moveSpeed = 5f;

    private void Update()
    {
        //画面外に出すため前進処理
        transform.Translate(Vector3.up * this.moveSpeed * Time.deltaTime);
    }

    /*このオブジェクトが画面外に出ると呼ばれる*/
    private void OnBecameInvisible()
    {
        Debug.Log("画面外に出ました");
    }

    /*逆に画面内に表示されたタイミングで呼ばれます*/
    private void OnBecameVisible()
    {
        Debug.Log("画面内です");
    }

f:id:HatoHatter:20210613032023g:plain

画面外に出たタイミングで画面外に出ましたとログが表示されていますね。

OnBecameInvisible()とは

docs.unity3d.com

オブジェクトが表示されなくなるときに1回呼び出される処理です。

OnBecameVisible()とは

docs.unity3d.com

オブジェクトが見えるようになると1回呼び出される処理です。