国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity腳本類(lèi) ---- Input類(lèi),虛擬軸與插值方法

這篇具有很好參考價(jià)值的文章主要介紹了Unity腳本類(lèi) ---- Input類(lèi),虛擬軸與插值方法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

unity虛擬按鍵,unity,unity,游戲引擎

?unity虛擬按鍵,unity,unity,游戲引擎

?unity虛擬按鍵,unity,unity,游戲引擎

1.注意第一個(gè)GetMouseButton()方法只要檢測(cè)到鼠標(biāo)處于按下?tīng)顟B(tài),那么該方法就會(huì)一直返回 true,鼠標(biāo)沒(méi)按下時(shí)調(diào)用該方法返回的是 false

2.而第二個(gè)方法 --- GetMouseButtonDown() 方法只會(huì)在你按下鼠標(biāo)的第一幀返回一個(gè) true,然后就一直返回false,GetMouseButtonUp()則是在你送開(kāi)鼠標(biāo)的那一幀返回 true,然后一直返回false

unity虛擬按鍵,unity,unity,游戲引擎

?unity虛擬按鍵,unity,unity,游戲引擎

1.在KeyCode中ctrl這種左右堆成布局的按鍵對(duì)應(yīng)的屬性有兩個(gè),分別是 LeftCtrl 和 RightCtrl

2.有沒(méi)有down / up ,取決于你想在按下對(duì)應(yīng)按鍵后方法只執(zhí)行一次還是執(zhí)行多次。

(執(zhí)行一次的話就有down/up,反之則沒(méi)有)unity虛擬按鍵,unity,unity,游戲引擎

unity虛擬按鍵,unity,unity,游戲引擎

?unity虛擬按鍵,unity,unity,游戲引擎

1. 按照操作點(diǎn)開(kāi)虛擬按鈕面板之后,就能夠看到18個(gè)Unity自帶的虛擬按鈕,如果我們將虛擬按鈕個(gè)數(shù)(size)改為大于18的個(gè)數(shù)的話(如19個(gè)),則Unity會(huì)自動(dòng)創(chuàng)建新的虛擬按鈕來(lái)補(bǔ)齊數(shù)目

unity虛擬按鍵,unity,unity,游戲引擎

1.一個(gè)虛擬按鈕分為正負(fù)兩極,且一個(gè)虛擬按鈕能夠綁定四個(gè)真實(shí)按鍵,其中四個(gè)真實(shí)按鍵分為了兩類(lèi):正向(positive)按鈕和負(fù)向(negative)按鈕

按了正向按鈕綁定的真實(shí)按鍵后就會(huì)返回一個(gè)正值,負(fù)向按鈕則是返回一個(gè)負(fù)值

unity虛擬按鍵,unity,unity,游戲引擎

?1.這兩個(gè)輸入框是用來(lái)描述正向按鈕和負(fù)向按鈕的功能的 --- 沒(méi)有negative的是用來(lái)描述正向按鈕的,有nagetive就是描述負(fù)向按鈕unity虛擬按鍵,unity,unity,游戲引擎

1.Gravity --- 復(fù)位速度

2.Sensitivity --- 靈敏度?

虛擬按鈕有三個(gè)值 --- 1? - 0? - -1 ,當(dāng)我們沒(méi)有按到虛擬按鈕對(duì)應(yīng)的任何真實(shí)按鈕時(shí),虛擬按鈕對(duì)應(yīng)的值是0,按了正向按鈕就會(huì)變到1,按負(fù)向就是變到-1,松開(kāi)按鍵則值都會(huì)回到0

要注意的是這個(gè)變化不是跳躍式變化的,而是逐漸由0變1或者是由0變負(fù)1,而這個(gè)由0變化到其它值的速度就是由Sensitivity(靈敏度)決定的

而從1/-1變回0的速度則是由Gravity(復(fù)位速度)決定的unity虛擬按鍵,unity,unity,游戲引擎

虛擬按鈕除了可以綁定傳統(tǒng)的鍵盤(pán)和鼠標(biāo)按鍵之外,還可以綁定Mouse Movement(鼠標(biāo)移動(dòng))

綁定鼠標(biāo)移動(dòng)的時(shí)候具體設(shè)置如上圖:

1.unity虛擬按鍵,unity,unity,游戲引擎

比較關(guān)鍵的是決定鼠標(biāo)移動(dòng)所綁定的移動(dòng)軸,在上面這個(gè)設(shè)置中為x軸

2.綁定X移動(dòng)軸之后,鼠標(biāo)向右移動(dòng)則虛擬按鍵值偏向1,向左移動(dòng)偏向-1,保持不動(dòng)則為0?

(MouseY則是對(duì)應(yīng)鼠標(biāo)的Y軸運(yùn)動(dòng) --- 上為正,下為負(fù))unity虛擬按鍵,unity,unity,游戲引擎

這一個(gè)虛擬軸對(duì)應(yīng)的是鼠標(biāo)滾輪 --- (Joysticks --- 操作桿,Scrollwheel --- 鼠標(biāo)滾輪)?unity虛擬按鍵,unity,unity,游戲引擎

1.虛擬軸在綁定像 ctrl , shift 這種具有左右對(duì)稱(chēng)排布特點(diǎn)的按鍵時(shí),必須寫(xiě)明綁定的是 left 還是 right(綁定時(shí)不能用大寫(xiě)格式,只能用小寫(xiě)格式)?

2.綁定按鍵時(shí),空格對(duì)應(yīng)的是 spaceunity虛擬按鍵,unity,unity,游戲引擎

前面三個(gè)方法能夠起到的作用如下:

1.任何與給定虛擬軸綁定的真實(shí)按鍵處于按下?tīng)顟B(tài)的話,則該方法會(huì)一直返回 true

2.任何與給定虛擬軸綁定的真實(shí)按鍵被按下的那一幀,該方法會(huì)返回一次true

3.任何與給定虛擬軸綁定的真實(shí)按鍵被抬起的那一幀,該方法會(huì)返回一次true

后面兩個(gè)方法則是

1.沒(méi)按下與虛擬軸綁定的真實(shí)按鍵時(shí)調(diào)用該方法后會(huì)返回0,按下綁定的正向按鍵時(shí)會(huì)返回一個(gè)從0到1不斷變化的單精度浮點(diǎn)數(shù),按下綁定的負(fù)向按鍵則是從0到-1的一個(gè)單精度浮點(diǎn)數(shù)

2.沒(méi)按下返回0,按了正向按鍵返回1,按了負(fù)向按鍵返回-1

3.有了虛擬軸之后,作為程序員的我們以后就不用再去找固定的按鍵了,只需要找到虛擬軸即可

4.對(duì)于綁定鼠標(biāo)移動(dòng)軸的虛擬軸 “Mouse X” 和 “Mouse Y”來(lái)說(shuō),由于我們?cè)谝苿?dòng)鼠標(biāo)的時(shí)候并沒(méi)有按下按鈕,所有上面三個(gè)GetButton方法獲得這兩個(gè)虛擬軸的任何反饋的,只有兩個(gè)GetAxis方法可以獲得反饋(右下正,左上負(fù))unity虛擬按鍵,unity,unity,游戲引擎

1.有Raw,沒(méi)Raw的區(qū)別就是是否應(yīng)用平滑過(guò)渡unity虛擬按鍵,unity,unity,游戲引擎

1.寫(xiě)攝像頭沿著鼠標(biāo)移動(dòng)的腳本的時(shí)候要注意一個(gè)問(wèn)題 --- 我們的鼠標(biāo)左右移動(dòng)時(shí),攝像頭是沿著世界坐標(biāo)系的y軸旋轉(zhuǎn)的,如果我們直接寫(xiě)下面這種類(lèi)型的代碼的話:unity虛擬按鍵,unity,unity,游戲引擎

則都是沿自身坐標(biāo)系旋轉(zhuǎn),因此如果想沿世界坐標(biāo)系旋轉(zhuǎn)的話,必須再給方法加一個(gè)參數(shù):unity虛擬按鍵,unity,unity,游戲引擎

指明沿哪一個(gè)坐標(biāo)系旋轉(zhuǎn)(攝像頭上下擺動(dòng)是沿著自身坐標(biāo)系旋轉(zhuǎn)的,而不是沿著世界坐標(biāo)系,否則的話會(huì)導(dǎo)致上下擺動(dòng)并不是我們想要的效果)?


?插值法

1.插值法是類(lèi) ---- Mathf 中的一個(gè)方法 --- Lerp方法unity虛擬按鍵,unity,unity,游戲引擎

?unity虛擬按鍵,unity,unity,游戲引擎

unity虛擬按鍵,unity,unity,游戲引擎

1.Lerp方法需要三個(gè)參數(shù),分別是數(shù)據(jù)變化的起點(diǎn),終點(diǎn)以及數(shù)據(jù)返回比例,該方法的工作邏輯如下:

一.確定當(dāng)前數(shù)據(jù)起點(diǎn)和數(shù)據(jù)終點(diǎn)所在的數(shù)據(jù)段

二.按照第三個(gè)參數(shù) --- 數(shù)據(jù)返回比例,從起點(diǎn)開(kāi)始像終點(diǎn)前進(jìn)對(duì)應(yīng)比例(該比例的取值范圍是0到1,如果取0.1的話則表示從起點(diǎn)開(kāi)始,向終點(diǎn)前進(jìn)整個(gè)段的0.1倍)

三.前進(jìn)到指定位置后,將指定位置的數(shù)值返回

比如 --- Lerp(20,60,0.1)

1.數(shù)據(jù)段 = 60 - 20 = 40 , 前進(jìn)段 = 數(shù)據(jù)段 * 0.1 = 4

2.返回值 =??起點(diǎn) +? 前進(jìn)段 = 20 + 4 = 24

知道了這個(gè)方法的執(zhí)行邏輯后,我們就能夠?qū)崿F(xiàn)一個(gè)數(shù)值在一定數(shù)據(jù)段的由塊到慢(或者反過(guò)來(lái))的變化,具體的實(shí)現(xiàn)方式如下:

一.確定起點(diǎn),終點(diǎn),比例

二.令變化量等于起點(diǎn),并調(diào)用Lerp方法,然后將調(diào)用后的返回值傳給變化量,接著重復(fù)執(zhí)行步驟2

按照上面這兩步走,就能夠得到一個(gè)以越來(lái)越慢的速度接近終點(diǎn),且只能無(wú)限接近終點(diǎn)而到達(dá)不了終點(diǎn)的變化量

1.但是無(wú)限接近并不是我們希望出現(xiàn)的情況(不停的調(diào)用方法占用內(nèi)存空間),因此我們可以對(duì)變化量進(jìn)行一個(gè)判斷 --- 即當(dāng)變化量與終點(diǎn)的差值小于一定數(shù)的時(shí)候,直接令變化量等于終點(diǎn)值并結(jié)束調(diào)用方法,這樣就能夠使得無(wú)限接近結(jié)束掉。

2.使用上面這個(gè)方法還需要處理一個(gè)問(wèn)題 --- 作差之后的值的正負(fù)問(wèn)題 --- 可以通過(guò)調(diào)用 Mathf 中的 Abs方法來(lái)解決 --- Abs(參數(shù)) --- 調(diào)用后返回參數(shù)的絕對(duì)值

3.不要忘了浮點(diǎn)數(shù)在計(jì)算機(jī)中并不是精確存儲(chǔ)的,而是采用近似存儲(chǔ)的方式,因此對(duì)浮點(diǎn)數(shù)作判斷的時(shí)候盡量不要使用 == 這種過(guò)于絕對(duì)的判斷


1.在Unity腳本中創(chuàng)建一個(gè)具有 Public 權(quán)限的數(shù)組引用,并將腳本掛載到游戲物體上后,該游戲物體的Inspector界面處會(huì)出現(xiàn)如下參數(shù)輸入窗口unity虛擬按鍵,unity,unity,游戲引擎

這個(gè)Size指的是數(shù)組元素個(gè)數(shù),填入后腳本會(huì)自動(dòng)創(chuàng)建一個(gè)數(shù)組實(shí)例(該數(shù)組的元素個(gè)數(shù)與Size相同),并將具有Public 權(quán)限的數(shù)組引用指向該數(shù)組,同時(shí)Inspecor界面會(huì)出現(xiàn)如下變化:unity虛擬按鍵,unity,unity,游戲引擎

即填入元素個(gè)數(shù)后,又會(huì)出現(xiàn)對(duì)應(yīng)的元素賦值窗口,我們可以直接在窗口處對(duì)元素進(jìn)行賦值。unity虛擬按鍵,unity,unity,游戲引擎?這行代碼能夠?qū)崿F(xiàn)當(dāng)index從0開(kāi)始不停的+1,加到等于zoomLevel.Length時(shí)又變回0的功能

(其原理就是取余的特性 ---- a%b , a < b 時(shí) a%b = a ; a = b 時(shí) a%b =0)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-771294.html

到了這里,關(guān)于Unity腳本類(lèi) ---- Input類(lèi),虛擬軸與插值方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • unity調(diào)用其它腳本函數(shù)方法

    unity調(diào)用其它腳本函數(shù)方法

    ? ?調(diào)用 ? ?

    2024年02月07日
    瀏覽(25)
  • Unity腳本顯示“雜項(xiàng)文件”的處理方法

    Unity腳本顯示“雜項(xiàng)文件”的處理方法

    ? ? ? ? 首先說(shuō)明一下,如果沒(méi)有試過(guò)常規(guī)的方法,建議先嘗試常規(guī)的:如在VS中右鍵選擇添加到解決方案....... ? ? ? ? 如果不可以再來(lái)試試這個(gè): ????????點(diǎn)擊 編輯(Edit)首選項(xiàng)(Preferences)打開(kāi)首選項(xiàng)窗口 ????????在首選項(xiàng)窗口中,選擇 外部工具(External Tools)

    2024年02月12日
    瀏覽(30)
  • 【Unity】 基礎(chǔ)交互入門(mén)(C#腳本互相調(diào)用的方法,含動(dòng)態(tài)綁定腳本)

    腳本A: 在需要被調(diào)用的類(lèi)里這樣寫(xiě): 腳本B: 在其他類(lèi)里調(diào)用: 如果出現(xiàn)無(wú)法識(shí)別上下文的提示,檢查一下以下問(wèn)題: 1、兩個(gè)腳本的命名空間是否一致,如果不需要的命名空間可以直接刪除。 2、類(lèi)名是否大寫(xiě)開(kāi)頭,且命名合法,且和文件名一致。 3、更新編譯一下保存一

    2024年02月15日
    瀏覽(24)
  • 在Unity中掛載C#腳本的三種方法

    在Unity中掛載C#腳本的三種方法

    ①在Project(工程)窗口的某個(gè)文件夾中(也可以選擇新建在Assets(資源根目錄)中),然后單擊鼠標(biāo)右鍵,選擇Create-C# Script 注意:擴(kuò)展名在Unity編輯器中是隱藏的! ②然后再直接拖拽到Hierarchy(層級(jí)視圖)你想要掛載的物體上 ①在Project(工程)窗口的某個(gè)文件夾中(也可

    2024年02月03日
    瀏覽(21)
  • Unity中的Lerp插值的使用

    Unity中的Lerp插值的使用

    ????????平時(shí)在做項(xiàng)目中插值的使用避免不了,之前一直在插值中使用存在誤區(qū),在這里淺淺記錄一下。之前看的博客或者教程還多都存在一個(gè)“永遠(yuǎn)到達(dá)不了,只能無(wú)限接近”的一個(gè)概念??赡苁侵澳X子中沒(méi)有插值的概念沒(méi)理解對(duì),或者當(dāng)時(shí)看的up主也是沒(méi)理解對(duì),程

    2024年02月21日
    瀏覽(14)
  • 【學(xué)習(xí)筆記】unity腳本學(xué)習(xí)(五)【常用的方法函數(shù)Destroy、Instantiate 、SendMessage、invoke 、Coroutine】

    【學(xué)習(xí)筆記】unity腳本學(xué)習(xí)(五)【常用的方法函數(shù)Destroy、Instantiate 、SendMessage、invoke 、Coroutine】

    轉(zhuǎn)載請(qǐng)注明出處:??https://blog.csdn.net/weixin_44013533/article/details/130233098 視頻參考 極客學(xué)院Unity3D視頻精講課程 Object體系結(jié)構(gòu) 可以看到MonoBehaviour繼承自Component,Component繼承自O(shè)bject MonoBehaviour復(fù)習(xí) MonoBehaviour官網(wǎng)API 之前學(xué)的start awake等都是Message事件響應(yīng)函數(shù),它們都是我們?cè)谀_本

    2024年02月04日
    瀏覽(24)
  • Unity實(shí)現(xiàn)按鍵拾取物品

    本來(lái)是想通過(guò)OnTriggerStay來(lái)檢測(cè)玩家與物品的碰撞,如果一直處于碰撞中,且按下了K鍵,那么就能拾取。 但是用這種方法總會(huì)有某種延遲的問(wèn)題(可能是跟碰撞檢測(cè)頻率有關(guān)),導(dǎo)致我按多次K鍵才有可能撿起物品。 所以換一種思路,開(kāi)始碰撞時(shí)將某bool值設(shè)為true,結(jié)束碰撞時(shí)

    2024年02月01日
    瀏覽(13)
  • Unity 獲取任意按鍵輸入

    How do you READ or GET info from an input from a joystick/controller? - Unity Answers

    2024年02月17日
    瀏覽(12)
  • Unity基礎(chǔ)篇-----Input輸入

    此篇為個(gè)人對(duì)此部分所掌握知識(shí)的理解,如有錯(cuò)誤的地方請(qǐng)諒解!,后續(xù)會(huì)對(duì)此部分知識(shí)進(jìn)行進(jìn)一步完善。 在程序中輸入系統(tǒng)是必不可缺的,這部分知識(shí)也是我們必須需要掌握的,在Unity使用Input類(lèi)來(lái)讀取傳統(tǒng)游戲中輸入的軸,下面我們對(duì)Unity Input類(lèi)中會(huì)常用到的函數(shù)及變量進(jìn)

    2024年04月25日
    瀏覽(33)
  • unity之Input.GetKeyDown與Input.GetKey區(qū)別

    unity之Input.GetKeyDown與Input.GetKey區(qū)別

    Input.GetKey 和 Input.GetKeyDown 是 Unity 中用于檢測(cè)按鍵狀態(tài)的兩個(gè)不同函數(shù)。它們之間的區(qū)別在于何時(shí)觸發(fā)。 Input.GetKey(KeyCode key): 這個(gè)函數(shù)會(huì)在用戶按住指定的鍵時(shí)觸發(fā),會(huì)在每一幀中都執(zhí)行,只要指定的鍵被按住。 會(huì)在按鍵按下的那一幀開(kāi)始時(shí)觸發(fā),持續(xù)到按鍵釋放的那一幀結(jié)

    2024年02月12日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包