1 回答
TA贡献1906条经验 获得超3个赞
public GameObject playerHead;
public GameObject character;
void Update()
{
//check if the head is at a specific angle and if the mouse is moving
if (playerHead.transform.localRotation.x >= 0.59f && Input.GetAxis("Mouse X") < 0) {
//rotate the body at the speed of the mouse
transform.Rotate(new Vector3(0, Input.GetAxis("Mouse X"), 0));
//repeat
} else if (playerHead.transform.localRotation.x <= -0.59f && Input.GetAxis("Mouse X") > 0) {
transform.Rotate(new Vector3(0, Input.GetAxis("Mouse X"), 0));
}
}
TA贡献1852条经验 获得超1个赞
可能的解决方案:( 我猜在你的项目中移动相机==移动头部)
您只需使用(https://docs.unity3d.com/ScriptReference/Vector3.Angle.html)即可获得头部Transform.eulerAngles
和身体之间的相对角度,然后,在该方法中您可以手动旋转身体,例如,(https:// docs.unity3d.com/ScriptReference/Rigidbody.MoveRotation.html)。Transform.eulerAngles
Vector3.Angle
Update
Rigidbody.MoveRotation
您还可以调整此旋转以使其顺利进行。 (如果您添加一些代码,我可以为您提供更多帮助)
- 1 回答
- 0 关注
- 104 浏览
添加回答
举报