newRotation = Quaternion. LookRotation # 40; transform. position - target. position # 41; ;
А давай згадаємо непомнюкакой клас, де ми вчили вектора. Щоб знайти вектор, потрібно від координати кінця відняти координату початку. У тебе вектор повинен бути спрямований від гармати до цілі. Тобто гармата - початок, а мета - кінець. А у тебе вийшло навпаки.
А ще, наскільки я знаю, Vector3.x - read only.
Спробуй ось так:
void Update # 40; # 41;
# 123;
Quaternion endRotation = Quaternion. LookRotation # 40; target. position - transform. position # 41; ;
transform. rotation = Quaternion. Slerp # 40; transform. rotation. endRotation, Time. deltaTime * 8 # 41; ;
# 125;
Записав, перевірив. Рівність виконання підтверджую.
Simmilliar писал (а): Це повинно переводити кватерніон в градуси
Це - навпаки
Спасиб.
Обертання курсора навколо гравця запив шляхом виведення в зошиті рівняння перетину прямої (по 2 точкам) і окружності (з центром в першій точці) Половину посокращал, зводив в квадрат за допомогою множення змінних на самих себе в результаті вийшла така дика штука. Зате работае на ура.
if # 40; target. transform. position. z> RotationController. transform. position. z # 41;
# 123;
zb = Mathf. Sqrt # 40; r * r * # 40; target. transform. position. z - RotationController. transform. position. z # 41; * # 40; target. transform. position. z - RotationController. transform. position. z # 41; / # 40; # 40; target. transform. position. y - RotationController. transform. position. y # 41; * # 40; target. transform. position. y - RotationController. transform. position. y # 41; + # 40; target. transform. position. z - RotationController. transform. position. z # 41; * # 40; target. transform. position. z - RotationController. transform. position. z # 41; # 41; # 41; + RotationController. transform. position. z;
if # 40; target. transform. position. z
zb = - Mathf. Sqrt # 40; r * r * # 40; target. transform. position. z - RotationController. transform. position. z # 41; * # 40; target. transform. position. z - RotationController. transform. position. z # 41; / # 40; # 40; target. transform. position. y - RotationController. transform. position. y # 41; * # 40; target. transform. position. y - RotationController. transform. position. y # 41; + # 40; target. transform. position. z - RotationController. transform. position. z # 41; * # 40; target. transform. position. z - RotationController. transform. position. z # 41; # 41; # 41; + RotationController. transform. position. z;
if # 40; target. transform. position. y> RotationController. transform. position. y # 41;
# 123;
yb = Mathf. Sqrt # 40; r * r - # 40; zb - RotationController. transform. position. z # 41; * # 40; zb - RotationController. transform. position. z # 41; # 41; + RotationController. transform. position. y;
# 125;
if # 40; target. transform. position. y
yb = - Mathf. Sqrt # 40; r * r - # 40; zb - RotationController. transform. position. z # 41; * # 40; zb - RotationController. transform. position. z # 41; # 41; + RotationController. transform. position. y;
# 125;
Director. transform. position = new Vector3 # 40; 0, yb, zb # 41; ;
Director. transform. LookAt # 40; RotationController. transform. position # 41; ;
Прихований текст: показати
Ще б хто lerp'ом навчив користуватися, щоб уповільнювати снаряд. Ну в баню цей ваш рігідбаді