THREE.JSシーンをクリアするにはどうすればいいですか?質問する

THREE.JSシーンをクリアするにはどうすればいいですか?質問する

シーン自体を破壊せずに、シーン内のすべてのオブジェクトをクリアする方法を探しています。オブジェクトに名前を付けるのが 1 つの方法であることはわかっています。オブジェクトを削除する場合は、名前で「取得」するだけです。ただし、名前に関係なく、シーン内のすべてのオブジェクトをクリアする簡単な方法を見つけたいです。簡単な方法はありますか? よろしくお願いします!

ベストアンサー1

シーンの子オブジェクトを走査し、1 つずつ削除できます。

コメントで示唆されているように、反復処理する要素を変更しないようにするには、逆の順序で実行する必要があります。

while(scene.children.length > 0){ 
    scene.remove(scene.children[0]); 
}

注: これは、オブジェクト階層を素早く簡単に消去するだけです。これを頻繁に行う予定の場合、レンダラーがオブジェクトのマテリアル、テクスチャ、ジオメトリを参照するため、上記のコードでメモリ リークが発生するリスクがあります。シーンを完全に消去するのはより複雑で、詳細に検討する必要がある他の質問も多数あります。

おすすめ記事