VR Samplesに入っているObjectPoolが汎用的で便利なのでメモ
ObjectPoolとは、任意のPrefabを大量に生成、破棄をする際に、Instantiate&Destroyの数を最小限に抑える仕組み。
File
AssetStore
https://www.assetstore.unity3d.com/jp/#!/content/51519
Assets/VRSampleScenes/Scripts/Utils/ObjectPool.cs
GameObjectにObjectPoolをアタッチ
Prefabs
PoolするPrefabを指定。複数設定していた場合はRandomに選ばれる
Number In Pool
Awake時にPoolに生成する数を指定
Script
// Componentを取得 var objectPool = GetComponent<ObjectPool>(); // オブジェクトを作成 or Poolから取得 GameObject poolObject = objectPool.GetGameObjectFromPool (); // オブジェクトを非表示にしてPoolに追加 objectPool.ReturnGameObjectToPool(poolObject);
簡単!
VRコンテンツはソフトウェアの負荷を抑えたいので、こういうUtilが揃っていると助かりますね。
他にも汎用的な便利なスクリプトがUtilsの中に入っているので、色々見ていこうと思います。