首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法只在Y轴上使用Quaternion.LookRotation()来旋转游戏对象?

有没有办法只在Y轴上使用Quaternion.LookRotation()来旋转游戏对象?
EN

Stack Overflow用户
提问于 2020-04-15 06:30:21
回答 1查看 153关注 0票数 0

所以,我正在做Unity项目。我有一个迫击炮,它倾向于玩家游戏对象。我想旋转它,让它跟随玩家的移动。我在我的Update方法中想出了这个简单的代码:

代码语言:javascript
运行
复制
        Vector3 directionToFace = _player.position - transform.position;
        directionToFace.y = 0;
        Debug.DrawRay(transform.position, directionToFace, Color.green); // for visualization
        transform.rotation = Quaternion.LookRotation(directionToFace);

但是将y设置为0,x轴的旋转上限为0,但我希望我的砂浆向前倾斜一点。我尝试将y设置为许多不同的值,但两个对象之间的距离决定了迫击炮的倾斜度。是的,我知道我可以让它成为一个空游戏对象的子对象,并将脚本应用于父对象,但如果有任何其他方法可以在我的代码中解决这个问题……您的帮助我们将不胜感激。

我唯一的想法是计算两个游戏对象之间的距离,并相应地更改directionToFace.y的值。但我必须在检查器中获得分配给灰浆的局部旋转,然后使用毕达哥拉斯定理计算该值。但我不想那么折磨自己:D

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-15 12:14:09

希望我能理解你的问题!我发现可以通过在代码后面添加下面这一行来使gameObject向前倾斜

代码语言:javascript
运行
复制
transform.rotation = Quaternion.Euler(xOffset,transform.rotation.eulerAngles.y, transform.rotation.eulerAngles.z);

其中xOffset是您希望游戏对象倾斜的量,也可以以类似的方式为z添加显式值。

如果这不是你的意思,请告诉我。

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

https://stackoverflow.com/questions/61218336

复制
相关文章

相似问题

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