質問: ゲームオブジェクトがカメラから外れたらゲームオブジェクトを削除させたいです。 ですがうまくいきません。 ``` void Update () { if (!GetComponent().isVisible) { Destroy(this.gameObject); } } コード ``` ``` void OnBecameInvisible() { Destroy (gameObject); } コード ``` この二つの方法を試して見たのですがうまくいきません。 また、スクリプトはゲームオブジェクトかカメラどちらに持たせればいいですか? また、レンダラーをゲームオブジェクトに追加した後に何かすることがあるのでしょうか?
回答: **Renderer.isVisible()**は、この処理を記述しているスクリプトをアタッチしているゲームオブジェクトが描画されているかどうかを判定するフラグです。 作り方にもよりますが、基本的にカメラに写っているかどうかを判定できると思って良いでしょう。 **OnBecameInvisible()**は、このメソッドを記述しているスクリプトをアタッチしているゲームオブジェクトがカメラの視界から外れたタイミングで呼ばれるものです。 結果から言うと、どちらでも求めている処理を行うことは可能です。 上記の2つどちらかを記述したスクリプトを、削除したいゲームオブジェクトにアタッチし、もしゲームオブジェクトがレンダラーを持っていないのであれば適切なレンダラーをアタッチするだけです。