🚀 AddRelativeForce - рух відносно об'єкта
Якщо ви вже працювали з фізикою в Unity, то напевно використовували метод AddForce()
rb.AddForce(Vector3.forward * speed);
Але є одна проблема - Vector3.forward завжди означає напрямок по світових координатах
Тобто якщо об'єкт повернути, сила все одно буде прикладатися вперед по осі світу, а не по його власному напрямку
Для таких випадків існує AddRelativeForce()
rb.AddRelativeForce(Vector3.forward * speed);
Тепер сила прикладається відносно локальних осей об'єкта
Наприклад, якщо ракета повернута вправо на 90°, то AddForce:
rb.AddForce(Vector3.forward * speed);
рухатиме її вперед по світовій осі Z
А метод AddRelativeForce:
rb.AddRelativeForce(Vector3.forward * speed);
рухатиме її вперед саме в тому напрямку, куди дивиться ракета
Якщо ви вже працювали з фізикою в Unity, то напевно використовували метод AddForce()
rb.AddForce(Vector3.forward * speed);
Але є одна проблема - Vector3.forward завжди означає напрямок по світових координатах
Тобто якщо об'єкт повернути, сила все одно буде прикладатися вперед по осі світу, а не по його власному напрямку
Для таких випадків існує AddRelativeForce()
rb.AddRelativeForce(Vector3.forward * speed);
Тепер сила прикладається відносно локальних осей об'єкта
Наприклад, якщо ракета повернута вправо на 90°, то AddForce:
rb.AddForce(Vector3.forward * speed);
рухатиме її вперед по світовій осі Z
А метод AddRelativeForce:
rb.AddRelativeForce(Vector3.forward * speed);
рухатиме її вперед саме в тому напрямку, куди дивиться ракета