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

【Unity入門計(jì)劃】基本概念(7)-Input Manager&Input類

這篇具有很好參考價(jià)值的文章主要介紹了【Unity入門計(jì)劃】基本概念(7)-Input Manager&Input類。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

1 Input Manager-Controls 控件

1.1 Key 鍵

1.2 Button 按鈕

1.3 Virtual Axis 虛擬軸(復(fù)數(shù):Axels)

Name 名稱

Ngative Button, Positive Button 負(fù)/正值鍵(按鈕)

2 C#中的Input類

2.1 鍵盤的輸入(獲取鍵盤事件)

Input.GetKey(string KeyName)

Input.GetKeyDown(string KeyName)

Input.GetKeyUp(string KeyName)

2.2 鼠標(biāo)的輸入(獲取鼠標(biāo)事件)

Input.GetMouseButton(int button)

Input.GetMouseButtonDown(int button)

Input.GetMouseButtonUp(int button)

2.3?訪問虛擬軸 Input.GetAxis(string AxisName)

鼠標(biāo)操作

鍵盤操作

Input.GetAxis()和Input.GetAxisRaw()區(qū)別


在Input Manager窗口中可以查看并定義項(xiàng)目輸入軸及其他相關(guān)的操作,這里簡(jiǎn)單介紹一下它擁有的一些控件都是什么意思。

1 Input Manager-Controls 控件

官方文檔:Input Manager - Unity 手冊(cè)

Input Mnager主要使用以下三種控件

1.1 Key 鍵

指物理鍵盤上的任何鍵,比如↑、W、Space空格等。

1.2 Button 按鈕

指一些物理控制器上的按鈕,比如游戲手柄上的X按鈕。

1.3 Virtual Axis 虛擬軸(復(fù)數(shù):Axels)

映射到上面提到的按鈕/鍵,用戶激活控件后,虛擬軸會(huì)得到[-1,1]范圍上的某個(gè)值。Unity中,創(chuàng)建的每個(gè)項(xiàng)目都包含了若干輸入軸,在Input Manager窗口中可以查看輸入軸具有的屬性。

【Unity入門計(jì)劃】基本概念(7)-Input Manager&Input類

Name 名稱

軸的名稱,可以在腳本中通過Name訪問該軸。

Ngative Button, Positive Button 負(fù)/正值鍵(按鈕)

用于分別沿著負(fù)向和正向推動(dòng)的控件,可以是鍵盤上的鍵,也可以是控制器上的按鈕。輸入設(shè)置中,對(duì)于鍵盤按鍵:(默認(rèn)分別為鍵盤上的“←”和“→”)

  • Negative Buttion——負(fù)值鍵,按下將軸設(shè)置成-1
  • Positive Button——正值鍵,按下將軸設(shè)置成1

對(duì)于游戲手柄

控制桿在左側(cè)、中間、右側(cè)分別將水平軸設(shè)置成-1、0和1。

其余的參數(shù)這里就不過多介紹了。

2 C#中的Input類

官方文檔:UnityEngine.Input - Unity 腳本 API

如上,Unity中用Input類控制用戶的輸入,包括鍵盤、鼠標(biāo)、重力感應(yīng)等一些輸入方式。以下介紹一些常用的InputAPI中的靜態(tài)函數(shù)

2.1 鍵盤的輸入(獲取鍵盤事件)

Input.GetKey(string KeyName)

當(dāng)鍵名為KeyName的鍵被持續(xù)按下(長(zhǎng)按有效),返回true。可以被用在自動(dòng)開火等情況。

if(Input.GetKey("up")){
    print("up arrow key is held down");
}

Input.GetKeyDown(string KeyName)

當(dāng)某鍵被按下(按下有效)時(shí),返回true.

Input.GetKeyUp(string KeyName)

當(dāng)用戶釋放某鍵時(shí),返回ture

if (Input.GetKeyUp("space"))
{
    print("Space key was released");
}

2.2 鼠標(biāo)的輸入(獲取鼠標(biāo)事件)

Input.GetMouseButton(int button)

返回是否按下了鼠標(biāo)的button鍵,button值分別對(duì)應(yīng)

  • 0——鼠標(biāo)左鍵
  • 1——鼠標(biāo)右鍵
  • 2——鼠標(biāo)中鍵
        if (Input.GetMouseButton(0))
        {
            Debug.Log("Pressed left click.");
        }

        if (Input.GetMouseButton(1))
        {
            Debug.Log("Pressed right click.");
        }

        if (Input.GetMouseButton(2))
        {
            Debug.Log("Pressed middle click.");
        }

Input.GetMouseButtonDown(int button)

用戶按下botton鍵的幀期間返回true

Input.GetMouseButtonUp(int button)

用戶松開botton鍵的幀期間返回true

2.3?訪問虛擬軸 Input.GetAxis(string AxisName)

public static float?GetAxis?(string?axisName);

它返回的是一個(gè)值,這是值的含義取決于該軸映射的控制類型。并且需要通過1.3中介紹的屬性Name軸名稱訪問虛擬軸。

例如想要查詢當(dāng)前水平軸的值并儲(chǔ)存在變量中,就可以使用InputGetAxis(string AxisName)訪問:

float horizontalInput = Input.GetAxis("Horizontal");

該軸映射一般分為觸屏類(鼠標(biāo)操作)、鍵盤操作類(鍵盤、控制桿)。

鼠標(biāo)操作

當(dāng)軸映射到鼠標(biāo),返回的float值不在[-1,1],此時(shí)的值為當(dāng)前鼠標(biāo)增量*軸的靈敏度。一般正值表示鼠標(biāo)向右/向下移動(dòng),負(fù)值表示向左/向上移動(dòng)。

鍵盤操作

對(duì)于游戲手柄的控制桿,-1表示向左推到底,1表示向右推到底,0表示在中間。

對(duì)于物理鍵盤操作,分為以下兩種

  • Vertical:對(duì)應(yīng)鍵盤的垂直,即上/下鍵,也可以自定義按鍵設(shè)置
  • Horizontal:對(duì)應(yīng)鍵盤的水平,即左/右鍵,也可以自定義按鍵設(shè)置

Input.GetAxis()和Input.GetAxisRaw()區(qū)別

最后來簡(jiǎn)單說一下這兩個(gè)都是訪問虛擬軸的方法,它們區(qū)別在哪里。

直接用一個(gè)例子就能很好的證明:

先來看看項(xiàng)目中,控制玩家角色移動(dòng)用的是Input.GetAxis():

        horizontal = Input.GetAxis("Horizontal");
        //獲取垂直軸
        vertical = Input.GetAxis("Vertical");

用Input.GetAxisRaw():

        //獲取水平軸并儲(chǔ)存在新變量中
        horizontal = Input.GetAxisRaw("Horizontal");
        //獲取垂直軸
        vertical = Input.GetAxisRaw("Vertical");

二者在場(chǎng)景中對(duì)玩家角色的控制效果分別為:(轉(zhuǎn)向動(dòng)畫沒加上去,看起來會(huì)有點(diǎn)怪)

?【Unity入門計(jì)劃】基本概念(7)-Input Manager&Input類

【Unity入門計(jì)劃】基本概念(7)-Input Manager&Input類

上為Input.GetAxis,下為Input.GetAxisRaw,可以很明顯看出區(qū)別了!

Input.GetAxis()的看上去更順滑,Input.GetAxisRaw()看上去就很干脆。

這是因?yàn)椋?/p>

Input.GetAxis()返回值是范圍[-1,1]上的,能夠平滑過渡;

Input.GetAxisRaw()返回值是{-1, 0, 1}三者中的一個(gè),比較絕對(duì),就沒有平滑過渡的效果。

因此,想實(shí)現(xiàn)不同效果的時(shí)候,可以根據(jù)需要選擇其一。文章來源地址http://www.zghlxwxcb.cn/news/detail-475747.html

到了這里,關(guān)于【Unity入門計(jì)劃】基本概念(7)-Input Manager&Input類的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(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 Shader】從入門到著魔(1)基本概念:什么是網(wǎng)格?材質(zhì)?Shader?

    【Unity Shader】從入門到著魔(1)基本概念:什么是網(wǎng)格?材質(zhì)?Shader?

    如上圖,模型的三角形面就叫做網(wǎng)格(Mesh),網(wǎng)格的本質(zhì)是一堆頂點(diǎn)數(shù)據(jù)的規(guī)則排序,在Unity和UE中由三角形表示,Maya等DCC軟件(Digital Content Creation)中則通常由四邊形表示(倆個(gè)三角形剛好組成一個(gè)四邊形)。 在Unity中我們新建一個(gè)Cube,

    2024年02月09日
    瀏覽(24)
  • 【Unity Shader】從入門到領(lǐng)悟(1)基本概念:什么是網(wǎng)格?什么是材質(zhì)和Shader?

    【Unity Shader】從入門到領(lǐng)悟(1)基本概念:什么是網(wǎng)格?什么是材質(zhì)和Shader?

    如上圖,模型的三角形面就叫做網(wǎng)格(Mesh),網(wǎng)格的本質(zhì)是一堆頂點(diǎn)數(shù)據(jù)的規(guī)則排序,在Unity和UE中由三角形表示,Maya等DCC軟件(Digital Content Creation)中則通常由四邊形表示(倆個(gè)三角形剛好組成一個(gè)四邊形)。 在Unity中我們新建一個(gè)Cube,

    2024年02月06日
    瀏覽(21)
  • 【Unity Shader】從入門到感慨(1)基本概念:什么是網(wǎng)格?什么是材質(zhì)和Shader?

    【Unity Shader】從入門到感慨(1)基本概念:什么是網(wǎng)格?什么是材質(zhì)和Shader?

    如上圖,模型的三角形面就叫做網(wǎng)格(Mesh),網(wǎng)格的本質(zhì)是一堆頂點(diǎn)數(shù)據(jù)的規(guī)則排序,在Unity和UE中由三角形表示,Maya等DCC軟件(Digital Content Creation)中則通常由四邊形表示(倆個(gè)三角形剛好組成一個(gè)四邊形)。 在Unity中我們新建一個(gè)Cube,

    2024年02月11日
    瀏覽(22)
  • 【Unity入門】Input.GetAxis(““)控制物體移動(dòng)、旋轉(zhuǎn)

    Input.GetAxis(“”) 是 Unity 引擎中的一個(gè)方法,用于獲取游戲玩家在 鍵盤 或 游戲手柄 上輸入的某個(gè)軸(Axis)的值。這里的 “” 是一個(gè)字符串參數(shù),表示要獲取的軸的名稱。 在 Unity 中,有多種軸類型,如 “Horizontal”(水平軸)、“Vertical”(垂直軸)、“Mouse X”(鼠標(biāo)水平

    2024年01月17日
    瀏覽(21)
  • Unity 動(dòng)畫系統(tǒng)基本概念

    Unity 動(dòng)畫系統(tǒng)基本概念

    在古代,一幅字畫叫一幀,而在計(jì)算機(jī)中,每次渲染完畢一幅畫面并顯示出來,這一幅畫就是一幀。 連續(xù)切換的幀就形成了動(dòng)態(tài)的畫面。每秒刷新幀的次數(shù)稱為頻率,單位是FPS(Frames Per Second,幀/秒),也可以簡(jiǎn)稱為\\\"幀\\\"。傳統(tǒng)電影每秒顯示24幀就可以保證良好的動(dòng)態(tài)效果。

    2024年02月06日
    瀏覽(21)
  • Unity物理系統(tǒng)基本概念

    前言: 物理引擎僅僅是對(duì)現(xiàn)實(shí)物理的一種近似模擬。無論是從運(yùn)算精度和時(shí)間連續(xù)性都不夠準(zhǔn)確。目的只是為了讓游戲具備令人信服的物理表現(xiàn),增強(qiáng)游戲的表現(xiàn)力和用戶的沉浸感。 剛體是讓物體產(chǎn)生物理行為的主要組件。一旦掛載了Rigidbody組件,它就納入了物理引擎的控

    2024年02月05日
    瀏覽(23)
  • nodejs 入門基本概念

    nodejs 入門基本概念

    ??Node.js 是2009的時(shí)候由大神 Ryan Dahl 開發(fā)的。Ryan 的本職工作是用 C++ 寫服務(wù)器,后來他總結(jié)出一個(gè)經(jīng)驗(yàn), 一個(gè)高性能服務(wù)器應(yīng)該是滿足“事件驅(qū)動(dòng),非阻塞 I/O”模型的 。C++ 開發(fā)起來比較麻煩,于是 Ryan 就想找一種更高級(jí)的語言,以便快速開發(fā)。 ?? Ryan 發(fā)現(xiàn) JS 語言本身

    2024年02月05日
    瀏覽(24)
  • RocketMQ基本概念與入門

    RocketMQ基本概念與入門

    message: 消息數(shù)據(jù)對(duì)象 product: 程序代碼,生成消息,發(fā)送消息到隊(duì)列 consumer: 程序代碼,監(jiān)聽(綁定)隊(duì)列,獲取消息,執(zhí)行消費(fèi)代碼 queue: Rocketmq rabbitmq kafka這些消息隊(duì)列中間件軟件. product Consumer 1.nameserver NameServer是一個(gè)簡(jiǎn)單的 Topic 路由注冊(cè)中心,支持 Topic、Broker 的動(dòng)態(tài)注冊(cè)與發(fā)現(xiàn)。

    2024年02月15日
    瀏覽(23)
  • Kafka入門基本概念(詳細(xì))

    Kafka入門基本概念(詳細(xì))

    Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng)(消息引擎系統(tǒng)),它可以處理消費(fèi)者在網(wǎng)站中的所有動(dòng)作流數(shù)據(jù)。 這種動(dòng)作(網(wǎng)頁瀏覽,搜索和其他用戶的行動(dòng))是在現(xiàn)代網(wǎng)絡(luò)上的許多社會(huì)功能的一個(gè)關(guān)鍵因素。 這些數(shù)據(jù)通常是由于吞吐量的要求而通過處理日志和日志聚合

    2024年01月16日
    瀏覽(21)
  • 【openGauss基本概念---快速入門】

    【openGauss基本概念---快速入門】

    ??【上一篇】 ??The Begin?? 點(diǎn)點(diǎn)關(guān)注,收藏不迷路?? 【下一篇】?? ?? 1.1 openGauss openGauss是一款 關(guān)系型數(shù)據(jù)庫管理系統(tǒng) —RDBMS。關(guān)系型數(shù)據(jù)庫是指采用了關(guān)系模型來組織數(shù)據(jù)的數(shù)據(jù)庫, 以行和列的形式存儲(chǔ)數(shù)據(jù) 。 openGauss的數(shù)據(jù)庫節(jié)點(diǎn)負(fù)責(zé)存儲(chǔ)數(shù)據(jù),其 存儲(chǔ)介質(zhì)是磁盤

    2024年02月09日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包