首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >子游戏对象比父游戏对象移动得更快

子游戏对象比父游戏对象移动得更快
EN

Stack Overflow用户
提问于 2017-04-17 13:35:29
回答 2查看 547关注 0票数 0

字符是父对象,其子对象为照相机对象(FPS类型)。

照相机对象有一个脚本,它可以“抛出”光线投射来检测它前面的物体。

相机对象有一个子对象“十字”,这个子对象有一个脚本'ShowCrosshair‘。

代码语言:javascript
运行
复制
Character <- Camera <- Crosshair.

预期的行为应该是:我上下移动鼠标,相机围绕y轴旋转,同时交叉物体在屏幕中心平稳地移动。

但是,每当我移动鼠标上/下,交叉头发移动速度超过相机可以旋转和离开视线。

这是我的相机旋转代码:

代码语言:javascript
运行
复制
 //vertical is float and is initially zero and transform is for the current gameObject i.e Camera
 vertical -= Input.GetAxis("Mouse Y");
 transform.localRotation = Quaternion.Euler(new Vector3(vertical, 0.0f, 0.0f));

此脚本附在照相机对象上。 人们希望交叉头发与相机一起移动,这就是为什么它被相机对象所取代的原因。

EN

回答 2

Stack Overflow用户

发布于 2017-04-17 13:40:13

我认为你不想要的行为会发生,因为每当你移动、旋转或缩放父母变换时,所有的孩子都会受到影响,因此当你旋转相机时,交叉头发会跟着它移动,然后你旋转十字头发,导致它第二次旋转,然后离开视线。

票数 0
EN

Stack Overflow用户

发布于 2017-04-17 16:25:21

它看起来像你在X轴上旋转,而不是在这条线上的Y(垂直):

代码语言:javascript
运行
复制
transform.localRotation = Quaternion.Euler(new Vector3(vertical, 0.0f, 0.0f));

另外,您可能应该将输入的影响乘以增量时间,否则它会移动得太快。

代码语言:javascript
运行
复制
vertical -= Input.GetAxis("Mouse Y") * Time.deltaTime;

但我不认为这是你的问题。您评论说,脚本附加到Camera。它是否也附在Crosshair上?因为如果是这样的话,你就会得到双轮旋转。如果没有,请看一下哪些脚本可能会改变Crosshair的旋转。如果你只是在移动相机,你根本不需要任何旋转的Crosshair (因为它会和它的父母一起移动)。

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

https://stackoverflow.com/questions/43452564

复制
相关文章

相似问题

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