Unity 相机 鼠标控制 移动+旋转

移动

初始化临时变量

//获取鼠标位置变化数据
float _mouseX = Input.GetAxis("Mouse X");
float _mouseY = Input.GetAxis("Mouse Y");
//初始化临时变量
Vector3 moveDir = Vector3.zero;
//_mouseY控制
if(...){
	//_mouseY 控制前后移动
	moveDir += _mouseY * -camera.transform.forward;
	moveDir.y = 0;
}else{
	//_mouseY 控制上下移动
	moveDir += _mouseY * -camera.transform.up;
	moveDir.z = 0;
}
//_mouseX控制
if(...){
	//_mouseX 控制左右移动
	moveDir += _mouseX * -camera.transform.right;
}else{
	//不需要左右移动
	moveDir.x = 0;
}
//最终赋值
camera.transform.position += moveDir * moveSpeed;

旋转

//获取鼠标位置变化数据
float _mouseX = Input.GetAxis("Mouse X");
float _mouseY = Input.GetAxis("Mouse Y");
//
if(...){
	//自身旋转
	camera.transform.Rotate(Vector3.up * _mouseX * rotateSpeedSelf, Space.World);
	camera.transform.Rotate(Vector3.right * (-_mouseY * rotateSpeedSelf), Space.Self);
}else{
	//围绕中心旋转
	camera.transform.RotateAround(this.cameraCenterPoint, Vector3.up, _mouseX * rotateSpeedWithCenter);
	camera.transform.RotateAround(this.cameraCenterPoint, camera.transform.right, _mouseY * rotateSpeedWithCenter);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值