помогите оптимизировать
|
|
zaicev9797 | Дата: Понедельник, 30 Сентября 2013, 16:00 | Сообщение # 1 |
AbRaKaDaBrA
Сейчас нет на сайте
| [syntax=javascript] private var _FireTime:float; private var Sound:AudioClip; var Numb:int; private var ParentShip:Component; private var ExpendedEnergy:float; private var BulletPrefab:GameObject; private var Ai:Component; private var MissileFireTime:float; private var m:boolean = true; private var t:Transform;
function Start() {
t = transform; gameObject.AddComponent("AudioSource"); ParentShip = t.parent.transform.parent.GetComponent("Ship");
Ai = transform.parent.transform.parent.GetComponent("AI"); }
function Update () { if (m) { MissileFireTime = t.parent.GetComponent(" Weapons2").Weapons[Numb-1].FireTime; ExpendedEnergy = t.parent.GetComponent(" Weapons2").Weapons[Numb-1].ExpendedEnergy; Sound = transform.parent.GetComponent(" Weapons2").Weapons[Numb-1].Sound; BulletPrefab = transform.parent.GetComponent(" Weapons2").Weapons[Numb-1].Bullet; m = false; } _FireTime += 10*Time.deltaTime;
if (Ai.Attak && ParentShip.energy > 0 && Ai.Dist < 11000 && _FireTime > MissileFireTime) { Instantiate(BulletPrefab, t.position, t.rotation); audio.clip = Sound; audio.Play(); _FireTime = 0; ParentShip.energy -= ExpendedEnergy; }
}[/syntax]
проект Mysterious Space. The losted moment
|
|
| |
lentinant | Дата: Понедельник, 30 Сентября 2013, 19:29 | Сообщение # 2 |
ленивый программист
Сейчас нет на сайте
| Тебе же, вроде бы, неоднократно объясняли, что оптимизация в юнити сводится к минимизации вызова Instantiate во время игры. Для этого есть пулы. Если объяснять просто - делаешь переменную очереди определенного размера, на старте спавнишь количество пуль, равное размеру очереди, и каждому элементу очереди присваиваешь пулю, при этом все пули помещаются в недоступное место, или отключаются через enabled. При выстреле, ты не спавнишь новую пулю, ты берешь первую пулю с очереди, ставишь enabled = true, перемещаешь ее на позицию мушки и задаешь ей поворот. После попадания пули во что-либо, либо других условиях, которые приводят к уничтожению пули, вместо уничтожения, помещаешь ее опять в очередь, отключив ее.
Когда-то тут будут ссылки на крутые проекты. Или нет.
|
|
| |
robertono | Дата: Понедельник, 30 Сентября 2013, 20:37 | Сообщение # 3 |
Чокнутый Кот
Сейчас нет на сайте
| lentinant, спасибо огромное, мне это тоже пригодится, как раз говорили мне про пулы , и я ничего не понял) Но тут вы объяснили. Я тоже сейчас как и ТС делаю систему оружий
|
|
| |
zaicev9797 | Дата: Понедельник, 30 Сентября 2013, 21:48 | Сообщение # 4 |
AbRaKaDaBrA
Сейчас нет на сайте
| да про пулы я был в курсе, да и я понял как они работают давно, но когда я однажды прикрутил пул к обьекту игра стала сильнее лагать (намного). вобщем потер пулы к чертям, и забыл про них. недавно мне сказали что колайдеры в этих делах не желательны, я взялся снова пулы писать. написал и столкнулся с проблемой: из жаба скрипта не мог достать "пулс". мне подсказали решение этой проблемы, но я както позабыл про это. сейчас снова попробую пул прикрутить, посмотрим что получится
проект Mysterious Space. The losted moment
|
|
| |
robertono | Дата: Понедельник, 30 Сентября 2013, 22:16 | Сообщение # 5 |
Чокнутый Кот
Сейчас нет на сайте
| а я на шарпе сижу)
|
|
| |
zaicev9797 | Дата: Понедельник, 30 Сентября 2013, 22:21 | Сообщение # 6 |
AbRaKaDaBrA
Сейчас нет на сайте
| а я както сразу на жабу засел а шарп и не юзал даже почти
проект Mysterious Space. The losted moment
|
|
| |
robertono | Дата: Понедельник, 30 Сентября 2013, 22:59 | Сообщение # 7 |
Чокнутый Кот
Сейчас нет на сайте
| zaicev9797, меня один раз компилятор взбесил , почему то жава не компилировалась, я забил на неё и теперь спокойно всё на шарпе пишу)
|
|
| |
lentinant | Дата: Понедельник, 30 Сентября 2013, 23:13 | Сообщение # 8 |
ленивый программист
Сейчас нет на сайте
| zaicev9797, врубаете профилер и смотрите, что у вас грузит игру во время лагов. Это единственный достоверный источник информации для оптимизации. Сама суть пулов - переместить все возможные Instantiate, которые могут возникать в ходе игры, на время загрузки уровня.
Когда-то тут будут ссылки на крутые проекты. Или нет.
|
|
| |
zaicev9797 | Дата: Вторник, 01 Октября 2013, 07:27 | Сообщение # 9 |
AbRaKaDaBrA
Сейчас нет на сайте
| дак я в профайлере и увидел что у меня эта стрельба 40- 80 процентов жрет и гуи репаинт 20- 40
проект Mysterious Space. The losted moment
|
|
| |