首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我如何锁定我的相机Z轴旋转在统一?

我如何锁定我的相机Z轴旋转在统一?
EN

Stack Overflow用户
提问于 2019-01-31 01:56:10
回答 2查看 1.9K关注 0票数 0

我使用鼠标位置旋转我的相机:

代码语言:javascript
运行
AI代码解释
复制
void FixedUpdate()
{
    transform.Rotate(-Input.GetAxis("Mouse Y") * rotationspeed * Time.deltaTime, Input.GetAxis("Mouse X") * rotationspeed * Time.deltaTime, 0);
}

问题是,在旋转了一段时间后,相机也开始在Z轴上旋转。我该怎么办锁定相机的Z轴旋转?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-31 07:13:00

Transform.Rotate有一个可选的参数

代码语言:javascript
运行
AI代码解释
复制
Space relativeTo = Space.Self

因此,默认情况下,它被设置为Sapce.Self,因此它围绕对象的本地轴旋转。

所以,一旦你向下看,改变局部的X轴,你的本地Y轴就不再是笔直向上的,而是有点向前。所以,如果你现在围绕着这个地方的Y轴旋转,你的地方地平线就会突然不再与世界的地平线保持一致。

相反,你想要做的事情(在上面链接的例子中也可以看到)是围绕世界空间的Y轴旋转,但在局部空间中围绕X轴旋转。

像这样

代码语言:javascript
运行
AI代码解释
复制
[SerializeField] private float rotationspeed;

private void FixedUpdate()
{
    // rotate around global world Y
    transform.Rotate(Input.GetAxis("Mouse X") * rotationspeed * Time.deltaTime, 0, 0, Space.World);

    // rotate around local X
    transform.Rotate(0, -Input.GetAxis("Mouse Y") * rotationspeed * Time.deltaTime, 0);
}
票数 0
EN

Stack Overflow用户

发布于 2019-01-31 02:20:49

如果你想在两个轴上旋转一个物体,那么在默认情况下,第三轴会旋转,你不能锁定它,因为它是真实世界的事实。在现实世界中试试这个3d物体,旋转任意两轴,第三次旋转,automatically.If,你旋转一个轴,另外两个会固定。谢谢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54457855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档