宝石の描画パーティクルを3Dスプライトの代わりに使用するマップに大量の宝石を描画するとき、その一つ一つをGemaObjectにしてMeshを描画してはパフォーマンスが低下してしまいます。マップに配置される宝石は非常に小さいオブジェクトですのでスプライトで描画したいところです。3.4では3Dスプライトを表示する便利な機能はありません。そこで、パーティクルを3Dスプライトの変わりに利用してみます。Emmiterコンポネントを追加してください。Rendererも同時に追加されます。Rendererのマテリアルに宝石のテクスチャのマテリアルを設定します。これでパーティクルが宝石として表示されるようになります。Velocityを0にしてパーティクルを静止させるマップに置かれている宝石を表示するので動いてもらっては困りますので、エミッタのVelocityはすべて0にして完全に静止したパーティクルにします。Emitのチェックボックスははずしてください。パーティクルの発生はスクリプトで制御します。スクリプト(C#)パーティクルをエミットパーティクルエミッタから必要な個数のパーティクルをEmitして発生させましょう。particleEmitter.Emit(宝石の個数);パーティクルに位置を設定パーティクルエミッタからパーティクルの配列をとってきます。このパーティクルのポジションを宝石を配置したい場所に設定してやればいいわけです。particles;ここで気をつけることはパーティクルエミッタのパーティクル配列の要素を直接書き換えてはいけないということです。XXXXのように使用してはだめです。Unityはemitter.particlesにパーティクルの配列を代入することで初めて更新されるようです。拾った宝石を消すには宝石を拾ったらその宝石を消さなくてはなりません。パーティクルの数を変更したりするのは少々手間です。そこで、パーティクルのサイズを0にして見えなくしてしまいましょう。