unity实现简单fps游戏鼠标功能

1.unity实现瞄准镜功能

实现原理

  • 按下鼠标右键镜头拉近,再次按下镜头拉远(设置Camrea的FOV属性)
  • 逐渐拉近(例如:60->20逐渐拉近)
  • 设置缩放等级使每次点击的缩放效果不同
public class ScaleCamera : MonoBehaviour
{private bool isFar=true;private Camera cam;private int[] zoomLength = { 60,40,20 };//设置缩放等级private int length = 0;// Start is called before the first frame updatevoid Start(){cam = GetComponent<Camera>();//获取Camera组件}// Update is called once per framevoid Update(){ScaleCameraf();   }public void ScaleCameraf(){//获取鼠标右键if (Input.GetMouseButtonDown(1)){length = (length + 1) % zoomLength.Length;//利用取余计算使缩放等级一直在zoomLength这个数组中循环}cam.fieldOfView = Mathf.Lerp(cam.fieldOfView, zoomLength[length], 0.1f);//缩放功能实现代码,利用Mathf.Lerp()函数实现平滑缩放效果if (Mathf.Abs(cam.fieldOfView - zoomLength[length]) < 0.1f){cam.fieldOfView = zoomLength[length];//使cam.fieldOfView的数值为缩放等级中的精确数值}}
}

2.通过鼠标滚轮调节摄像机视野(FOV)

实现原理

通过获取虚拟轴"Mouse ScrollWheel"鼠标滑轮来调节FOV的数值,代码如下:

public class MouseScrollWheelDemo : MonoBehaviour
{private Camera m_Camera;public float speed = 5;void Start(){m_Camera = GetComponent<Camera>();}void Update(){MouseScrollWheelRun();}public void MouseScrollWheelRun(){m_Camera.fieldOfView -= Input.GetAxis("Mouse ScrollWheel")*speed;}
}

3.菜单确认后进行场景转换

  • 首先先利用UI系统绘制游戏开始菜单,给Button加上加载游戏事件,事件代码如下:
using UnityEngine;
using UnityEngine.SceneManagement;public class LevelManager : MonoBehaviour
{public string sceneToLoad = "Game";public void LoadGame (){SceneManager.LoadScene(sceneToLoad);//可以写Build-setting中的索引号,也可以写场景的名字}
}
  • 制作游戏界面Game(与Button加载事件的方法LoadScene()中的名字一样)
  • 在Build-setting中加入这两个场景,菜单栏因放在上层

unity实现简单fps游戏功能相关推荐

  1. Unity 制作简单的任务动画

    Unity 制作简单的任务动画 1.添加人物模型到unity 我使用的是unity store中的免费模型: https://assetstore.unity.com/packages/3d/char ...

  2. unity实现简单巡逻兵

    unity实现简单巡逻兵 游戏视频 游戏要求 创建一个地图和若干巡逻兵(使用动画): 每个巡逻兵走一个3~5个边的凸多边型,位置数据是相对地址.即每次确定下一个目标位置,用自己当前位置为原点计算: 巡 ...

  3. unity实现简单坦克对战

    unity实现简单坦克对战 游戏要求 使用"感知-思考-行为"模型,建模 AI 坦克 场景中要放置一些障碍阻挡对手视线 坦克需要放置一个矩阵包围盒触发器,以保证 AI 坦克能使用射 ...

  4. Unity优化——简单AOI实现原理

    声明:本文为个人笔记,用于学习研究使用非商用,内容为个人研究及综合整理所得,若有违规,请联系,违规必改. Unity网络--简单AOI实现原理 文章目录 Unity网络--简单AOI实现原理 一.开发 ...

  5. unity ui框架_用unity制作简单的太空游戏(2)-简单炮台

    多铆蒸刚,炮塔至大! 亿万星辰,亿万炮塔! 多铆蒸刚,炮塔至上! 亿万炮塔,亿万荣光! (PS:我没有咕咕咕,就是比较惨,一口气出了半个月的差,人瘦了,也黑了,心塞塞--赶紧写个文章压压惊--) 这一 ...

  6. Unity 实现简单力场效果

    Unity 实现简单力场效果 前言 效果 源码 前言 项目中要用到一个力场的效果,偶然在bilibili中找到了.记录一下. 原视频: https://www.bilibili.com/video/B ...

  7. Unity UGUI简单的音频播放+读歌词(实现类似 QQ音乐,网易云音乐歌词滚动)

    Unity UGUI简单的音频播放+读歌词(实现类似 QQ音乐,网易云音乐歌词滚动) 效果图 (demo下载地址 demo下载地址) 简单代码 /// <summary> /// 解析数据 ...

  8. 用Unity实现简单的绳子模拟(一)

    用Unity实现简单的绳子模拟(一) 说到Unity物理,一般都会想到内置的physX物理引擎.其实我们也可以用Unity的API去实现一些简单的物理算法. 本文会介绍如何从头实现一个简单的绳子模拟的 ...

  9. 用unity制作简单的太空游戏(1):简单飞船控制

    最近沉迷<Dreadnought>(中文名:无畏战舰,B站CG链接),回想起作为十余年EVE老油条的太空生涯,又萌生了做个太空游戏的情怀,所以这一次就讲讲怎么做个简单的太空飞船的小游戏好了 ...

最新文章

  1. python基础语法有哪些-Python基础语法
  2. 51nod 1344 走格子【贪心/前缀和】
  3. Nginx学习系列二Linux下Nginx实现负载均衡
  4. BLDC(无刷直流电机)应用相关
  5. hdu5446——Unknown Treasure
  6. C#的WinForm程序应用了XP主题样式之后,ShowDialog方法出现问题的解决
  7. 封装jQuery Validate扩展验证方法
  8. Java架构师知识体系图谱
  9. 不加群提取群成员_使用itchat分析指定微信群男女比例等成员数据
  10. 什么是TrustedInstaller管理权限?
  11. 对swift开发中的unwinding segue的一些理解
  12. 快乐牛牛终极板creator1.82 shader 挫牌代码
  13. Spring GA、PRE、SNAPSHOT 版本含义及区别
  14. Cortex-A53 Pipeline Ordering and Memory Ordering
  15. 如何在Windows系统上制作U盘启动盘?
  16. 对抗样本生成算法复现代码解析:FGSM和DeepFool
  17. 图解Java核心架构体系
  18. 网络设备配置与管理————6、网络通信
  19. 聊聊iOS开发中耳机的那点事(监听耳机拔插、耳机线控)
  20. 项目在云服务器上的绝对路径,云服务器上的绝对路径

热门文章

  1. Android 折叠屏适配最全的攻略在这里
  2. 移动 电信 联通 APN cmwap cmnet ctwap ctnet 3gwap uniwap 3gnet uninet是...
  3. C++编程基础(1)-C中的malloc/free和C++中的new/delete
  4. 数据结构基础(严蔚敏)
  5. Hack The Box - Catch 利用let chat API查询信息,Cachet配置泄露漏洞获取ssh登录密码,apk代码注入漏洞利用获取root权限
  6. 【医学信息学】研究和统计——队列研究和数据分析
  7. 在GridControl中使用GridLookUpEdit的正确姿势
  8. 在数组中 找左边都比其小右边都比其大的元素
  9. html跑马灯编程,求一个HTML无缝的跑马灯代码。
  10. qlib格式的可转债数据:正股价,转股价的整合