Unity 3D:带偏移沿Y轴旋转物体朝向相机的实现问题
抓取物体旋转功能问题

我正尝试在游戏中添加抓取物体的功能,希望被抓取的物体沿Y轴旋转以朝向玩家,同时保留旋转偏移量——例如拿起侧放的锤子时,它能保持侧放姿态,仅随相机移动而旋转。
以下是用于旋转物体的代码:
public void mouseRotate(Vector3 pos) { //计算物体与玩家之间的新角度 float newAngle = Mathf.Rad2Deg * Mathf.Atan2(transform.position.x - pos.x, transform.position.z - pos.z); //对比上一帧的角度 float change = lastAngle - newAngle; //若路径无遮挡,则尝试旋转物体朝向玩家 Vector3 newRotation = transform.rotation.eulerAngles; newRotation.y -= change * 2.5f; rb.MoveRotation(Quaternion.Euler(newRotation)); lastAngle = newAngle; }
首次测试时旋转幅度不足,将change乘以2.5后仅存在微小但可察觉的误差,我不确定此调整生效的原因,曾猜测与物体和相机的距离有关,但该推测不成立。
内容的提问来源于stack exchange,提问作者parakeet
相关产品推荐
相关产品推荐

