Кто нибудь знает как получить толщину объекта? - Форум Игроделов
Вт, 04 Фев 2025, 01:53 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Кто нибудь знает как получить толщину объекта?
valera3132Дата: Чт, 01 Дек 2011, 18:35 | Сообщение # 1
 
Сообщений: 41
Награды: 0
Репутация: 53
Статус: Offline
Кто нибудь знает как получить толщину объекта?

Елсли я нажал кнопку луч идёт из точки от объекта если на его пути объект толщиной 0,5 то луч сталкиваеться с объектом (В лог отправить что есть столкновение) и проходит через объект до следующего столкновения.
Тут еще 1 проблема если много объектов и если их сложить вместе и толщина их 0,5 (В лог отправить прошел 1 объект, прошел 2 объект итд)

Как написать такой скрипт?


Тут только детский сад.

Сообщение отредактировал valera3132 - Чт, 01 Дек 2011, 18:36
 
СообщениеКто нибудь знает как получить толщину объекта?

Елсли я нажал кнопку луч идёт из точки от объекта если на его пути объект толщиной 0,5 то луч сталкиваеться с объектом (В лог отправить что есть столкновение) и проходит через объект до следующего столкновения.
Тут еще 1 проблема если много объектов и если их сложить вместе и толщина их 0,5 (В лог отправить прошел 1 объект, прошел 2 объект итд)

Как написать такой скрипт?

Автор - valera3132
Дата добавления - 01 Дек 2011 в 18:35
david-vneДата: Чт, 01 Дек 2011, 21:01 | Сообщение # 2
 
Сообщений: 72
Награды: 2
Репутация: 28
Статус: Offline
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
 
Сообщение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("Попался, голубчик");
               }
          }
      }
}

Автор - david-vne
Дата добавления - 01 Дек 2011 в 21:01
ЛевшаДата: Чт, 01 Дек 2011, 22:51 | Сообщение # 3
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (valera3132)
Кто нибудь знает как получить толщину объекта?

Смотря какие обьекты, можно извернуться со скалингом, Получив трансформ обьекта, получить его толщину через scale.
Простой, но не везде применимый метод.


X.cor.R (Prologue)
 
Сообщение
Quote (valera3132)
Кто нибудь знает как получить толщину объекта?

Смотря какие обьекты, можно извернуться со скалингом, Получив трансформ обьекта, получить его толщину через scale.
Простой, но не везде применимый метод.

Автор - Левша
Дата добавления - 01 Дек 2011 в 22:51
valera3132Дата: Чт, 01 Дек 2011, 23:17 | Сообщение # 4
 
Сообщений: 41
Награды: 0
Репутация: 53
Статус: Offline
Вот прикол в том что используя скалинг не получиться почему?
Потаму что объект может быть большой например дом и стен много а луч только должен узнать толщину 1 стенки.


Тут только детский сад.
 
СообщениеВот прикол в том что используя скалинг не получиться почему?
Потаму что объект может быть большой например дом и стен много а луч только должен узнать толщину 1 стенки.

Автор - valera3132
Дата добавления - 01 Дек 2011 в 23:17
ЛевшаДата: Чт, 01 Дек 2011, 23:34 | Сообщение # 5
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (valera3132)
используя скалинг не получиться

Quote (Левша)
не везде применимый метод.

Quote (Левша)

Смотря какие обьекты

Все зависит.... biggrin Описывай цель подробнее.


X.cor.R (Prologue)
 
Сообщение
Quote (valera3132)
используя скалинг не получиться

Quote (Левша)
не везде применимый метод.

Quote (Левша)

Смотря какие обьекты

Все зависит.... biggrin Описывай цель подробнее.

Автор - Левша
Дата добавления - 01 Дек 2011 в 23:34
valera3132Дата: Чт, 01 Дек 2011, 23:55 | Сообщение # 6
 
Сообщений: 41
Награды: 0
Репутация: 53
Статус: Offline
цель - любой предмет который будет под прицелом. biggrin

Тут только детский сад.
 
Сообщениецель - любой предмет который будет под прицелом. biggrin

Автор - valera3132
Дата добавления - 01 Дек 2011 в 23:55
ЛевшаДата: Пт, 02 Дек 2011, 00:39 | Сообщение # 7
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Если серьезно, то сложно.
1. Как вариант вешать на основной обьект вспомогательный (без рендера, но с коллайдером), стенку в стенку, повесить на них разные теги, потом щупать райкастом и вычислять толщину из разницы позиций обьектов.
2. Как вариант при попадании райкаста, задать обьекту скалинг (-1), засеч второй хит райкаста и вычислить толщину из разницы (пивот при этом должен быть сдвинут к самому краю, иначе при выворачивании обьекта координаты колайдера не изменяться), в третьем кадре вернуть скалинг на место.
3. Включай фантазию и изворачивайся. smile


X.cor.R (Prologue)
 
СообщениеЕсли серьезно, то сложно.
1. Как вариант вешать на основной обьект вспомогательный (без рендера, но с коллайдером), стенку в стенку, повесить на них разные теги, потом щупать райкастом и вычислять толщину из разницы позиций обьектов.
2. Как вариант при попадании райкаста, задать обьекту скалинг (-1), засеч второй хит райкаста и вычислить толщину из разницы (пивот при этом должен быть сдвинут к самому краю, иначе при выворачивании обьекта координаты колайдера не изменяться), в третьем кадре вернуть скалинг на место.
3. Включай фантазию и изворачивайся. smile

Автор - Левша
Дата добавления - 02 Дек 2011 в 00:39
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025