皆様、こんにちは。
本日は自分のプロジェクトに必要な設定のテストを行っており、GTX1060のGPUを使用している際にデバッグ時のフレームレートが不安定になる現象がありました。
これは同じシーン内のオブジェクト(GameObject)が多すぎることに起因しており、オブジェクトの数を減らすとフレームレートは改善されます。
そこで、標準搭載のBasesSettingsノードを使用してパフォーマンス最適化の方法を試みることにしました。例えば
このような簡単な設定を行うことで、カメラがオブジェクトに近づいたときに生成し、カメラが離れたら削除するというパフォーマンス最適化を実現できます。
しかし同時に、リスポーン(復活)するオブジェクトが何らかの子ノードにある場合、そのオブジェクトは本来の生成位置でリスポーンされないことがわかりました。
位置がずれてしまいます。すべての子ノードにあるオブジェクトは、最初の生成位置でリスポーンできません。
具体例を挙げます:

AとBの生成位置はここです。こうすれば、消えても同じ位置でリスポーンします。
しかし、

Bを何らかの子ノードに配置した場合、プレイヤーが最初にこの場所に来ても、上記の画像のように表示されます。
しかし、このシーンを離れてから戻ってくる(つまり、削除してリスポーンする)と、Bの位置はここにはなりません。
一連の調査の結果、リスポーンするオブジェクトはおそらく親ノードの位置に移動されているようです。これは奇妙です。
例えば、親ノードを移動の基準として利用しているオブジェクトがある場合、それらはリスポーン後も親ノードの移動ポイント内に留まりません。
親ノード(左右移動)
↓
子ノード(オブジェクトA)
オブジェクトAもまた、生成位置でリスポーンできません。リスポーン後も移動しなくなります。
カメラによるリスポーンでも、アクションによるリスポーンでも、オブジェクトを初期位置でリスポーンさせることができません。
これは不合理に思えます。これはバグでしょうか、それとも動作原理を正しく理解していないのでしょうか?
ご教示いただけますと幸いです。よろしくお願いいたします。


