Код
public static var pool = new System.Collections.Generic.Dictionary.<String, GameObject>();
// можно конечно отдельный класс - самопораждающий шаблон и тп.. но и так можно.
function Start () {
//--- заполнение пула
//----- загружаем префаб из ресурсов и создаем из него игровой объект
var tmp : GameObject = GameObject.Instantiate(Resources.Load("пуля_дура")) as GameObject;
tmp.active = false; // если Unity - 4 то activeSelf
pool["пуля"] = tmp;
tmp = GameObject.Instantiate(Resources.Load("граната_бум"));
tmp.active = false; // если Unity - 4 то activeSelf
pool["граната"] = tmp;
tmp = GameObject.Instantiate(Resources.Load("зомби"));
tmp.active = false; // если Unity - 4 то activeSelf
pool["зомби"] = tmp;
//--- размещение объектов на сцене ----------------------------------------------
for (var i : int = 0; i < 15; i++)
{
var go = pool["зомби"];
go.transform.position = new Vector3(i * 0.5f, 0.5f, 0.5f); // задали позицию
go.active = true; // включили
}
}
function Update () {
// стрельба пулями
if(Input.GetKey(KeyCode.Space)){
pool["пуля"].transform.position = new Vector3(0.1f, 0.1f, 01f); // тут должны быть координаты конца дула с мушкой
pool["пуля"].rigidbody.AddForce(Vector3.forward * 5);
pool["пуля"].active = true;
// когда пуля попадет во что нибудь - ее ОБЯЗАТЕЛЬНО нужно ТАМ, в скрипте коллизии,:
//pool["пуля"].active = false;
// и желательно pool["пуля"].transform.position = position_of_aim; // сразу <img src="http://s12.ucoz.net/sm/1/smile.gif" border="0" align="absmiddle" alt="smile" />
}
}
до кучи - 1
до кучи - 2