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

使用Unity的Input.GetAxis(““)控制物體移動(dòng)、旋轉(zhuǎn)

這篇具有很好參考價(jià)值的文章主要介紹了使用Unity的Input.GetAxis(““)控制物體移動(dòng)、旋轉(zhuǎn)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?Input.GetAxis("")?是 Unity 引擎中的一個(gè)方法,用于獲取游戲玩家在鍵盤或游戲手柄上輸入的某個(gè)軸(Axis)的值。這里的 "" 是一個(gè)字符串參數(shù),表示要獲取的軸的名稱。只要游戲運(yùn)行Unity在后臺就實(shí)時(shí)通過GetAxis這些定義好的方法幫你檢測用戶鍵盤、手柄、鼠標(biāo),你只需要用這個(gè)方法nput.GetAxis("")?調(diào)用就可以獲取到用戶輸入?了那個(gè)鍵盤、點(diǎn)了那個(gè)鍵!

為了區(qū)分是鼠標(biāo)還是鍵盤、手柄等等,需要在這個(gè)方法里面天上?你要獲取的交互鍵名字。

在 Unity 中,有多種軸類型,如 "Horizontal"(水平軸)、"Vertical"(垂直軸)、"Mouse X"(鼠標(biāo)水平滾輪軸)和 "Mouse Y"(鼠標(biāo)垂直滾輪軸)等。這些軸的值可以用來控制游戲角色的移動(dòng)、縮放或旋轉(zhuǎn)等動(dòng)作。這些數(shù)值都處于-1 到1 之間,你可以用代碼:
?


        float INPUTaXIS = Input.GetAxis("Horizontal");
        Debug.Log(INPUTaXIS);

來輸出檢測這個(gè)數(shù)值!?

01 "Horizontal"

以 "Horizontal" 為例,Input.GetAxis("Horizontal") 方法會返回一個(gè)值,表示玩家在水平方向上輸入的值。如果玩家向左移動(dòng)鍵盤或游戲手柄,該值將為負(fù);如果玩家向右移動(dòng),該值將為正。

該軸默認(rèn)是由A、D以及方向鍵左右箭頭來觸發(fā)!

02 "Vertical" 軸

類似地,對于 "Vertical" 軸

該軸默認(rèn)是由W、S以及方向鍵上下箭頭來觸發(fā)!

03 "Mouse X" 軸和 "Mouse Y" 軸

返回的值分別表示玩家在垂直方向、鼠標(biāo)水平滾輪和鼠標(biāo)垂直滾輪上的輸入。

在代碼中,我們可以將這些軸的值用于控制游戲角色的移動(dòng)、旋轉(zhuǎn)等動(dòng)作。例如,在您提供的代碼中,MoveHorizontalMoveVertical 變量分別存儲了水平軸和垂直軸的值,用于控制角色在水平方向和垂直方向上的移動(dòng)。

示例代碼:下面這個(gè)代碼實(shí)現(xiàn)控制物體 移動(dòng)和左右、上下旋轉(zhuǎn)文章來源地址http://www.zghlxwxcb.cn/news/detail-715722.html

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ConRole : MonoBehaviour
{
    // yong鼠標(biāo)控制方向,用方向鍵控制移動(dòng)
    // 設(shè)置角色的移動(dòng)速度和旋轉(zhuǎn)速度
    public float Movespeed = 15f;
    public float Rotatespeed = 10f;

    float RotationY;//用來累積存儲用戶每次移動(dòng)鼠標(biāo)得出的值
    float RotationX;//用來累積存儲用戶每次移動(dòng)鼠標(biāo)得出的值

    void Update()
    {

        // 【控制物體移動(dòng)】獲取水平方向和垂直方向的輸入值
        float MoveHorizontal = Input.GetAxis("Horizontal");
        float MoveVertical = Input.GetAxis("Vertical");
        //全部存到一個(gè)向量里面
        Vector3 MoveDir = new Vector3(MoveHorizontal,0, MoveVertical);
        //上面這句不能保持物體朝自己的Z正方移動(dòng),因此用下面的語句
        transform.Translate(MoveDir * Movespeed * Time.deltaTime, Space.Self);

        //【控制物體旋轉(zhuǎn)】

        // 獲取鼠標(biāo)的旋轉(zhuǎn)輸入值  ,Mouse X\ MouseY 是來源鼠標(biāo)在水平方向的移動(dòng)數(shù)值轉(zhuǎn)換返回為-1 -  1 之間的數(shù)值
        float RotaY = Input.GetAxis("Mouse X");//鼠標(biāo)水平移動(dòng)返回-1  -  +  1,這個(gè)數(shù)值將來用來給物體繞Y軸旋轉(zhuǎn)
        float RotaX = Input.GetAxis("Mouse Y");//鼠標(biāo)水平移動(dòng)返回-1  -  +  1,這個(gè)數(shù)值將來用來給物體繞X軸旋轉(zhuǎn)

        //這是使用歐拉角的旋轉(zhuǎn)方式,這種旋轉(zhuǎn)有個(gè)缺陷就是,旋轉(zhuǎn)一個(gè)軸沒有問題!不能同時(shí)旋轉(zhuǎn)2個(gè)及以上的軸。
        //transform.Rotate(new Vector3(RotaX * Rotatespeed,RotaY * Rotatespeed,0),Space.Self); 
        //旋轉(zhuǎn)2個(gè)及以上的軸,需要用四元數(shù)賦值給Retation
        RotationY += RotaY * Rotatespeed*Time.deltaTime;
        RotationX+= RotaX * Rotatespeed * Time.deltaTime;
        this.transform.rotation = Quaternion.Euler(RotationX, RotationY, 0);
        LimtRotatX();
    }

    void LimtRotatX()
    {//限制了上下旋轉(zhuǎn)也就是圍繞X軸旋轉(zhuǎn)的最小角度和最大角度  !注意 -50 代表后仰旋轉(zhuǎn)!60  度代表了!往前旋轉(zhuǎn)!
        RotationX = Mathf.Clamp(RotationX,-50,60);
  }
}

到了這里,關(guān)于使用Unity的Input.GetAxis(““)控制物體移動(dòng)、旋轉(zhuǎn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包