Я пытаюсь заставить свои корабельные сущности либо смотреть в направлении, куда они движутся, либо на цель, вокруг которой они вращаются. На данный момент я был бы счастлив с любым результатом. К сожалению, я просто, кажется, недостаточно понимаю основную математику, несмотря на все мои исследования Google о том, как выполнить sh this.
Это то, что у меня сейчас есть в моей RotateSystem
public void Execute(ref Translation shipPosition, ref Ship ship, ref Rotation rotation)
{
ship.Theta += .0075f;
float3 delta = new float3(
ship.Radius * Mathf.Sin(ship.Theta) * Mathf.Cos(ship.Phi),
ship.Radius * Mathf.Cos(ship.Theta),
ship.Radius * Mathf.Sin(ship.Theta) * Mathf.Sin(ship.Phi));
rotation.Value = Quaternion.Slerp(rotation.Value,
Quaternion.LookRotation(ship.OrbitTarget + delta-shipPosition.Value),0.5f);
shipPosition.Value = ship.OrbitTarget + delta;
}
Результатом этого является то, что корабли оказываются перед своей целью на орбите в 1/2 раза и в другую половину времени. ![enter image description here](https://i.stack.imgur.com/ai5L6.gif)