瞄准镜效果的实现

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 镜头缩放
/// </summary>
public class MouseDemo : MonoBehaviour
{private bool isFar = true;//将缩放等级做成一个数组public float[] zoomLevel;private int index;private void Update(){//_Camera1();//调用方法1//_Camera2();//调用方法2//_Camera3();//调用方法3_Camera4();}/// <summary>///方法1: 瞄准镜效果/// </summary>private void _Camera1(){if (Input.GetMouseButtonDown(1)){isFar = !isFar;//修改布尔值}if (isFar)Camera.main.fieldOfView = 20;elseCamera.main.fieldOfView = 60;}/// <summary>/// 方法2:逐渐拉进或拉远/// </summary>private void _Camera2(){if (Input.GetMouseButtonDown(1)){isFar = !isFar;//修改布尔值}if (isFar)//拉远20--》60{if (Camera.main.fieldOfView < 60)Camera.main.fieldOfView += 2;}else//拉进60--》20{if (Camera.main.fieldOfView > 20)Camera.main.fieldOfView -= 2;}}/// <summary>/// 方法3:由快到慢拉进或拉远/// </summary>private void _Camera3(){if (Input.GetMouseButtonDown(1)){isFar = !isFar;//修改布尔值}if (isFar)//拉远20--》60{//由快到慢 无线接近终点(不能等于终点)Camera.main.fieldOfView=Mathf.Lerp(Camera.main.fieldOfView, 60, 0.1f);//取绝对值if (Mathf.Abs(Camera.main.fieldOfView - 60) <= 0.1f)Camera.main.fieldOfView = 60;}else//拉进60--》20{Camera.main.fieldOfView =Mathf.Lerp(Camera.main.fieldOfView, 20, 0.1f);if (Mathf.Abs(Camera.main.fieldOfView - 20) <= 0.1f)Camera.main.fieldOfView = 20;}}/// <summary>/// 方法4:假设存在多个变量/// </summary>private void _Camera4(){if (Input.GetMouseButtonDown(1)){//如果索引小于数组长度-1则加一,否则为0;//index = index < zoomLevel.Length - 1 ? index + 1 : 0;index = (index + 1) % zoomLevel.Length;}Camera.main.fieldOfView = Mathf.Lerp(Camera.main.fieldOfView, zoomLevel[index], 0.1f);if (Mathf.Abs(Camera.main.fieldOfView - zoomLevel[index]) < 0.1f)Camera.main.fieldOfView = zoomLevel[index];}
}

【unity 3d】--- 瞄准镜效果相关推荐

  1. Unity实现瞄准镜效果之美

    玩过射击类游戏,里面的狙击枪是带有瞄准镜的,可以方便玩家可以瞄准远处的敌人,本篇文章要介绍的就是这个功能的实现,通过 Camera来制作一个瞄准镜的效果. 主要的方法就是通过调整 Camera的 Fi ...

  2. Unity实现瞄准镜效果

    这篇文章我们讨论一下如何通过 Camera来制作一个瞄准镜的效果,玩射击类游戏比较多的朋友大概就能感觉出来这个功能大致的实现效果如何了. 主要的方法就是通过调整 Camera的 Field Of Vi ...

  3. Unity 3D追踪效果的实现 目标箭头指引

    版本:unity 5.4.1  语言:C# 有段时间没写博客了,就搞搞自己的小游戏自娱自乐. 今天给大家带来3D空战或者宇宙飞行目标箭头的显示,参考了网友ζ随风去旅行的2D指引效果,自己研究了3D效果 ...

  4. Unity制作出《超级马里奥》的2D和3D混合效果

    现在来做点别的东西.Nintendo Switch上刚推出的<超级马里奥>中,有一些关卡混合了2D和3D的画面,这种效果十分让人印象深刻.如何在Unity中实现这个效果呢? 正常情况下,摄 ...

  5. Unity 3d网游画面的3d效果

    玩家选择某款游戏,第一要素是什么?优质的场景画面和良好的视觉效果,绝对是关键.近年来,但凡是画面上乘的网游,多半会被冠以大作的称号,而这也是能够实现优质画面的游戏引擎备受国内厂商推崇的原因. 就如当前 ...

  6. Unity三维游戏开发C#编程大师班 Masterclass In C# Programing Unity 3D Game Development FPS

    本课程采用现代游戏开发(Unity 2021)的最新内容和最新技术 学习任何东西的最好方法是以一种真正有趣的方式去做,这就是这门课程的来源.如果你想了解你看到的这些不可思议的游戏是如何制作的,没有比这 ...

  7. Unity 3D游戏代码编程学习教程 Full Guide To Unity 3D C#: Learn To Code Making 3D Games

    Unity 3D游戏代码编程学习教程 Full Guide To Unity 3D & C#: Learn To Code Making 3D Games Full Guide To Unit ...

  8. 《Unity 3.x游戏开发实例》一1.5 欢迎来到Unity 3D

    本节书摘来异步社区<Unity 3.x游戏开发实例>一书中的第1章,第1.5节,作者: [加]Ryan Henson Creighton 译者: 师蓉 责编: 陈冀康,更多章节内容可以访问 ...

  9. 《Unity 3D 游戏开发技术详解与典型案例》——1.3节第一个Unity 3D程序

    本节书摘来自异步社区<Unity 3D 游戏开发技术详解与典型案例>一书中的第1章,第1.3节第一个Unity 3D程序,作者 吴亚峰 , 于复兴,更多章节内容可以访问云栖社区" ...

最新文章

  1. httpd中工作模型的比较
  2. 双指针找链表中点多种写法
  3. ASP.NET CORE 微服务(简化版)实战系列-没有比这性价比再高的实战课程了
  4. 【C语言进阶深度学习记录】二十八 数组指针与指针数组的分析
  5. Attribute “singleton” must be declared for element type “bean”.
  6. shell、ftp、mysql如何连接笔记
  7. 【Docker】Redis 安装使用教程
  8. Mysql多实例实施文档
  9. Web SCADA 电力接线图工控组态编辑器 1
  10. java保护性拷贝(effective java)
  11. 计算机组成原理习题答案(蒋本珊)
  12. 数字信号处理——DFT
  13. 服务器机械硬盘坏了怎么修复,硬盘修复软件:如何修复硬盘错误?
  14. DNS解析异常问题排查
  15. 利用kali暴力破解获取windows账号密码
  16. mac终端查看php版本_Mac切换php版本方法
  17. redis多实例常见部署方法和使用
  18. 放弃Notepad++,替代品很多
  19. Alist挂载百度网盘
  20. 爆火的《看漫画学Python》出PDF版了,文末自取

热门文章

  1. 对接高德接口心得,本篇不涉及具体接口
  2. 影响因子,计算机科学,影响因子最高计算机科学期刊(前50种).doc
  3. echarts 世界地图 地图不渲染问题
  4. 大数据平台docker一键搭建
  5. SpringBoot结合Redis实现维护客户端登录状态
  6. 拥有梦想的时候 拿出勇气和行动
  7. 绿米Aara单火开关,ZigBee智能开关和单火线取电技术, 对于单火取电电源和ZIGBEE缩合分析
  8. oracle对某两列求和再求和_分手后4个阶段这样挽回,再狠的他也会心软求和
  9. [2022软工第三次作业]结对编程项目——最长英语单词链
  10. Excel2007将汉字转换为拼音首字母