Четверг, 28 Марта 2024, 13:23

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » помогите оптимизировать (скрипт стрельбы)
помогите оптимизировать
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, спасибо огромное, мне это тоже пригодится, как раз говорили мне про пулы , и я ничего не понял) Но тут вы объяснили. Я тоже сейчас как и ТС делаю систему оружий smile
zaicev9797Дата: Понедельник, 30 Сентября 2013, 21:48 | Сообщение # 4
AbRaKaDaBrA
Сейчас нет на сайте
да про пулы я был в курсе, да и я понял как они работают давно, но когда я однажды прикрутил пул к обьекту игра стала сильнее лагать (намного). вобщем потер пулы к чертям, и забыл про них. недавно мне сказали что колайдеры в этих делах не желательны, я взялся снова пулы писать. написал и столкнулся с проблемой: из жаба скрипта не мог достать "пулс". мне подсказали решение этой проблемы, но я както позабыл про это. сейчас снова попробую пул прикрутить, посмотрим что получится biggrin

проект 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
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » помогите оптимизировать (скрипт стрельбы)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг