OVOgenez:
Как минимум делать наклон снарядов через SetUnitLockAt непроизводительно, так как понадобится еще один дамми таргет юнит. А если таргетить на цель, то вопервых будет неправильный наклон, а во вторых если цель телепортируется, то снаряд вобще перекрутится.
На даммика можно прикрепить сверху любую модель. Делать анимации не нужно, скачай готового даммика. Если не найдешь могу скинуть.
Кстати можно еще извратица, дать 9999 дальности, отключть автонаподение и делать его триггерно.
А если приказ атаковать дальше чем "дальность атаки", то приказывать двигаться в в сторону цели.
Obelick:
Делать небольшой рект, и смещать его вокруг точки. Тогда за раз будет обрабатывается не большое количество декора. А за 2 секунды можно безболезненно обработать огромные площади.
Пример выше должен помочь, если перебирать не 900 декораций сразу, а например по 90 каждые 0.1. Если равномерно распределить, то по примерно по 5 декораций выбираться будет за кадр.
Я правильно понимаю тебе нужно отсортировать декорации по дальности от базы?
Obelick:
Все таки сколько одновременно юнитов выбираеют декор?
Возможно лагает какраз от того, что у тебя много юнитов делают enum одновременно в одном тике.
В таком случае неважно какая периодичность - лагать будет одинаково. Можно решить примерно
так
Очень утрированный пример:
таймер 0.01
выборка для unit[index]
index++
if index > 200 { index = 1}
на 200 юнитов хватит и будет периодичность 2 секунды.
Потом какие нибудь важные декорации которые ты ищешь можно найти один раз при загрузке карты, тем более что она у тебя генерируемая. Например создать отсортированные массивы определенного типа по которым можно делать более быстрый перебор, чем по всем декорациям на карте.
Obelick:
Лагать не должно, если правильно отсеивать. У меня в карте более 30 к разрушаемых пропсов, заспавненных во время игры (около 30 декораций на радиус 500 ед.) Через енум и стрелы летят и проверка на зрение работает и все норм.
То что предложил Bergi_Bear самое оно, только ректы можно глобальные подготовить разных размеров заранее.
Во первых, если просадка идет не от цикла, а от многократного удаления/создания эффекта, то достаточно запоминать старое значение и сменять эффект, только если хп изменилось на 5%.
Если проблема все-таки в переборе большого кол-ва юнитов в циклом, то:
1.Попробовать событие "юнит хп изменилось".
Возможно тоже тяжело для каждого будет, надо тестить.
2.Свой таймер на каждого юнита, а лучше на небольшую группу (10+). Чтобы грубо говоря не 100 юнитов в один тик перебрались, а по 10 со смещением.
а нет, он по дефолту выше
А так самый простой вариант это делать на эффектах, как советовал темой ниже и прикреплять на "overhead", тогда всегда на месте будет. Да и легче производительности, так как двигать их не надо будет.
Можно поменять порядок рендера материала для хп бара в его модели, тогда он будет рисоваться всегда поверх юнита.
кстати прогресс бар там нормально масштабируется.
Ред. Jack-of-shadow
» JackCraft / Hunter_or_Victim
Ред. Jack-of-shadow
» JackCraft / Hunter_or_Victim
После смерти? Всмысле ты умер, нажал начать заного и после генерации вылетело? Или при первом запуске карты?
» Hunter or Victim / Hunter or Victim
Обновление 0.86
» JackCraft / Hunter_or_Victim
Обновление 0.86
Ред. Jack-of-shadow
» JackCraft / Hunter_or_Victim
Обновление 0.85
Ред. Jack-of-shadow
» Hunter or Victim / Hunter or Victim
Обновление 0.85
Ред. Jack-of-shadow
» Hunter or Victim / Hunter or Victim
Обновление 0.84
-+10 стрел за 20 ед. дерева.
Ред. Jack-of-shadow
» JackCraft / Hunter_or_Victim
Обновление 0.84
-+10 стрел за 20 ед. дерева.
До депротекта оптимайзер еще переименовывает.
Ред. Jack-of-shadow
» WarCraft 3 / фунция SetUnitLookAt
Как минимум делать наклон снарядов через SetUnitLockAt непроизводительно, так как понадобится еще один дамми таргет юнит. А если таргетить на цель, то вопервых будет неправильный наклон, а во вторых если цель телепортируется, то снаряд вобще перекрутится.
» WarCraft 3 / фунция SetUnitLookAt
На сайте есть множество наработок.
» WarCraft 3 / Триггерные атрибуты
» WarCraft 3 / Триггерные атрибуты
А если приказ атаковать дальше чем "дальность атаки", то приказывать двигаться в в сторону цели.
» WarCraft 3 / Триггерные атрибуты
» WarCraft 3 / Как найти ближайший разрушаемый объект?
Делать небольшой рект, и смещать его вокруг точки. Тогда за раз будет обрабатывается не большое количество декора. А за 2 секунды можно безболезненно обработать огромные площади.
Ред. Jack-of-shadow
» WarCraft 3 / Как найти ближайший разрушаемый объект?
Ред. Jack-of-shadow
» WarCraft 3 / Как найти ближайший разрушаемый объект?
Все таки сколько одновременно юнитов выбираеют декор?
Возможно лагает какраз от того, что у тебя много юнитов делают enum одновременно в одном тике.
В таком случае неважно какая периодичность - лагать будет одинаково. Можно решить примерно
выборка для unit[index]
index++
if index > 200 { index = 1}
на 200 юнитов хватит и будет периодичность 2 секунды.
Ред. Jack-of-shadow
» WarCraft 3 / Как найти ближайший разрушаемый объект?
Лагать не должно, если правильно отсеивать.
У меня в карте более 30 к разрушаемых пропсов, заспавненных во время игры (около 30 декораций на радиус 500 ед.) Через енум и стрелы летят и проверка на зрение работает и все норм.
То что предложил Bergi_Bear самое оно, только ректы можно глобальные подготовить разных размеров заранее.
Ред. Jack-of-shadow
» WarCraft 3 / Вопрос по поводу отлова точки
Надо погрешность учитывать, примерно 0.5 ед.
» WarCraft 3 / Если unit == null
Ред. Jack-of-shadow
» WarCraft 3 / Вопрос по поводу отлова точки
» WarCraft 3 / Красивые хп/мана бары
вот
Ред. Jack-of-shadow
» WarCraft 3 / Красивые хп/мана бары
Если проблема все-таки в переборе большого кол-ва юнитов в циклом, то:
Возможно тоже тяжело для каждого будет, надо тестить.
Ред. Jack-of-shadow
» WarCraft 3 / Красивые хп/мана бары
Ред. Jack-of-shadow
» WarCraft 3 / Красивые хп/мана бары
А так самый простой вариант это делать на эффектах, как советовал темой ниже и прикреплять на "overhead", тогда всегда на месте будет. Да и легче производительности, так как двигать их не надо будет.
» WarCraft 3 / Красивые хп/мана бары
кстати прогресс бар там нормально масштабируется.