Як зробити тригер зіткнення з межами екрану stack overflow російською

Є об'єкт, повинен рухатися по тапу в різні кути екрана по порядку, ця частина реалізована:

_targetPosition - один з чотирьох векторів. об'єкт повинен переміститися в точку з цими координатами. Проблема виникає в написанням наступної функції - при досягненні точки повинен спрацьовувати якийсь тригер зіткнення з межами екрану, при цьому об'єкт відлітає з загасанням швидкості в бік центру камери. Раніше в цьому місці стояв милицю.

Почитав про rigidbody.AddForce і transform.Translate обидва методи виглядають як щось схоже на те, що мені потрібно, а як скомбінувати не вистачає фантазії.

заданий 8 Серпня '16 о 12:39

Якщо ви хочете використовувати фізику то вам потрібен Rigidbody.Addforce + Collider на вашому об'єкті. Тоді на межі екрану розставляєте колайдери в якості огорожі і фізика сама за вас відпрацює відскік, ось тільки підлаштувати параметри треба. Правда якщо зав'язано буде на фізику, то як показує практика будуть складнощі з тим щоб зістикувати іншим кодом де фізика не використовується, наприклад різко змінити швидкість об'єкта і т.п. Для того щоб зафіксувати факт удару для обробки можете скористатися OnCollisionEnter. OnCollisionExit і OnCollisionStay (початок зіткнення, кінець зіткнення і в процесі зіткнення відповідно). Для цього додайте ці методи в будь-який компонент на об'єкті де присутня Collider.

Якщо ж вам потрібно свій алгоритм обробляти при зіткненні, то можна в колайдері виставити галочку Trigger. тоді відскоку не буде, але факт торкання двох коллайдеров можна буде відловити через методи OnTriggerEnter. OnTriggerExit. OnTriggerStay. Або як варіант зробити робочу зону в вигляді великого тригера і перевіряти, що ваш об'єкт всередині через OnTriggerStay. інакше повертати його в зону комфорту)

Ну і самий складний спосіб це вираховувати координати екрану, на кожному кадрі перевіряти що об'єкт з якимось розміром виходить за межі активної області та намагатися самому рулити процесом його переміщення.

відповідь дан 10 Серпня '16 о 5:07

Схожі статті