【发布时间】:2020-06-08 09:02:12
【问题描述】:
我试图让我的飞船实体看向它们正在移动的方向或它们正在环绕的目标。在这一点上,我会对任何一个结果感到满意。不幸的是,尽管我在 Google 上研究了如何实现这一点,但我似乎对底层数学的理解还不够。
这是我目前在我的 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;
}
【问题讨论】:
标签: c# unity3d entity-component-system