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

論Unity_InputSystem如何使用(一)

這篇具有很好參考價值的文章主要介紹了論Unity_InputSystem如何使用(一)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、導(dǎo)入

在Window——PackageManage中搜索InputSystem,下載導(dǎo)入。如果搜不到,則調(diào)整為UnityRegistry。

二、更改輸入模式

Edit——ProjectSettings——Player——OtherSettings——Configuration——Active Input Handling,選擇舊版或者新版,也可以選擇兼容。
三、使用
請使用InputSystem為一個3D對象制作通過鍵盤移動跳躍,鼠標(biāo)攻擊的腳本。

我們先采取直接使用InputAction的方式來編寫腳本,而InputAction則是這個系統(tǒng)的核心。
是InputSystem為我們封裝的一個類,作用是不必通過編寫代碼來獲取設(shè)備的信號輸入,而是直接在Inspector窗口編輯,方便我們專注于編寫按鍵觸發(fā)后的邏輯。
使用前需要引用using UnityEngine.InputSystem。

	[Header("移動")]
    public InputAction Move;
    [Header("攻擊")]
    public InputAction Attack;
    [Header("跳躍")]
    public InputAction Jump;

然后我們直接在Inspector窗口編輯論Unity_InputSystem如何使用(一)

首先點擊齒輪符號

論Unity_InputSystem如何使用(一)

Action——輸入動作設(shè)置,設(shè)置檢測哪些設(shè)備輸入。

論Unity_InputSystem如何使用(一)

Action Type——動作類型:

  • Value——值類型,主要用于狀態(tài)連續(xù)更改的輸入設(shè)備,如鼠標(biāo)移動,手柄遙感。若有多個設(shè)備綁定此Action,只會發(fā)送最受控制的輸入。

  • Button——按鈕類型,處理按下類型。

  • PassThrough——直通類型,與Value一樣,但如果有多個設(shè)備綁定,會發(fā)送所有設(shè)備的輸入。

論Unity_InputSystem如何使用(一)

  • Control  Type——控制類型: 在這里選擇你想要的設(shè)備按鍵返回值的類型,之后在選擇對應(yīng)設(shè)備按鍵時會根據(jù)你選擇的內(nèi)容進(jìn)行篩選。

Interaction——相互作用設(shè)置,對特殊輸入進(jìn)行處理,如長按,多次點擊等,滿足條件時才會觸發(fā)(設(shè)置長按時間,點擊次數(shù)等)。

論Unity_InputSystem如何使用(一)

Hold

論Unity_InputSystem如何使用(一)

  • Press Point:在Input System中,每個按鍵都有對應(yīng)的浮點值,例如普通的按鍵,將會在0(未按下)和1(按下)之間,當(dāng)大于等于這個值時則認(rèn)為按鍵按下。
  • Hold Time 當(dāng)按鈕按下會觸發(fā)started,若在松開按鈕前,按住時間大于等于Hold Time則會觸發(fā)performed,否則觸發(fā)canceled。

MultiTap

論Unity_InputSystem如何使用(一)

多次點擊,例如雙擊或者三連擊。

  • Tap Count為點擊次數(shù)。
  • Max Tap Spacing為每次點擊之間的間隔(默認(rèn)值為 2 * Max Tap Duration)。
  • Max Tap Duration為每次點擊的持續(xù)時間,即按下和松開按鍵的這段時間。 當(dāng)每次點擊時間小于Max Tap
    Duration,且點擊間隔時間小于Max Tap Spacing,點擊Tap Count次,觸發(fā)performed。

Press

論Unity_InputSystem如何使用(一)

  • Press Only:按下的時候觸發(fā)started和performed。不觸發(fā)canceled
  • Release Only: 按下的時候觸發(fā)started,松開的時候觸發(fā)performed
  • Press And Release: 按下的時候觸發(fā)started和performed,松開的時候會再次觸發(fā)started和performed。不觸發(fā)canceled

SlowTap

論Unity_InputSystem如何使用(一)

  • 在按鍵按住時間大于等于Max Tap Duriation時,松開按鍵觸發(fā)performed

Tap

論Unity_InputSystem如何使用(一)

  • 當(dāng)按鍵按下會觸發(fā)started,若在Max Tap Duriation時間內(nèi)(小于)松開按鈕,觸發(fā)performed,否則觸發(fā)canceled。

Processors——處理器,對得到的值進(jìn)行處理(有點長可以不看)

Clamp
將輸入值鉗制到[min…max]范圍。
Invert
反轉(zhuǎn)控件中的值(即,將值乘以-1)。
Invert Vector 2
反轉(zhuǎn)控件中的值(即,將值乘以-1)。如果invertX為真,則反轉(zhuǎn)矢量的x軸;如果invertY為真,則反轉(zhuǎn)矢量的y軸。
Invert Vector 3
反轉(zhuǎn)控件中的值(即,將值乘以-1)。如果反轉(zhuǎn)x為真,則反轉(zhuǎn)矢量的x軸;如果反轉(zhuǎn)y為真,則反轉(zhuǎn)y軸;如果反轉(zhuǎn)z為真,則反轉(zhuǎn)z軸。
Normalize
如果最小值>=零,則將[min…max]范圍內(nèi)的輸入值規(guī)格化為無符號規(guī)格化形式[0…1],如果最小值<零,則將輸入值規(guī)格化為有符號規(guī)格化形式[-1…1]。
Normalize Vector 2
將輸入向量規(guī)格化為單位長度(1)。
Normalize Vector 3
將輸入向量規(guī)格化為單位長度(1)
Scale
將所有輸入值乘以系數(shù)。
Scale Vector 2
將所有輸入值沿x軸乘以x,沿y軸乘以y。
Scale Vector 3
將所有輸入值沿x軸乘以x,沿y軸乘以y,沿z軸乘以z。
Axis Deadzone
axis死區(qū)處理器縮放控件的值,使絕對值小于最小值的任何值為0,絕對值大于最大值的任何值為1或-1。許多控件沒有精確的靜止點(也就是說,當(dāng)控件位于中心時,它們并不總是精確報告0)。在死區(qū)處理器上使用最小值可避免此類控件的無意輸入。此外,當(dāng)軸一直移動時,某些控件不一致地報告其最大值。在死區(qū)處理器上使用最大值可確保在這種情況下始終獲得最大值。
Stick Deadzone
搖桿死區(qū)處理器縮放Vector2控件(如搖桿)的值,以便任何幅值小于最小值的輸入向量都將得到(0,0),而任何幅值大于最大值的輸入向量都將規(guī)格化為長度1。許多控件沒有精確的靜止點(也就是說,當(dāng)控件位于中心時,它們并不總是精確地報告0,0)。在死區(qū)處理器上使用最小值可避免此類控件的無意輸入。此外,當(dāng)軸一直移動時,某些控件不一致地報告其最大值。在死區(qū)處理器上使用最大值可確保在這種情況下始終獲得最大值。

點擊+號

論Unity_InputSystem如何使用(一)

  1. 添加單個按鈕綁定
  2. 添加1D軸組合,就是1到-1。
  3. 2D軸
  4. 3D軸
  5. 添加雙組合鍵,如Ctrl+Z
  6. 添加三組合鍵,如Shift+Win+S;

添加之后雙擊它們
論Unity_InputSystem如何使用(一)

1D Axis

論Unity_InputSystem如何使用(一)

  • 負(fù)和正值

論Unity_InputSystem如何使用(一)

Composite Type

論Unity_InputSystem如何使用(一)

  1. Min Value和Max Value則是正負(fù)值的界限。
  2. Which Side Win則是當(dāng)代表正負(fù)的鍵同時按下時哪一方獲勝

論Unity_InputSystem如何使用(一)

2D Vector

論Unity_InputSystem如何使用(一)

  • 上(0,1)下(0,-1)左(-1,0)右(1,0)

論Unity_InputSystem如何使用(一)

  1. Mode 處理模式
  2. Analog——模擬值,浮點值
  3. DIgital Normalized——單位化向量
  4. Digital——向量

3D Vector

  • 與2D相同

One Modifier

論Unity_InputSystem如何使用(一)

  • 如Ctrl+V,Modifier代表Ctrl,Button代表V。
  • Two Modifier

論Unity_InputSystem如何使用(一)文章來源地址http://www.zghlxwxcb.cn/news/detail-434633.html

  • 如Shift+Win+S,Modifier1代表Ctrl,Modifier2代表Win,S代表Button

三、InputAction的一些使用代碼

首先我們需要啟用輸入檢測
然后其擁有三種事件——開始,觸發(fā),結(jié)束
這些擁有一個參數(shù),通過這個參數(shù)我們可以獲得相關(guān)信息
void Start()
    {
        //啟用
        Move.Enable();
        //開始事件調(diào)用
        Move.started += (con) =>
        {
            print("start");
        };
        //觸發(fā)事件調(diào)用
        Move.performed += (con) =>
        {
            //當(dāng)前狀態(tài)
            //沒有啟用是 Disabled
            //等待是 Waiting
            //開始是 Started
            //觸發(fā)是 Performed
            //結(jié)束是 Canceled
            print(con.phase);
            //action名字
            print(con.action.name);
            //控件路徑
            print(con.control.path);
            //控件信息
            print(con.control.name);
            //返回的值
            print(con.ReadValue<Vector2>());
            //持續(xù)時間
            print(con.duration);
            //事件開始時間
            print(con.startTime);
        };
        //結(jié)束事件時間
        Move.canceled += Move_canceled;
    }

    private void Move_canceled(InputAction.CallbackContext obj)
    {
        print("canceled");
    }

到了這里,關(guān)于論Unity_InputSystem如何使用(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包