我正在尝试创建一个以固定距离环视玩家的相机。
我有一点点,但是当水平旋转我的对象时,相机会夹到我的对象中。以一定角度围绕对象旋转时(从上/下看)不会发生这种情况。
请注意,玩家视觉对象和相机跟随的目标不是视觉玩家对象的子对象。他们都是父母的孩子,可以独立移动。
PlayerParent
|
==================================
| |
PlayerVisual CameraTarget
我真的不知道为什么会这样。
void Start()
{
_camera = GetComponent<CinemachineVirtualCamera>();
}
// Update is called once per frame
void Update()
{
RotateHorizontal();
RotateVertical();
}
void RotateVertical()
{
var _rotationPower = 2f;
_camera.Follow.rotation *= Quaternion.AngleAxis(Input.GetAxis("Mouse Y") * _rotationPower, Vector3.right);
var angles = _camera.Follow.eulerAngles;
angles.z = 0;
var angle = _camera.Follow.eulerAngles.x;
//clamp rotation.
if (angle > 180 && angle < 340)
{
angles.x = 340;
}
else if (angle < 180 && angle > 40)
{
angles.x = 40;
}
_camera.Follow.eulerAngles = new Vector3(angles.x, _camera.Follow.eulerAngles.y, 0);
}
void RotateHorizontal()
{
var _rotationPower = 2f;
_camera.Follow.Rotate(new Vector3(0, Input.GetAxis("Mouse X") * _rotationPower, 0), Space.Self);
}
非常感谢任何有助于理解为什么会发生这种情况的帮助!
干杯!