介绍
这篇文章将为大家详细讲解有关团结如何实现瞄准镜效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
团结实现瞄准镜效果的具体代码,具体内容如下
using UnityEngine; using System.Collections; , public class TelesopicView : MonoBehaviour { , ,,,public float zoomLevel =, 2.0 f; ,,,public float zoomInSpeed =, 100.0 f; ,,,public float zoomOutSpeed =, 100.0 f; , ,,,private float initFOV; ,,,public GameObject obj; ,,,void 开始() ,,,{ ,,,,,,,//获取当前摄像机的视野范围,统一默认值60 ,,,,,,,initFOV =, Camera.main.fieldOfView; ,,,} , ,,,void 更新() ,,,{ ,,,,,,,if (Input.GetMouseButton (0)) ,,,,,,,{ ,,,,,,,,,,,ZoomInView (); ,,,,,,,,,,,//激活ui窗口 ,,,,,,,,,,,obj.SetActive(真正的); ,,,,,,,} ,,,,,,, ,,,,,,,{ ,,,,,,,,,,,ZoomOutView (); ,,,,,,,,,,,//失活ui窗口 ,,,,,,,,,,,obj.SetActive(假); ,,,,,,,} ,,,} , ,,,//放大摄像机的视野区域 ,,,void ZoomInView () ,,,{ ,,,,,,,if (Mathf.Abs (Camera.main.fieldOfView 安康;(initFOV /, zoomLevel)), & lt;, 0 f) ,,,,,,,{ ,,,,,,,,,,,Camera.main.fieldOfView =, initFOV /, zoomLevel; ,,,,,,,} ,,,,,,,else if (Camera.main.fieldOfView 安康;(Time.deltaTime *, zoomInSpeed),祝辞=,(时间/initFOV zoomLevel)) ,,,,,,,{ ,,,,,,,,,,,Camera.main.fieldOfView -=, (Time.deltaTime *, zoomInSpeed); ,,,,,,,} ,,,} , ,,,//缩小摄像机的视野区域 ,,,void ZoomOutView () ,,,{ ,,,,,,,if (Mathf.Abs (Camera.main.fieldOfView 作用;initFOV), & lt;, 0 f) ,,,,,,,{ ,,,,,,,,,,,Camera.main.fieldOfView =, initFOV; ,,,,,,,} ,,,,,,,else if (时间+ Camera.main.fieldOfView (Time.deltaTime *, zoomOutSpeed), & lt;=, initFOV) ,,,,,,,{ ,,,,,,,,,,,Camera.main.fieldOfView +=, (Time.deltaTime *, zoomOutSpeed); ,,,,,,,} ,,,} }
此脚本挂到统一主相机即可,可通过更改zoomLevel更改倍镜倍数
关于“团结如何实现瞄准镜效果”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。