Елсли я нажал кнопку луч идёт из точки от объекта если на его пути объект толщиной 0,5 то луч сталкиваеться с объектом (В лог отправить что есть столкновение) и проходит через объект до следующего столкновения. Тут еще 1 проблема если много объектов и если их сложить вместе и толщина их 0,5 (В лог отправить прошел 1 объект, прошел 2 объект итд)
Как написать такой скрипт? Тут только детский сад.
Сообщение отредактировал valera3132 - Чт, 01 Дек 2011, 18:36
valera3132, в крайнем случае толщину объекту можно назначить как переменную в скрипте (это с моей нубской точки зрения). Я бы так заделал
Code
Transform[] targets = список объектов Ray ray = луч от объекта; RaycastHit hit;
void Update() { if (Physics.Raycast(ray.origin, ray.direction, out hit, 50)) { if (hit.collider.bounds.Intersects(target[0].collider.bounds)) // или в цикл for для проверки всех объектов { if (target[0].GetComponent<Скрипт,где написана толщина>().толщина == 0.5f) { Debug.Log("Попался, голубчик"); } } } }
Welcome to my project: http://gamecreatingcommunity.ru/forum/67-3994-1
Смотря какие обьекты, можно извернуться со скалингом, Получив трансформ обьекта, получить его толщину через scale. Простой, но не везде применимый метод. X.cor.R (Prologue)
Вот прикол в том что используя скалинг не получиться почему? Потаму что объект может быть большой например дом и стен много а луч только должен узнать толщину 1 стенки. Тут только детский сад.
Если серьезно, то сложно. 1. Как вариант вешать на основной обьект вспомогательный (без рендера, но с коллайдером), стенку в стенку, повесить на них разные теги, потом щупать райкастом и вычислять толщину из разницы позиций обьектов. 2. Как вариант при попадании райкаста, задать обьекту скалинг (-1), засеч второй хит райкаста и вычислить толщину из разницы (пивот при этом должен быть сдвинут к самому краю, иначе при выворачивании обьекта координаты колайдера не изменяться), в третьем кадре вернуть скалинг на место. 3. Включай фантазию и изворачивайся. X.cor.R (Prologue)