Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Направление толчка в Unity

Коля Колесников Знаток (330), на голосовании 3 месяца назад
Я использую обычные толчки:
  rb.AddForce(Vector3.left * speed); 
Но не знаю, как сделать направление толчку - то есть в градусах - буду рд если подскажете!
Голосование за лучший ответ
Андрей . Мастер (1196) 4 месяца назад
https://habr.com/ru/articles/547876/
Коля КолесниковЗнаток (330) 4 месяца назад
А как это можно в коде то использовать?
не знаю для чего тебе толчки под углом, но.. В доке написано AddForce(float x, float y, float z, ForceMode mode = ForceMode.Force); Хочешь под 45 градусов, пишешь x: 15, y :15, z :0, например
Инспектор Жопидý Оракул (86401) 4 месяца назад
Для задания направления толчка в Unity, вам нужно использовать вектор, который будет указывать на направление, в котором должен двигаться объект. В Unity, векторы могут быть созданы с помощью встроенных методов, таких как `Vector3.forward`, `Vector3.right`, `Vector3.up`, и т.д. Эти векторы указывают на основные оси координат.

Если вы хотите задать толчок в конкретном направлении, используйте вектор, который будет указывать на это направление. Вот пример, как это сделать:

```csharp
// Задайте скорость и угол, в котором должен двигаться объект
float speed = 10f;
float angle = 45f; // Угол в градусах

// Создайте вектор, который будет указывать на направление
Vector3 direction = new Vector3(Mathf.Sin(angle * Mathf.Deg2Rad), 0, Mathf.Cos(angle * Mathf.Deg2Rad)).normalized;

// Добавьте толчок в указанное направление
rb.AddForce(direction * speed);
```

В этом примере:

1. `speed` - скорость, с которой объект будет двигаться.
2. `angle` - угол в градусах, в котором должен двигаться объект.
3. `direction` - вектор, указывающий на направление, в котором должен двигаться объект.
4. `rb` - компонент Rigidbody, к которому вы хотите применить толчок.

Метод `Mathf.Sin` и `Mathf.Cos` используются для создания вектора, который будет указывать на направление. Метод `normalized` используется для нормализации вектора, чтобы он имел длину 1.

Иван Булаев Ученик (147) 4 месяца назад
Если не хочешь гемороиться и делать как это описал человек выше, то просто поищи точку относительно игрика, чтобы объект толкался туда, т.е не вектор3 лефт ты прописываешь, а какие нуибудь значения. Допустим: 0, 45, 0
Похожие вопросы