Unityでカメラ外に出たらGameObjectを削除する

結論

[RequireComponent(typeof(Renderer))]
public sealed class AutoDestroy : MonoBehaviour
{
  bool _enabled = false;
  Renderer _renderer;
  void Start() {
    _renderer = GetComponent<Renderer>();
  }
  void Update() {
    if (!_enabled && _renderer.isVisible)
      _enabled = true;
    if (_enabled && !_renderer.isVisible)
      Destroy(gameObject);
  }
}
  • Renderer#isVisibleを使う
  • 画面外で生成された場合も考慮して、一度visibleになってから再度not visibleになった場合に削除するようにする

参考記事

http://qiita.com/niusounds/items/6c493dfea8049cdf2a47