Unity鼠标在屏幕边缘移动视角
2022-04-08 14:25
1641 查看
##效果类似RTS游戏中鼠标在屏幕边缘移动视角 演示视频:https://www.bilibili.com/video/BV1d44y1V7VR/ 在场景中任意添加一个参照物即可 ###1.首先是2D场景 新建空物体并搭载脚本
CamMove
public class CamMove : MonoBehaviour { public float edgeSize; //会产生移动效果的边缘宽度 public float moveAmount; //移动速度 public Camera myCamera; //会移动的摄像机 private Vector3 camFollowPos; //用于给摄像机赋值 private bool edgeScrolling = true; //移动开关 // Start is called before the first frame update void Start() { camFollowPos = myCamera.transform.position; //保存摄像机初始位置,移动是在初始位置的基础上计算 } void Update() { if (Input.GetKeyDown(KeyCode.Space)) //移动开关 { edgeScrolling = !edgeScrolling; } if (edgeScrolling) //如果打开 { //屏幕左下角为坐标(0, 0) if (Input.mousePosition.x > Screen.width - edgeSize)//如果鼠标位置在右侧 { camFollowPos.x += moveAmount * Time.deltaTime;//就向右移动 } if (Input.mousePosition.x < edgeSize) { camFollowPos.x -= moveAmount * Time.deltaTime; } if (Input.mousePosition.y > Screen.height - edgeSize) { camFollowPos.y += moveAmount * Time.deltaTime; } if (Input.mousePosition.y < edgeSize) { camFollowPos.y -= moveAmount * Time.deltaTime; } myCamera.transform.position = camFollowPos;//刷新摄像机位置 } } }
这样鼠标移动到屏幕边缘时摄像头就会移动 ###2.然后是3D场景 将脚本中会变化的camFollowPos.y改为camFollowPos.z即可
public class CamMove : MonoBehaviour { ...... if (Input.mousePosition.y > Screen.height - edgeSize) { camFollowPos.z += moveAmount * Time.deltaTime; } if (Input.mousePosition.y < edgeSize) { camFollowPos.z -= moveAmount * Time.deltaTime; } } } }
相关文章推荐
- unity中让摄像机移动到鼠标点击的位置和鼠标控制平移视角
- unity中鼠标左键控制摄像机视角上下左右移动
- unity。。。完美简单解决靠鼠标在屏幕上的移动来控制相机水平,垂直旋转的c#脚本
- 【Unity】按住鼠标右键,移动场景内镜头(适用于塔防等游戏视角)
- Unity简单利用屏幕坐标转换实现鼠标控制物体移动
- Unity鼠标点击进行视角移动,并且带滚轮放大缩小效果
- unity 鼠标控制第一人称视角及键盘控制移动升级版
- Unity 物体在屏幕内跟随鼠标移动
- Unity鼠标出屏幕后 摄像机跟随鼠标方向移动
- Unity相机移动之屏幕边缘检测
- unity中如何用鼠标右键控制摄像机视角上下左右移动
- unity 鼠标控制第一人称视角及键盘控制移动
- Unity-点击屏幕进行移动
- Unity移动视角(MainCamera的操作)
- unity中鼠标拖拽物体移动
- 我的Unity(2)一点一滴 鼠标拖动物体,物体在三维中移动到该位置。
- unity 鼠标拖动三维物体移动
- Unity 3d 如何实现点击屏幕,npc自动移动到点击位置
- Unity3D鼠标控制摄像机“左右移动控制视角+WASD键盘控制前后左右+空格键抬升高度”脚本
- [Unity]将摄像机移动到Scene视角位置