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

【Unity InputSystem】基礎(chǔ)教程(保姆級超詳細超基礎(chǔ)!?。。?/h1>

這篇具有很好參考價值的文章主要介紹了【Unity InputSystem】基礎(chǔ)教程(保姆級超詳細超基礎(chǔ)?。。。OM麑Υ蠹矣兴鶐椭?。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.基礎(chǔ)概念

1-1.前言

隨著Unity的不斷發(fā)展,開發(fā)者們對Unity的項目輸入系統(tǒng)要求也越來越高,經(jīng)常會有項目在做多平臺適配和跨平臺移植時對變更輸入系統(tǒng)而感到煩惱。而InputSystem這款插件正是Unity官方為了解決廣大開發(fā)者而推出的一款新的輸入方式。
相較于舊版的InputManager,InputSystem的操作雖然更為繁瑣復(fù)雜,但應(yīng)對跨平臺項目時面對不同的輸入方式InputSystem的輸入映射機制則為開發(fā)者們提供了巨大的便捷,這也是我們要學(xué)習(xí)InputSystem的原因。

如果覺得圖文教程不夠詳細的朋友可以移步到 【InputSystem基礎(chǔ)教程】觀看視頻教程。

2.基礎(chǔ)操作

2-1插件安裝

1.我們打開Unity上方工具欄中的Window =>Package Manager打開Unity插件包管理界面input system unity,Unity,Unity插件,unity,游戲引擎,c#,游戲程序,游戲
2.點擊右上角Package選項中Unity Registry,然后在右側(cè)搜索欄中搜索Input
input system unity,Unity,Unity插件,unity,游戲引擎,c#,游戲程序,游戲
3.找到InputSystem插件,點擊安裝
input system unity,Unity,Unity插件,unity,游戲引擎,c#,游戲程序,游戲

2-2.如何創(chuàng)建InputActions

1.安裝插件后在項目Project中右鍵點擊Creater若出現(xiàn)InputActions選項證明插件安裝成功,點擊創(chuàng)建InputActions。
input system unity,Unity,Unity插件,unity,游戲引擎,c#,游戲程序,游戲
2.創(chuàng)建InputActions成功后雙擊打開InputActions編輯頁面,此時我們有幾個參數(shù)需要了解并使用的。

2-3.InputActions概念及結(jié)構(gòu)關(guān)系

在我們InputSystem中所用到結(jié)構(gòu)關(guān)系為
InputSystem=>InputActions=>ActionMaps=>Actions

ActionMaps

簡單來說我們可以將InputActions視為我們項目里其中一個控制器的輸入操作管理集,而ActionMaps則為該控制器其中的一個輸入映射集。
input system unity,Unity,Unity插件,unity,游戲引擎,c#,游戲程序,游戲

Actions

而Actions則為ActionMaps里其中一個動作輸入映射

ActionProperties

在Actions中也有許多參數(shù),其中ActionType則是我們最常用到。其概念為我們該動作輸入映射的類型,有以下三種類型
input system unity,Unity,Unity插件,unity,游戲引擎,c#,游戲程序,游戲
1.Button 默認設(shè)置,包括按鈕或者按鍵觸發(fā)的一次性動作
2.Value 提供一種連續(xù)狀態(tài)變化事件,如果設(shè)置了多個輸入,就會切換到最主要的一個。用它進行模擬控制,比如移動。
3.Pass Through 和Value很相似,但它不會像Value一樣(如果有多個輸入時,不會只選擇最主要的那個,而把其他的輸入忽略)

在使用Value或者Pass Through Types時,你會看到一個額外的選項 Control Type為該Value的返回值類型input system unity,Unity,Unity插件,unity,游戲引擎,c#,游戲程序,游戲

2-4.InputActions常用實例

在我們Unity項目中輸入檢測做常用的兩種功能實現(xiàn)
1.角色移動時持續(xù)輸入 - Value
在我們選擇ActionType為Value之后會出現(xiàn)Control Type,以下為常用的Control Type列舉

Control Type 使用場景
Axis 僅為單軸方向數(shù)值
Vector 2 為雙軸方向數(shù)值
Vector 3 為三軸方向數(shù)值

2.攻擊或點擊菜單欄時一次性輸入 - Button

2-5.動作映射調(diào)用

官方PlayerInput組件調(diào)用

我們需要在場景中在我們需要的對象上添加PlayerInput組件
input system unity,Unity,Unity插件,unity,游戲引擎,c#,游戲程序,游戲
隨后我們需要在Player組件中選定我們剛剛創(chuàng)建好的InputActions,選擇想要使用的輸入映射集,再選擇對應(yīng)輸入?yún)?shù)返回的調(diào)用方式BehaviorType
input system unity,Unity,Unity插件,unity,游戲引擎,c#,游戲程序,游戲
再BehaviorType中我們有四種不同的調(diào)用方式

1.Send Message

使用Send Message時,每次的觸發(fā)會盜用一個對應(yīng)的函數(shù)(就是在對應(yīng)的Actions名前面加個On-)正如下圖所示在我們PlayerInput組件當中我們將BehaviorType選擇了Send Message后我們的輸入?yún)?shù)將會通過Send Message方法發(fā)送到我們對應(yīng)生成的函數(shù)中
比如Input Action 名為 Jump,那么對應(yīng)的函數(shù)即為 OnJump
input system unity,Unity,Unity插件,unity,游戲引擎,c#,游戲程序,游戲

獲取輸入時的數(shù)據(jù),我們可以寫一個輸入控制類,在該類中調(diào)用我們上述說到的Actions生成函數(shù)
可以通過isPressed獲取設(shè)置了ActionType為Button類型的動作是否點擊
可以通過Get 獲取設(shè)置了ActionType為Value對應(yīng)類型的數(shù)據(jù)

public class PlayerController : MonoBehaviour
{
    void OnAction1(InputValue value)
    {
        bool isAction1Pressd = value.isPressed;
        Debug.Log(isAction1Pressd);
    }
    void OnMove(InputValue value)
    {
        Vector2 moveVal = value.Get<Vector2>();
        Debug.Log(moveVal );
    }
    void OnJump(InputValue value) 
    { 
        float triggerVal = value.Get<float>(); 
        Debug.Log(triggerVal );
    }
}
2.Broadcast Messages

Broadcast Messages 與 send Message 很相似(但目前我還沒有搞懂具體區(qū)別)

3.Invoke Unity Events

區(qū)別于上述兩種BehaviorType不同的是,在我們選擇該方法后會出現(xiàn)Events的選項,我們需要自己寫好動作方法后將其掛載到我們對應(yīng)的ActionMaps中對應(yīng)的ActionEvents上才能觸發(fā)對應(yīng)的動作事件。
input system unity,Unity,Unity插件,unity,游戲引擎,c#,游戲程序,游戲
在我們寫的動作方法中需要在方法入?yún)⑻幖由螴nputAction.CallbackContext類型的入?yún)?,通過此參數(shù)我們才能獲取我們對應(yīng)輸入返回(且加入該參數(shù)后會將其方法置頂如上圖所示)

public class PlayerController : MonoBehaviour
{
    public void moveControl(InputAction.CallbackContext value)
    {
        Vector2 moveVal = value.ReadValue<Vector2>();
        Debug.Log(moveVal);
    }
}
4.Invoke C Sharp Events

與Invoke Unity Events方式其實大致相同,需要我們自己先寫好一個帶有InputAction.CallbackContext類型入?yún)⒌膭幼鞣椒?,不同的是我們掛載方式變成了腳本事件加載而不是在Unity界面上的可視化掛載

using UnityEngine;
using UnityEngine.InputSystem;
public class CSharpEvent : MonoBehaviour
{
    public PlayerInput playerInput;
    void OnEnable()
    {
        playerInput.onActionTriggered += MyEventFunction;
    }
    void OnDisable()
    {
        playerInput.onActionTriggered -= MyEventFunction;
    }
    void MyEventFunction(InputAction.CallbackContext value)
    {
        Debug.Log(value.action.name + (" was triggered"));
    }
}

提示:在我自己嘗試下發(fā)現(xiàn)上述四種的官方組件調(diào)用方式都只在輸入發(fā)生時觸發(fā)時發(fā)送一次輸入返回,并不會持續(xù)發(fā)送,所以如果要實現(xiàn)輸入控制角色移動這種需要持續(xù)返回輸入信號功能的并不適合該方式。該方式僅適合如菜單界面點擊按鈕或者跳躍功能這種僅需輸入時觸發(fā)一次返回的功能。

腳本調(diào)用

基于上述提示,所以官方PlayerInput組件調(diào)用動作事件函數(shù)時并不能滿足我們所有的場景需求(也可能是我在持續(xù)返回信號上沒找到解決方案),所以我們還需要學(xué)習(xí)一下不借助官方PlayerInput組件的事件調(diào)用。我們直接在我們的腳本中調(diào)用InputSystem中的動作事件。

在我們使用腳本調(diào)用之前我們需要做一件事情,在我們創(chuàng)建好的InputActions屬性面板中找到Generate C# Class并勾選,隨后點擊Apply生成對應(yīng)的腳本,之后我們就可以在我們自己寫的PlayerController 類中調(diào)用該腳本了
input system unity,Unity,Unity插件,unity,游戲引擎,c#,游戲程序,游戲

不知道怎么說明了,直接上代碼(自己看注釋理解)

using UnityEngine;
using UnityEngine.InputSystem;
public class CSharpEvent : MonoBehaviour
{
    private PlayerInputActions playerInputActions;
    //將對應(yīng)的ActionMaps中對應(yīng)的Action進行傳址引用
    public Vector2 keyboardMoveAxes => playerInputActions.keyboard.moveControl.ReadValue<Vector2>();
    
    void Awake() {
    	//實例化InputActions腳本
        playerInputActions = new PlayerInputActions();
    }
    private void OnEnable(){
    	//將要使用的ActionMap開啟
        playerInputActions.keyboard.Enable();
    }
    private void OnDisable()
    {
    	//上述同理
        playerInputActions.keyboard.Disable();
    }
    private void Update()
    {
    	//在幀更新方法中調(diào)用所寫的動作方法
        movePlayer();
    }
    private void movePlayer(){
    	//因為要在Update方法中使用,需要需要先判斷是否有輸入對應(yīng)的Input操作
        if(keyboardMoveAxes != Vector2.zero){
        	//判斷有輸入后便執(zhí)行對應(yīng)方法
            Debug.Log(keyboardMoveAxes);
        }
    }
}

3.引用文獻

Unity InputSystem官方使用手冊

Unity input system 使用記錄(實例版)- 作者 : xkxsxkx

Unity New Input System 作者 : 小蟲兒飛到花叢中

以上就是本文章全部內(nèi)容了,如果覺得實用可以點個收藏和關(guān)注。博主空間還有更多和Unity相關(guān)的實用技巧歡迎大家來一起相互學(xué)習(xí)。

更詳細的視頻教程:日醉夜的狗-【Unity】InputSystem基礎(chǔ)教程系列

下一期InputSystem進階實用技巧(實現(xiàn)角色移動跳躍等功能) 【Unity】InputSystem實用教程文章來源地址http://www.zghlxwxcb.cn/news/detail-678714.html

到了這里,關(guān)于【Unity InputSystem】基礎(chǔ)教程(保姆級超詳細超基礎(chǔ)?。。。┑奈恼戮徒榻B完了。如果您還想了解更多內(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īng)查實,立即刪除!

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

相關(guān)文章

  • JDBC 技術(shù) | Java連接MySQL數(shù)據(jù)庫(四萬字零基礎(chǔ)保姆級超全詳解)

    JDBC 技術(shù) | Java連接MySQL數(shù)據(jù)庫(四萬字零基礎(chǔ)保姆級超全詳解)

    管他啥是啥,看就完了!如果覺得博主寫的不錯,可以點贊關(guān)注支持一下博主哦!有什么地方存在不足或者錯誤的,煩請各位大佬在評論區(qū)指正。萬分感謝!! 本文結(jié)合了韓順平零基礎(chǔ)學(xué)java,黑馬程序員零基礎(chǔ)學(xué) JavaWeb,等多個視頻的相關(guān)知識內(nèi)容整理而來?;ㄙM了很多很多

    2024年02月05日
    瀏覽(88)
  • 【Unity_Input System】Input System新輸入系統(tǒng)(二)

    【Unity_Input System】Input System新輸入系統(tǒng)(二)

    目錄 六、Action Phase 七、Input Action Asset文件 1.Bindings Mode? 1Binding 2PositiveNegative Binding 3UpDownLeftRight Composite 4UpDownLeftRightForwardBackward?Composite 5Binding with one modifier 6Binding with two?modifier 2.Binding Path 3.Action Type 4.Initial State Check 5.Interaction 1Default Interaction 2Press Interaction 3Hold Inter

    2024年02月03日
    瀏覽(30)
  • 【Unity_Input System】Input System新輸入系統(tǒng)(一)

    【Unity_Input System】Input System新輸入系統(tǒng)(一)

    目錄 一、導(dǎo)入Input System包 二、使用方式1:直接從輸入設(shè)備對應(yīng)類中獲取輸入 三、使用方式2:用代碼創(chuàng)建InputAction獲取輸入 四、使用方式3:用Player Input組件獲取輸入 五、使用方式4:用Input Action Asset生成C#代碼獲取輸入 打開包管理器,搜索Input System,點擊右下角安裝。 安裝

    2024年02月08日
    瀏覽(24)
  • Zookeeper+Hadoop+Spark+Flink+Kafka+Hbase+Hive 完全分布式高可用集群搭建(保姆級超詳細含圖文)

    Zookeeper+Hadoop+Spark+Flink+Kafka+Hbase+Hive 完全分布式高可用集群搭建(保姆級超詳細含圖文)

    說明: 本篇將詳細介紹用二進制安裝包部署hadoop等組件,注意事項,各組件的使用,常用的一些命令,以及在部署中遇到的問題解決思路等等,都將詳細介紹。 ip hostname 192.168.1.11 node1 192.168.1.12 node2 192.168.1.13 node3 1.2.1系統(tǒng)版本 1.2.2內(nèi)存建議最少4g、2cpu、50G以上的磁盤容量 本次

    2024年02月12日
    瀏覽(38)
  • 【Unity_Input System】Input System新輸入系統(tǒng)(三)——在游戲中更換按鍵綁定

    【Unity_Input System】Input System新輸入系統(tǒng)(三)——在游戲中更換按鍵綁定

    Binding只由一個部分組成,一般綁定單個按鍵或者搖桿 CompositeBinding由兩個以上部分組成,一般是用于將多個按鍵組成虛擬軸 更換按鍵綁定時,Binding和Composite Binding需要分別處理,對Composite Binding需要循環(huán)各個部分進行修改。 可以用InputBinding.isComposite來判斷是否是Composite Bind

    2024年02月04日
    瀏覽(28)
  • Unity 新版輸入系統(tǒng)(Input System)

    Unity 新版輸入系統(tǒng)(Input System)

    官方教程 注意 新的輸入法系統(tǒng)需要 Unity 2019.4+ 和 .NET 4 運行時。它不適用于 .NET 3.5 的項目。 教程版本:Unity 2021.3.26 導(dǎo)航欄 - Window - Package Manager 選擇 Unity Registry 在列表中找到 Input System 點擊 Install 安裝 點擊 Yes 啟用新版 Input System 等待Unity重新啟動 Unity 默認會同時啟用舊版和

    2024年04月23日
    瀏覽(27)
  • Unity 3D Input System的使用

    Unity 3D Input System的使用

    Input System是Unity新推出的輸入系統(tǒng),可以用作以前Input Manager的更具擴展性和可自定義性的替代方案。這里我將使用Unity 3D的Input System來實現(xiàn)一個FPS第一人稱的游戲場景。 演示效果如下: 新建一個Unity 3D項目,在Asset Store里面下載StarterAssets - FirstPerson,然后在Package Manager里面導(dǎo)

    2024年02月20日
    瀏覽(21)
  • Unity InputSystem 基礎(chǔ)使用之鼠標交互

    官方文檔 Package Manager 搜索Input System進行下載 啟用該包,會重啟Unity Editor InputSystem可以和舊版輸入系統(tǒng)一起使用 設(shè)置:Project Settings-Player-Other Settings-Configuration-Active Input Handling 參數(shù)可選:Input Manager(old),Input System Package(New),Both

    2024年02月08日
    瀏覽(20)
  • Unity新(Input System)老(Input Manager)輸入系統(tǒng)代碼對比

    以下介紹都是基于Unity2022版本 一、鍵盤操作 當w鍵按下時 當w鍵抬起時 當w鍵按著時 二、鼠標操作 獲取鼠標位置 獲取鼠標滾輪 獲取鼠標左鍵按下 獲取鼠標右鍵抬起 獲取鼠標中間按著

    2024年02月16日
    瀏覽(22)
  • 第五十二章 Unity Input System 新輸入系統(tǒng)

    第五十二章 Unity Input System 新輸入系統(tǒng)

    新輸入系統(tǒng)InputSystem是2019年Unity新推出的插件。請注意,Unity默認使用舊的Input Manager,新的Input System處于未啟用狀態(tài)。當你安裝Input System組件時,Unity會詢問你是否啟用新的輸入系統(tǒng)。如果你選擇Yes,Unity會啟用新的并禁用舊的,之后編輯器將重新啟動。具體的操作是,打開包

    2024年02月07日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包