Изменение параметров в цикле - утечка памяти

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

Изменение параметров в цикле - утечка памяти

Сообщение Tutanhomon 11 май 2010, 18:27

для плавного изменения прозрачности объекта использовал такую вот функцию (уже не помню почему работал именно с material, а не сразу с color, но точно была причина)

Синтаксис:
Используется csharp
        Material SetMaterialAlpha(Material mat, float alpha)
        {
                Material ret = new Material(mat);
                ret.color = new Color(ret.color.r, ret.color.g, ret.color.b, alpha);
                return ret;
        }


все это работало в корутине, и в цикле меняло альфу

Синтаксис:
Используется csharp
        IEnumerator LerpObjectOpacity(Transform obj, float prev, float next, float fade_time)
        {
                if (next > 0.05f)
                        obj.renderer.enabled = true;
                for (float t = 0f; t < snow_fade_time; t += Time.deltaTime)
                {
                        SetObjectOpacity(obj, Mathf.Lerp(prev, next, t / fade_time));
                        yield return null;
                }
                if (next <= 0.05f)
                        obj.renderer.enabled = false;
        }

        private void SetObjectOpacity(Transform obj, float opacity)
        {
                obj.renderer.material.color = SetMaterialAlpha(obj.renderer.material.color, opacity);
        }


в итоге когда начинала работать корутина память плавно росла... в итоге за пару минут игры используемая оператива выростала до нескольких гигов. Вроде бы GC ее немного подчищал, но если и так, то однозначно не успевал )))

заменил код на другой, правда работающий уже не с material а с color, но зато куда более оптимизированный, и самое главное - без утечек

Синтаксис:
Используется csharp
        Color SetMaterialAlpha(Color color, float alpha)
        {
                return new Color(color.r, color.g, color.b, alpha);
        }
Аватара пользователя
Tutanhomon
UNIт
 
Сообщения: 112
Зарегистрирован: 04 дек 2008, 19:55
Откуда: Минск
  • Сайт

Re: Изменение параметров в цикле - утечка памяти

Сообщение Stalker_23b 07 янв 2011, 17:36

Изображение
Monodevelop FTW
Аватара пользователя
Stalker_23b
UNIт
 
Сообщения: 62
Зарегистрирован: 02 авг 2010, 14:23

Re: Изменение параметров в цикле - утечка памяти

Сообщение Zaicheg 07 янв 2011, 17:44

Stalker_23b, предупреждение за фигню и некропостинг.
Попозже удалю оба сообщения.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец


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

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

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