Unity,在光线投射的顶部添加旋转.正常



因此,在旋转游戏对象以匹配基于光线投射的地形后,我试图围绕Y轴进行一些旋转:

Ray ray = camera.ScreenPointToRay(Input.mousePosition);
RaycastHit hitInfo;
if (Physics.Raycast(ray, out hitInfo, 50, mask, QueryTriggerInteraction.Ignore))
{
//move object to point ( working )
gm.transform.position = hitInfo.point;
//apply rotation to mach the terrain ( working )
gm.transform.rotation = Quaternion.FromToRotation(Vector3.up, hitInfo.normalized);
//add some rotation ( float ) around the Y axis ( NOT working )
gm.transform.rotation += Quaternion.Euler(0f, rotation, 0f);
}

出于某种原因,当我禁用最后一行应用更多旋转时,一切都是正常的,当我启用它时,x和z旋转默认为0.0317或0,而Y旋转根本不应用。

我真的不知道怎么了,请帮忙。提前谢谢。

gm.transform.rotation *= Quaternion.AngleAxis(Angle, Vector3.up);

Angle应以度为单位。

@Ruzihm帮助说出

尝试gm.transform.Regate(0f,rotation,0f,Space.World(;

它不起作用,它绕着世界上的Y轴旋转,它必须是局部的,所以通过将其更改为gm.transform.Rotate(0f, rotation, 0f, Space.Self);它工作得很好,谢谢你的帮助。

最新更新