我正在尝试制作一款游戏,当相机移动时,相机跟随用户。我让相机成为玩家的孩子,在编辑器中,相机可以很好地围绕玩家旋转。当我玩游戏(在Unity中)并旋转播放器时,相机会旋转而不是围绕播放器旋转以保持相同的常规跟随距离。 我使用transform.Rotate()来旋转播放器。
摘要:
感谢所有帮助,请求帮助。
答案 0 :(得分:3)
我让相机成为玩家的孩子并且在编辑器中
这一切都失败了。如果您希望相机跟随播放器,则不要让相机成为小孩。
您所做的是在Start()
功能中获取相机与播放器之间的距离。这也称为offset
。在LateUpdate()
功能中,将相机连续移动到播放器的位置,然后将该偏移添加到相机的位置。就这么简单。
public class CameraMover: MonoBehaviour
{
public Transform playerTransform;
public Transform mainCameraTransform = null;
private Vector3 cameraOffset = Vector3.zero;
void Start()
{
mainCameraTransform = Camera.main.transform;
//Get camera-player Transform Offset that will be used to move the camera
cameraOffset = mainCameraTransform.position - playerTransform.position;
}
void LateUpdate()
{
//Move the camera to the position of the playerTransform with the offset that was saved in the begining
mainCameraTransform.position = playerTransform.position + cameraOffset;
}
}