実際にやったネタから一本です。
Unityで操作をしていたら、一部オブジェクトが見えない状態になっていました。
症状が発生するまでのストーリーは以下の通り。
- Layerを増やしてオブジェクトの管理をしようとする
- いつの間にか、オブジェクトがカメラに写らなくなっている
その他操作も行っていますが、オブジェクトが見えなくなった事に影響しているのは上記だけです。
早速ですが、原因は「Layerを増やした」部分です。
そして、「いつの間にか」とは「増やしたLayerにオブジェクトを属させた瞬間」になっています。
この現象が発生した理由は、UnityのカメラもLayerを指定して何を描画するか判定しているためです。
Layerを追加した時点では、描画対象にはなっていません。
そのレイヤーにオブジェクトを属させたことで、カメラに写らないオブジェクトに変化していたわけでした。
ただし、最初のカメラは「すべてのレイヤーを表示する」という設定です。
この場合、新しいLayerも常に描画対象のため、今回の問題は発生しません。
最後に何が起きていたのかをまとめておきます。
肝は「自分で設定した事を忘れた」なのは、間違いないでしょう。
- カメラの設定で、描画しないLayerを指定した
- すべてのLayerを表示するカメラが消える
- カメラを設定した事を忘れる
- ここ重要
- 忘れなければこの事態は発生しなかった
- 新しいLayerを追加した
- カメラの描画対象には自動で追加されない
- オブジェクトを新しいLayerに移動した
- 新しいLayerは描画対象ではないので、見えなくなった