Unity實現(xiàn)瞄準鏡效果
更新時間:2021年04月23日 17:16:32 作者:fanfan_hongyun
這篇文章主要為大家詳細介紹了Unity實現(xiàn)瞄準鏡效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了Unity實現(xiàn)瞄準鏡效果的具體代碼,供大家參考,具體內(nèi)容如下
using UnityEngine;
using System.Collections;
public class TelesopicView : MonoBehaviour
{
public float zoomLevel = 2.0f;
public float zoomInSpeed = 100.0f;
public float zoomOutSpeed = 100.0f;
private float initFOV;
public GameObject obj;
void Start()
{
//獲取當前攝像機的視野范圍 unity默認值60
initFOV = Camera.main.fieldOfView;
}
void Update()
{
if (Input.GetMouseButton(0))
{
ZoomInView();
//激活ui窗口
obj.SetActive(true);
}
else
{
ZoomOutView();
//失活ui窗口
obj.SetActive(false);
}
}
//放大攝像機的視野區(qū)域
void ZoomInView()
{
if (Mathf.Abs(Camera.main.fieldOfView - (initFOV / zoomLevel)) < 0f)
{
Camera.main.fieldOfView = initFOV / zoomLevel;
}
else if (Camera.main.fieldOfView - (Time.deltaTime * zoomInSpeed) >= (initFOV / zoomLevel))
{
Camera.main.fieldOfView -= (Time.deltaTime * zoomInSpeed);
}
}
//縮小攝像機的視野區(qū)域
void ZoomOutView()
{
if (Mathf.Abs(Camera.main.fieldOfView - initFOV) < 0f)
{
Camera.main.fieldOfView = initFOV;
}
else if (Camera.main.fieldOfView + (Time.deltaTime * zoomOutSpeed) <= initFOV)
{
Camera.main.fieldOfView += (Time.deltaTime * zoomOutSpeed);
}
}
}
此腳本掛到unity主相機即可,可通過更改zoomLevel更改倍鏡倍數(shù)。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
WinForm實現(xiàn)同時讓兩個窗體有激活效果的特效實例
這篇文章主要介紹了WinForm實現(xiàn)同時讓兩個窗體有激活效果的特效實例,基于windows api實現(xiàn)一個窗體激活的時候給另外一個發(fā)消息的特效,在進行C#項目開發(fā)時有一定的實用價值,需要的朋友可以參考下2014-09-09
輕松學(xué)習(xí)C#的結(jié)構(gòu)和類
輕松學(xué)習(xí)C#的結(jié)構(gòu)和類,對C#的結(jié)構(gòu)和類感興趣的朋友可以參考本篇文章,幫助大家更靈活的運用C#的結(jié)構(gòu)和類2015-11-11
使用C#調(diào)用系統(tǒng)API實現(xiàn)內(nèi)存注入的代碼
使用C#調(diào)用系統(tǒng)API實現(xiàn)內(nèi)存注入的代碼,學(xué)習(xí)c#的朋友可以參考下。2011-06-06

