c# - 为什么我的相机在围绕播放器对象旋转时会夹在播放器对象中?
问题描述
我正在尝试创建一个以固定距离环视玩家的相机。
我有一点点,但是当水平旋转我的对象时,相机会夹到我的对象中。以一定角度围绕对象旋转时(从上/下看)不会发生这种情况。
请注意,玩家视觉对象和相机跟随的目标不是视觉玩家对象的子对象。他们都是父母的孩子,可以独立移动。
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);
}
非常感谢任何有助于理解为什么会发生这种情况的帮助!
干杯!
解决方案
找到了答案,我不得不将播放器视觉添加到忽略碰撞列表中。摄像机撞到了不同的播放器组件。
推荐阅读
- assembly - 手臂组装/如何解决白蚁显示问题?
- jquery - 如何订购表格行?
- c# - 更改场景时访问 AudioSource 对象
- sql - 在 Eclipse (rbfw) 中使用 DatabaseLibrary 的 SQL 语句返回乱码而不是仅返回确切值
- python - 如何为特定的 POS 打印机格式化 Python 字符串
- python - 如何异步使用playsound?
- javascript - 根据传单中的数据属性更改标记颜色
- python - 当我尝试分组时,位置参数跟随关键字参数错误
- google-apps-script - 从另一个 Apps Script 项目运行 Apps Script Web App 时如何以编程方式进行身份验证
- ssh - 在另一个出口点使用wireguard服务器和隧道出口流量