unity鼠标控制镜头旋转_在unity中用鼠标控制控制物体旋转

功能大概是这个样子的,用鼠标的上下、左右移动来控制unity中某个物体的左右、上下转转。

public Camera cam;

void Update()

{

Vector3 fwd = cam.transform.forward;

fwd.Normalize();

if (Input.GetMouseButton(0))

{

Vector3 vaxis = Vector3.Cross(fwd, Vector3.right);

transform.Rotate(vaxis, -Input.GetAxis("Mouse X"), Space.World);

Vector3 haxis = Vector3.Cross(fwd, Vector3.up);

transform.Rotate(haxis, -Input.GetAxis("Mouse Y"), Space.World);

}

}

transform.Rotate()这个函数官方是这样解释的:

public void Rotate(Vector3 axis, float angle, Space relativeTo = Space.Self);

axis Axis to apply rotation to.

angle Degrees to rotation to apply.

relativeTo Rotation is local to object or World.

因为物体在不断随着鼠标的运动旋转,所以旋转时一定要在世界坐标中,否则我们看到的是物体绕着自身的轴转转。另外,我们看到的都是通过camera来看到的,所以Rotate的第一个参数axis一定要是camera的某个轴向,左右方向的旋转需要绕着camera的up方向,上下方向的旋转需要绕着camera的right方向。

这样无论物体和camera初始的rotation是多少,都可以正确的实现旋转啦。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值