1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 【Unity】Unity实现鼠标控制摄像机围绕物体旋转镜头 滑轮控制远近

【Unity】Unity实现鼠标控制摄像机围绕物体旋转镜头 滑轮控制远近

时间:2019-11-26 01:01:27

相关推荐

【Unity】Unity实现鼠标控制摄像机围绕物体旋转镜头  滑轮控制远近

在游戏和一些产品展示等项目中会有让摄像机围绕某个物体进行旋转这种需求

下面展示的代码是个删减版的 只保留了主要功能限制的方面都删除了

在原有的代码中有 移动摄像机功能 围绕的点不做限制每帧都在变化 还有移动的范围限制 旋转的角度限制 还有触发层级的限制 UI误触限制等。。

使用的过程中可以根据自己的需求来添加

在实际的使用中可能会有限制的需求 比如最大远离多少 最近距离多少 不能旋转到地面以下等

using System.Collections;using System.Collections.Generic;using UnityEngine;//摄像机操作 //删减版 在实际的使用中可能会有限制的需求 比如最大远离多少 最近距离多少 不能旋转到地面以下等public class CamCtrl : MonoBehaviour{public Transform CenObj;//围绕的物体private Vector3 Rotion_Transform;private new Camera camera;void Start(){camera = GetComponent<Camera>();Rotion_Transform = CenObj.position;}void Update(){Ctrl_Cam_Move();Cam_Ctrl_Rotation();}//镜头的远离和接近public void Ctrl_Cam_Move(){if (Input.GetAxis("Mouse ScrollWheel") > 0){transform.Translate(Vector3.forward * 1f);//速度可调 自行调整}if (Input.GetAxis("Mouse ScrollWheel") < 0){transform.Translate(Vector3.forward * -1f);//速度可调 自行调整}}//摄像机的旋转public void Cam_Ctrl_Rotation(){var mouse_x = Input.GetAxis("Mouse X");//获取鼠标X轴移动var mouse_y = -Input.GetAxis("Mouse Y");//获取鼠标Y轴移动if (Input.GetKey(KeyCode.Mouse1)){transform.RotateAround(Rotion_Transform, Vector3.up, mouse_x * 5);transform.RotateAround(Rotion_Transform, transform.right, mouse_y * 5);}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。