Як знайти найближчий об’єкт в Unity. Короткий туторіал

У цьому відео ми розглянемо спосіб для пошуку найближчого об’єкта в Unity, а також реалізуємо код для динамічної зміни цих об’єктів. Буде корисним для початківців, які тільки розпочали вивчати Unity та хочуть зрозуміти, як динамічно шукати об’єкти на сцені та визначати до них відстань.

p.s. Якщо відео для вас було корисним, підтримайте канал підпискою та вподобайкою ;)

Підписуйтеся на Telegram-канал @gamedev_dou, щоб не пропустити найважливіші статті і новини про геймдев

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Відразу скажу, що якщо ці об,єкти статичні, то це можна ніфігово оптімізувати.

як вставити у топік так відео як тут?

Я додавав простим посиланням. На скільки зрозумів, модератори самостійно додали плеєр, за що їм окреме дякую! :)

Використати Vector3.sqrMagnitude (квадрат відстані) замість Vector3.Distance буде оптимальніше з точки зору продуктивності.
Змінна nearestTarget — зайва. Можна зразу

Target = null;
foreach(){
....
}
if (Target != null){
Debug.Log(.....);
}

Дякую за уточнення. Повністю з вами згідний.

Ну якщо потрібно зайти саме відстань тоді норм.
Тут же шукається найблищий об’єкт. В цьому випадку можна значно прискорити розрахунки.

Vector3.Distance() всередені робить наступне
d = sqrt((x1 — x2)^2 + (y1 — y2)^2 + (z1 — z2)^2)

Так ми отримуємо точну відстань.

Для найблищого об’єкту вона не потрібна.
Нам вистачить порахувати тільки (x1 — x2)^2 + (y1 — y2)^2 + (z1 — z2)^2 і порівнювати їх між собою.

Підписатись на коментарі