Большая проблема с оптимизацией

Раздел, посвящённый самому важному - скорости.

Re: Большая проблема с оптимизацией

Сообщение Alcatraz 03 июл 2011, 15:42

оптимизировал!! теперь всё хорошо! (popcorn1) почти всё! я сделал вот так:

Синтаксис:
Используется csharp
Invoke("ResetMotionStates",0.3f);
Invoke("ResetSteps",0.6f);


Но есть проблема, куча нул референсов. но минут 30 работы, и думаю смогу всё до исправлять (методом):

Синтаксис:
Используется csharp
if(variable !=null)
{
//действие
}
 


или наоборот, если null, то:
Синтаксис:
Используется csharp
UnityEngine.Debug.LogWarning("...");


хотя опять же куча проверок, есть какой то более лёгкий способ? :-?
Unity3D Game Developer
Аватара пользователя
Alcatraz
UNITрон
 
Сообщения: 236
Зарегистрирован: 07 июн 2011, 09:12
Откуда: Москва
  • Сайт
  • ICQ

Re: Большая проблема с оптимизацией

Сообщение Zavhoz 03 июл 2011, 17:09

Alcatraz писал(а):всё вы со своими шуточками!... завтра отскриню профилер (щас с мобы) а код простой, без листингов обошёлся пока что.
код не весь помню, вот что помню:

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class Respawner : MonoBehaviour
{

public GameObject enemePrefab;
public  float nextSpawn = 10.0f;
public float spawnRange = 4.0f;

void Update()
{

if(Time.time > nextSpawn)
{
Respawn();
spawnRange -= Random.Range(0.1, 0.5);
nextSpawn = Time.time + spawnRange;
}

}

public void Respawn()
{

GameObject[] enemyNum
= GameObjects.FindGameObjectsWithTag("Enemy");

if(enemyNum.Lenght < 10)
{
// тут расчёт переменной position, не очень //помню на память что тут..
Instantiate(enemyPrefab, transform.position, transform.rotation);
}

}
 


а не проще ли было вывести в отдельную корутину таймер с респауном а не мотылять его в упдате? получится чтото вроде:
Синтаксис:
Используется csharp
public IEnumerator TimerRespawn()
{
    while (true)
    {
        yield return new WaitForSeconds(Random.Range(0.1f, 0.5f));
        Respawn();
    }
}
 


и дешевле завести статическую переменную на геймобжект, чем искать его по тэгу каждые 0,1-0,5 секунд
FUNNY BLOX
Аватара пользователя
Zavhoz
UNITрон
 
Сообщения: 197
Зарегистрирован: 10 фев 2009, 07:23
Откуда: Караганда KZ
  • ICQ

Re: Большая проблема с оптимизацией

Сообщение Alcatraz 03 июл 2011, 18:43

да, можно, спасибо, не подумал. но щас важнее оптимизировать проверку на null большого кол-ва переменных, ведь при старте переменные не инициализируются и равны null, но при этом они вызырвются в скрипте, а иницилизация происходит через 0.5 секунды.. (popcorn1)
Unity3D Game Developer
Аватара пользователя
Alcatraz
UNITрон
 
Сообщения: 236
Зарегистрирован: 07 июн 2011, 09:12
Откуда: Москва
  • Сайт
  • ICQ

Пред.

Вернуться в Оптимизация

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4