繁体   English   中英

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

[英]Is there a way to rotate gameobject using Quaternion.LookRotation() on Y axis only?

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

        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

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

transform.rotation = Quaternion.Euler(xOffset,transform.rotation.eulerAngles.y, transform.rotation.eulerAngles.z);

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

旋转对象

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM