У меня есть «Шар», «Направление съемки» и «Центральная цель» в моей сцене. «Shoot Direction» является дочерним объектом игрового объекта «Ball», как показано на рисунке. Я могу вращать «Shoot Direction» вокруг моего «Ball», используя встроенный в Unity метод «RotateAround».
https://imgur.com/a/FifaNOr
То, чего я хочу достичь, это;
- Поверните «Shoot Direction» вокруг «Ball», используя встроенный в Unity метод «RotateAround».
- Сохраняйте «Shoot Direction», смотря на «Center Target», независимо от положения и поворота «Ball» одновременно.
- Не изменять собственное вращение "Шара" при выполнении чисел 1 и 2.
То, что у меня есть в ShootDirection.cs, прикрепленном к игровому объекту «Shoot Direction»:
void FixedUpdate () {
if (canRotate && rotationSpeed != 0f) {
RotateAroundCenter ();
LookAtCenter ();
}
}
public void SetDistanceFromCenter () {
//Set distance from the Ball's Vector3.zero
thisTransform.localPosition = thisTransform.localPosition.normalized * distanceFromCenter;
}
public void LookAtCenter () {
//Look at the Ball's Vector3.zero
Vector3 dir = Vector3.zero - thisTransform.localPosition;
float angle = Mathf.Atan2 (dir.y, dir.x) * Mathf.Rad2Deg;
thisTransform.rotation = Quaternion.AngleAxis (angle + 90, Vector3.forward);
}
public void RotateAroundCenter () {
thisTransform.RotateAround (rotateAroundTransform.position, Vector3.back, rotationSpeed * Time.fixedDeltaTime * rotationDirection);
}