Вроде с отрядами разобрался, используя для них одну переменную, которая очищается после каждого действия, возможно где-то создаются точки, но я не увидел в конвертированном тексте других udg переменных. Волнуюсь потому что таких блоковых триггеров у меня более 20 для конкретных областей карты, и они запускаются последовательно, так что лучше избавится от утечек сейчас.

Принятый ответ

Переменная "точка" это не просто два числа.
Она хранит объект - ссылку на место в памяти, где хранятся эти два числа.
Пока ты не вызовешь RemoveLocation, эта точка будет висеть в памяти.
Когда ты присваиваешь переменной новое значение, старый объект не удален, но появляется новый объект с другими координатами, и твой триггер создает 200 точек в секунду.
Чтобы поменять координаты не создавая новый объект, есть функция MoveLocation
1
21
6 лет назад
Отредактирован biridius
1
treepoint утекает, нигде не видно уничтожения точки, каждый раз создается точка в первой строке и внутри блока if-then-else
еще непонятно зачем записывать в точку центр региона, который уже был отцентрован на эту точку.
Когда ты записываешь в переменную точку вроде Center of Region, тот объект точки который там был до этого утекает и его по этой переменной больше не найти. Надо удалять точку call RemoveLocation(udg_treepoint) после всех действий с ней, до того как туда записывается что-то еще.
0
32
6 лет назад
0
Зачем респавнить деревья таким придурочным способом? Просто раз в минутку ищи на карте мертвые деревья и респавни их. 0.01 сек. зачем так часто?
0
17
6 лет назад
0
quq_CCCP, Я не респавню их, я их генерирую после загрузки карты.
biridius, Ты уверен? Я занёс точку в переменную которая просто меняет координаты, тоесть точка не меняет координаты находясь в переменной? И её каждый раз нужно удалять?
1
21
6 лет назад
Отредактирован biridius
1
Переменная "точка" это не просто два числа.
Она хранит объект - ссылку на место в памяти, где хранятся эти два числа.
Пока ты не вызовешь RemoveLocation, эта точка будет висеть в памяти.
Когда ты присваиваешь переменной новое значение, старый объект не удален, но появляется новый объект с другими координатами, и твой триггер создает 200 точек в секунду.
Чтобы поменять координаты не создавая новый объект, есть функция MoveLocation
Принятый ответ
0
17
6 лет назад
0
biridius, Круто спасибо.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.