我试图写一个相机脚本,这个脚本将保持我在旋转时看到的透视点。
public void RegisterRotationControls()
{
var horizontal = CrossPlatformInputManager.GetAxis(InputAxisName.Horizontal.ToString());
offsetX = Quaternion.AngleAxis(horizontal * turnSpeed, Vector3.up) * offsetX;
transform.position = player.position + offsetX;
transform.LookAt(player.position + PlayerOffset);
}
目前此脚本仅在相机正在观看播放器时才能正常工作,但是相机可以自由移动位置,但旋转应保持与中心的相对性。
顶行显示当前行为,而底部描述应该发生的行为
答案 0 :(得分:2)
手动计算旋转以将相机移动到圆圈中同时保留其原始(相对)面部有点麻烦,并且需要您做比您需要的更多的数学运算。
一种流行的解决方案是将相机置于空GameObject下,并将GameObject置于您希望相机旋转的点/对象上。 (这基本上内化了很多计算,让引擎完成繁重的工作。)然后,您可以根据需要在本地翻译相机,然后旋转容器GameObject以将相机移动一圈。