Unity狙击枪的视野放大和缩小


  
  
直接上代码 using UnityEngine; using System.Collections; /*任务:控制摄像机视野的放大和缩小,望远镜功能   * 原理:放大事业:就是减小摄像机的垂直视野范围(减小FOV值)   *       缩小视野:就是增加摄像机的垂直视野范围(增加FOV值)   */ public class SniperRifleView : MonoBehaviour {     public int magnify = 2;//放大倍数     public float magnifySpeed = 50f;//放大速度     public float shrinkSpeed = 50f;//缩小速度     public Camera m_camera;//指定的摄像机     private float initFov;//摄像机垂直视野的范围的初始值  void Start ()     {         initFov = m_camera.fieldOfView;//设置视野的初始值  }      void Update ()      {         if (Input.GetKey(KeyCode.Mouse0))//按下左键放大视野         {             MagnifyView();         }         else //否则缩小视野(带原有视野)         {             ShrinkView();         }     }     /// <summary>     /// 放大视野     /// </summary>     private void MagnifyView()//放大视野就是,减小FOV的值     {         //如果现在FOV-下一帧的视野值,还大于原有视野值的一半,就继续减少视野值,放大视野         if ((m_camera.fieldOfView - Time.deltaTime * magnifySpeed) >= (initFov / magnify))         {             m_camera.fieldOfView -= Time.deltaTime * magnifySpeed;         }         else//否则保持视野值到最小值         {             m_camera.fieldOfView = initFov / magnify;      }     }     /// <summary>     /// 缩小视野     /// </summary>     private void ShrinkView()     {         //如果现在FOV+下一帧的视野值,还小于原有视野值的一半,就继续增减视野值,缩小视野         if ((m_camera.fieldOfView + Time.deltaTime * magnifySpeed) <= initFov)         {             m_camera.fieldOfView += Time.deltaTime * shrinkSpeed;         }         else//否则保持视野值到初始垂直视野值         {             m_camera.fieldOfView = initFov;         }   } }

效果图:

 






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值