OnBecameInvisible()はSceneビューの表示範囲も影響する

Unity第二弾で単純なジャンプアクションを作っているのですが、問題が起きたのでメモ。

カメラの撮影範囲外に出たオブジェクトを削除するのに OnBecameInvisible() を使用した際、Gameビューではどう見ても画面外に出ているように見えるのに、OnBecameInvisible()が呼ばれませんでした。

onbecameinvisible1

検証した結果、Gameビューに配置されたカメラの撮影範囲以外に、Sceneビューの表示範囲内に対象のオブジェクトを収めている場合、OnBecameInvisible()は実行されないことがわかりました。

これに対処するには、Sceneビュー内に最初から対象のオブジェクトを入れない(変な方向を向けておく・変な位置にしておく)か、Gameビューの設定(右上)で、Maximize on Play を設定し、Gameビューを最大化する、またはSceneビュー自体を閉じてしまうことで、OnBecameInvisible()が実行されるようになりました。

参考:OnBecameVisible/OnBecameInvisibleメモ(オフエア雑記)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする