Поворот объекта через transform.Rotate

206
04 февраля 2019, 18:00

Как повернуть объект по направлению к другому через transform.Rotate только по оси у?

Answer 1

Update

  1. Оказывается, автору нужно вращать RigidBody, а не Transform
  2. Видимо, под "вращение по оси y" автор имел в виду "вращение по оси x", т.е. в плоскости yz

Получаем вектор между вращающимся объектом и "целью" и передаем его в Quaternion.LookRotation(Vector3).

Поскольку нужно вращаться относительно оси Y, нужно оставить y составляющую вектора нетронутой, т.е. присвоить ей значение вращающегося объекта.

public class Rotator : MonoBehaviour {
    public GameObject target;
    Rigidbody rb;
    void Awake() {
        rb = GetComponent<Rigidbody>();
    }
    void FixedUpdate() {
        Vector3 yz_targetPos = target.transform.position;
        yz_targetPos.x = rb.position.x;
        rb.rotation = Quaternion.LookRotation(yz_targetPos - rb.position);
    }
}
READ ALSO
Репозиторий &ldquo;два-в-одном&rdquo;

Репозиторий “два-в-одном”

Есть некоторый сервис, который дёргает два репозитория (первый - к сущности Order, второй - к сущности OrderPosition) и возвращает уже собранный заказ...

253
Как эффективно затереть данные

Как эффективно затереть данные

Задача: повредить файл, для обеспечения невозможности его чтения(И удачного восстановления если его удалить программным способом, на той...

395
Bluetooth LE не обнаруживает устройства

Bluetooth LE не обнаруживает устройства

Делаю попытку обнаружения устройств с помощью Bluetooth LE, сделал как написано в этой библиотеке для Xamarin, однако обнаруженных устройств 0

207
LINQ c# Условие внутри сортировки

LINQ c# Условие внутри сортировки

Сортирую список и нужно указать условие что-то вроде если "поле" == null, то сортируй по "поле2", если нет то сортируй по "поле"Как я понял конструкция...

206