Автор Тема: Рейкаст и физика  (Прочитано 2439 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Октябрь 04, 2012, 18:43:05 pm
Прочитано 2439 раз

WinSTOP

  • Частный гость

  • Оффлайн
  • ***

  • 123
  • Репутация:
    3
    • Просмотр профиля
1)Подскажите, что нужно вставить, что бы при попадании рейкаста, объекты отлетали не в сторону а прямо? 
  var forward = transform.TransformDirection(Vector3.forward);
  var direction = transform.TransformDirection(Vector3.forward); 
  Debug.DrawRay(transform.position, forward * 10, Color.green);
  if(Physics.Raycast(Camera.main.ScreenPointToRay(Vector2(Screen.width/2,Screen.height/2)),hit,100)){
  if (hit.rigidbody)
  {
  hit.rigidbody.AddForceAtPosition(PowerShots * direction, hit.point);
  }
  }
2) Вопрос который меня волнует больше всего (можно ли с помощью рейкаста делать дырки от пуль?) мне не нужен вопрос, как это сделать мне ток нужно (можно ли это сделать)??

Октябрь 04, 2012, 18:58:45 pm
Ответ #1

Ru_lon

  • Активный участник

  • Оффлайн
  • ****

  • 390
  • Репутация:
    9
    • Просмотр профиля
Сильное государство угнетает нас, при слабом государстве погибаем мы сами.

Октябрь 04, 2012, 19:14:59 pm
Ответ #2

WinSTOP

  • Частный гость

  • Оффлайн
  • ***

  • 123
  • Репутация:
    3
    • Просмотр профиля
Спс а с первым вопросом не поможете? а то весь день искал инфу так и не нашёл..

Октябрь 04, 2012, 19:21:06 pm
Ответ #3

Mimi Neko

  • Администратор
  • Старожил форума

  • Оффлайн
  • *****

  • 2456
  • Репутация:
    153
    • Просмотр профиля
Спс а с первым вопросом не поможете? а то весь день искал инфу так и не нашёл..
ну так и двигай их по тому же вектору, что и рейкаст!  Или как там они у тебя отлетают, сами чтоль?

Октябрь 04, 2012, 19:22:19 pm
Ответ #4

Ru_lon

  • Активный участник

  • Оффлайн
  • ****

  • 390
  • Репутация:
    9
    • Просмотр профиля
Ну сделай директорию обькта равной рейкаста
Сильное государство угнетает нас, при слабом государстве погибаем мы сами.

Октябрь 04, 2012, 19:25:12 pm
Ответ #5

WinSTOP

  • Частный гость

  • Оффлайн
  • ***

  • 123
  • Репутация:
    3
    • Просмотр профиля
Ну сделай директорию обькта равной рейкаста
блин не понял

Октябрь 04, 2012, 19:26:43 pm
Ответ #6

WinSTOP

  • Частный гость

  • Оффлайн
  • ***

  • 123
  • Репутация:
    3
    • Просмотр профиля
вот как получилось но ошибка
if(Physics.Raycast(Camera.main.ScreenPointToRay(Vector2(Screen.width/2,Screen.height/2)),hit,forward,100)){

Октябрь 04, 2012, 19:35:58 pm
Ответ #7

WinSTOP

  • Частный гость

  • Оффлайн
  • ***

  • 123
  • Репутация:
    3
    • Просмотр профиля
Понял одну вещь, что нужно вместо
  var forward = transform.TransformDirection(Vector3.forward);
  var direction = transform.TransformDirection(Vector3.forward);
Ставить
  var forward = transform.TransformDirection(Vector2.forward);
  var direction = transform.TransformDirection(Vector2.forward);

или я ошибаюсь

Октябрь 04, 2012, 19:53:07 pm
Ответ #8

WinSTOP

  • Частный гость

  • Оффлайн
  • ***

  • 123
  • Репутация:
    3
    • Просмотр профиля
Всё сделал,тема закрыта.

Октябрь 04, 2012, 21:30:52 pm
Ответ #9

Ru_lon

  • Активный участник

  • Оффлайн
  • ****

  • 390
  • Репутация:
    9
    • Просмотр профиля
Никогда не торопись задавать вопрос. Программирование_ это творчество, пробуй, ошибайся, пробуй, а только потом спрашивай.
Сильное государство угнетает нас, при слабом государстве погибаем мы сами.