結論
表示専用として複製したオブジェクトに、元のPrefabのRigidbodyが残っていたことが原因でした。
Colliderと操作用コンポーネントを削除しても、重力が有効なRigidbodyが残っていれば物理演算は継続します。表示専用の複製からRigidbodyを削除したところ、回転後も所定の位置に残るようになりました。
症状
- オブジェクトの挿入と回転までは正常に完了する
- 回転後、表示用として残す予定のオブジェクトが重力で落下して見えなくなる
- Unity ConsoleにはError / Exceptionが出ない
No Unity Console Error or Exception.
Visual symptom: the presentation-only key fell and disappeared after rotation.
今回の問題は例外やコンパイルエラーではなく、Play Mode中の表示状態の不具合として発生しました。
原因
操作用Prefabを表示専用に複製した際、Colliderと操作用コンポーネントは削除されていましたが、重力が有効なRigidbodyは残っていました。
そのため、操作対象ではなくなった後もUnity Physicsのシミュレーション対象のままでした。
表示専用オブジェクトのコンポーネントを確認したところ、Rigidbodyが残っていることを確認できました。Rigidbodyを削除して同じ挿入・回転フローを再実行すると、オブジェクトは落下しなくなりました。
解決方法
- 表示専用として複製したGameObjectを選択します。
- Inspectorで、元の操作用Prefabから引き継いだ
Rigidbodyが残っているか確認します。 - そのオブジェクトを物理挙動させる必要がない場合、表示専用の複製から
Rigidbodyを削除します。 - 元の操作用Prefab側は、操作に必要なコンポーネントを維持します。
- Play Modeで挿入・回転フローを再実行し、回転後も表示用オブジェクトが所定位置に残ることを確認します。
今回の修正ではSave schemaやInventoryの仕様変更は行っていません。
確認結果
- 挿入・回転後も表示用オブジェクトが落下しないことを確認
- 対象Play Modeテスト 27/27 passed
- レビュー録画で回転後も所定位置に残ることを確認
- 検証フローで新しいUnity Console Error / Exceptionなし
- Save schema / Inventory semanticsの変更なし