通过鼠标的滚轮控制摄像机视野的拉近拉远效果

游戏中常常见到视野的拉近拉远效果,比如英雄联盟中就可以通过鼠标滚轮进行视野的拉近与拉远,同时你也会发现在视野进行拉近拉远到一定程度时,在进行操作就不起作用了,因为视野的拉近拉远有一定的限制范围。所以今天分享一个摄像机视野拉近拉远的代码。

代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class FllowPlayer : MonoBehaviour {public float scrollSpeed = 10;//滑轮滚动速度private Transform player;//主角的位置变量private Vector3 offsetPosition; //位置偏移public float distance = 0;//位置偏移的向量长度void Start () {player = GameObject.FindGameObjectWithTag(Tags.player).transform;//找到主角的位置offsetPosition = transform.position - player.position;//主角与摄像机之间的偏移}void Update () {//调用处理视野的拉近和拉远方法ScrollView();
}private  void ScrollView(){//向后滑动返回负值  向前滑动返回正值distance = offsetPosition.magnitude;//位置偏移的向量长度distance -= Input.GetAxis("Mouse ScrollWheel") *scrollSpeed;//获取滚轮值的改变distance = Mathf.Clamp(distance, 2, 15);//限制滚轮距离的范围,此数值可根不同需求设置相应的值offsetPosition = offsetPosition.normalized * distance;  //单位向量  方向不变 距离改变}}

=

注意:代码中定义了一个ScrollView()方法目的是使代码更加清晰整洁,在相对较大的项目中,代码都成百上千行,如果全部写在Update函数中,极不容易进行修改和操作,也不方便团队成员的阅读和查阅。所以一般在Update中每定义使用一种类型的功能时,可以 为这类功能定义一个方法,通过在Update对方法的调用来实现功能。

Unity3D——学习分享(十三)鼠标滚轮控制视野拉近拉远效果相关推荐

  1. unity实现摄像机拉近拉远视野

    近期做项目时遇到需要实现摄像机视野拉近拉远的效果 用鼠标滚轮实现摄像机视野拉近拉远 代码如下: private float mouseX; private float mouseY; void Upd ...

  2. Unity鼠标拖动物体、按下鼠标左键旋转观察物体、鼠标滚轮缩放视野

    如题目所示,本文实现这三个效果.所有代码都在pc端成功运行,移植到手机端改变相应的判断条件即可,核心算法没有问题. 一. 鼠标拖拽移动物体 效果演示 源代码 public class mousedra ...

  3. 鼠标滚轮控制panel滚动条

    在winform开发中,通过设置Panel的AutoScroll属性来控制滚动条是否显示,但显示滚动条的时候,鼠标的滚轮是无法控制Panel里面的滚动条的,只能控制Form的滚动条,当我们需要控制Pa ...

  4. html鼠标滑轮换图片,JavaScript实现鼠标滚轮控制页面图片切换

    鼠标上的滚轮是一个不错的东东,为什么这么说,因为它能帮助我们快速的浏览网页,快速的进行长篇文章的阅读.对于web前端的我们来说又怎么能不注重这个鼠标滚轮呢,那么它能如何让用户更好的浏览网页呢?本文主要 ...

  5. 鼠标滚轮控制音量软件

    简介: 当我们想要调整电脑的音量时,有时无法将其设置为我们需要的精确音量,只能调个大概,使用这款 tb-vol-scroll 软件可以帮助我们轻松控制电脑音量,通过用鼠标滚轮滑动的方式就能增大或减小音 ...

  6. 【STM32】标准库与HAL库对照学习教程十三--软件IIC控制AT24C02

    [STM32]标准库与HAL库对照学习教程十三--软件IIC控制AT24C02 一.前言 二.准备工作 三.AT24C02(EEPROM)介绍 1.AT24C02简介 2.引脚功能 3.设备地址 四. ...

  7. WPF 使用鼠标滚轮控制ListBox水平滚动条滚动

    我们都知道在WPF中鼠标滚轮可以控制垂直滚动条滚动,但没有什么属性设置可以让它控制水平滚动条滚动,所以我们需要自己去实现水平滚动. 首先,在ListBox的Mousewheel事件中获得ListBox ...

  8. Unity 实现简单的相机跟随和鼠标滚轮拉近拉远视野

    1.脚本挂载在Main Camera 上 ,相机跟随的实现主要是让相机的位置和玩家的位置的差值始终保持不变. 2.实现鼠标滚轮拉近拉远视野,要先测试一下自己鼠标滚轮前滑后滑的正负值,每个鼠标不一定相同 ...

  9. svg html 鼠标滚轮交互,鼠标滚轮控制SVG线条动画

    之前用D3制作图表是初次接触SVG,当时只顾感叹D3的强大了.后来当看到网站 Serio Verify 的时候,才意识到SVG用于制作可交互的页面动画是多么有意思. 于是自己也尝试在HTML页面中制作 ...

最新文章

  1. web程序前后台功能实现_微信定制开发、小程序定制开发可以实现哪些功能?
  2. JavaScript入门篇 - DOM操作
  3. .Net 获取日期所属于一年中的第几周
  4. windows-vscode编写c/c++(适用日期2020-5月的vscode)--简洁版(下载gdb.exe)
  5. java整合flex
  6. PCA的原理及MATLAB实现
  7. Oracle订单号就是授权号码,oracle多单号的说明
  8. 蓝桥杯第七届决赛JAVA真题----广场舞
  9. 快应用宣布支持第三方DSL
  10. Linux 性能测试工具 sysbench 的安装与简单使用
  11. matlab数字仿真实验,matlab数值仿真
  12. CM108AH和DP108/DP108T的区别
  13. 【CATIA】系统架构 | 达索系统百世慧®
  14. 差错控制 —— 码距和纠错编码(海明码)
  15. 微信小程序获取用户昵称和头像
  16. Android集成友盟推送服务
  17. 清除session ,清除cookie
  18. WeLink可以发邮件吗?
  19. 关于@yahoo.cn
  20. 博弈论算法Java,博弈论-java-51CTO博客

热门文章

  1. 跟着玄武大佬学NTLM relay攻防
  2. Wox启动后出现Everything Service或Everything Client 没有运行的解决办法
  3. java改名_一个java项目怎么改项目名字
  4. DFIG_Wind_Turbine:基于MATLAB/Simulink的双馈异步风力发电机仿真模型,控制方案采用矢量控制
  5. 基于iview前端工程搭建
  6. 【redis篇】超详细的redis安装教程,学不会你找我
  7. 常用的激光雷达数据及相关数据
  8. Mongodb 模式设计案例一例
  9. WEB安全-SQL注入
  10. 代码行数统计工具statistic和cloc的使用