羅技方向盤接入Unity_LogitechSteeringWheelEnginesWrapper


基於Unity版本 2018.4.11f1(點擊下載

設置腳踏板

腳踏板的設置需要在Unity中添加虛擬軸,添加幾個軸就把圖中的“Size”改為 18 加上要添加的軸的數量。

離合

剎車

 

油門

 

Name:名字

Dead:設置為0,不然得到的數字不是 Sensitivity 設置的數值

Sensitivity:建議設置成0.5(該值為0.5時,若游戲開始運行,沒有觸碰過腳踏板,那么該數值為0;當觸碰了一次離合踏板時(觸碰任何一個腳踏板后,三個腳踏板都會出現非 0 的數值),離合板完全抬起的時候數值為0.5,完全踩下時數值為-0.5)

Type:按圖中所示選擇

Axis:按圖中所示選擇

設置方向盤

十字按鍵

 其他按鍵

將該DLL與C#腳本導入Unity中(點擊下載DLL與腳本

然后將下方腳本創建在Uniry中,並掛載到相機(建議)或其他物體上,然后運行測試

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

public class FunctionOne : MonoBehaviour {

    void Start () {
        // 沒有這行代碼,用方法二可能獲取不到按鍵
        LogitechGSDK.LogiSteeringInitialize(false);
    }

    void Update () {
        // 獲取方向盤
        if (Input.GetAxis ("Horizontal") != 0) {
            print (Input.GetAxis ("Horizontal"));
        }

        // 獲取“腳踏板”
        if (Input.GetAxisRaw("Throttle") < 0.5f) {
            print ("油門 的值為:" + Input.GetAxisRaw("Throttle"));
        }
        if (Input.GetAxisRaw("Brake") < 0.5f) {
            print ("剎車 的值為:" + Input.GetAxisRaw("Brake"));
        }
        if (Input.GetAxisRaw("Clutch") < 0.5f) {
            print ("離合 的值為:" + Input.GetAxisRaw("Clutch"));
        }

        // 獲取方向盤上的“十字按鍵”
        if (Input.GetAxisRaw("DPadX") == 0.5) {
            print ("按下了十字按鍵  右");
        }
        if (Input.GetAxisRaw("DPadX") == -0.5) {
            print ("按下了十字按鍵  左");
        }
        if (Input.GetAxisRaw("DPadY") == 0.5) {
            print ("按下了十字按鍵  上");
        }
        if (Input.GetAxisRaw("DPadY") == -0.5) {
            print ("按下了十字按鍵  下");
        }

        //方向盤所有按鍵獲取:
        //方法一:
        //該方法在unity中只能獲取0-19的鍵位  20-24鍵位需要使用方法二獲取 或者全部使用方法二 

        if (Input.GetKeyDown(KeyCode.Joystick1Button0))
        {
            Debug.Log("KeyCode.Joystick1Button0  方向盤 X 鍵");
        }

        print (LogitechGSDK.LogiUpdate());
        //方法二:
        if (true)

        {
            LogitechGSDK.DIJOYSTATE2ENGINES wheel;
            wheel = LogitechGSDK.LogiGetStateCSharp(0);

            for (int i = 0; i < 128; i++)

            {
                if (wheel.rgbButtons[i] == 128)

                {

                    switch (i)

                    {

                    case 0:

                        Debug.Log("KeyCode.Joystick1Button0  方向盤 X 鍵" + i);

                        break;

                    case 1:

                        Debug.Log("KeyCode.Joystick1Button1  方向盤 □ 鍵" + i);

                        break;

                    case 2:

                        Debug.Log("KeyCode.Joystick1Button2  方向盤 ○ 鍵" + i);

                        break;

                    case 3:

                        Debug.Log("KeyCode.Joystick1Button3  方向盤 △ 鍵" + i);

                        break;

                    case 4:

                        Debug.Log("KeyCode.Joystick1Button4  方向盤 右撥片 鍵" + i);

                        break;

                    case 5:

                        Debug.Log("KeyCode.Joystick1Button5  方向盤 左撥片 鍵" + i);

                        break;

                    case 6:

                        Debug.Log("KeyCode.Joystick1Button6  方向盤 R2 鍵" + i);

                        break;

                    case 7:

                        Debug.Log("KeyCode.Joystick1Button7  方向盤 L2 鍵" + i);

                        break;

                    case 8:

                        Debug.Log("KeyCode.Joystick1Button8  方向盤 SHARE 鍵" + i);

                        break;

                    case 9:

                        Debug.Log("KeyCode.Joystick1Button9  方向盤 OPTION 鍵" + i);

                        break;

                    case 10:

                        Debug.Log("KeyCode.Joystick1Butto10  方向盤 R3 鍵" + i);

                        break;

                    case 11:

                        Debug.Log("KeyCode.Joystick1Button11  方向盤 L3 鍵" + i);

                        break;

                    case 12:

                        Debug.Log("KeyCode.Joystick1Button12  擋位 1 擋" + i);

                        break;

                    case 13:

                        Debug.Log("KeyCode.Joystick1Button13  擋位 2 擋" + i);

                        break;

                    case 14:

                        Debug.Log("KeyCode.Joystick1Button14  擋位 3 擋" + i);

                        break;

                    case 15:

                        Debug.Log("KeyCode.Joystick1Button15  擋位 4 擋" + i);

                        break;

                    case 16:

                        Debug.Log("KeyCode.Joystick1Button16  擋位 5 擋" + i);

                        break;

                    case 17:

                        Debug.Log("KeyCode.Joystick1Button17  擋位 6 擋" + i);

                        break;

                    case 18:

                        Debug.Log("KeyCode.Joystick1Button18  擋位 R 擋(倒擋)" + i);

                        break;

                    case 19:

                        Debug.Log("KeyCode.Joystick1Button19  方向盤 + 鍵" + i);

                        break;

                    case 20:

                        Debug.Log("KeyCode.Joystick1Button20  方向盤 - 鍵" + i);

                        break;

                    case 21:

                        Debug.Log("KeyCode.Joystick1Button21  方向盤 紅色滾輪右滾 鍵" + i);

                        break;

                    case 22:

                        Debug.Log("KeyCode.Joystick1Button22  方向盤 紅色滾輪左滾 鍵" + i);

                        break;

                    case 23:

                        Debug.Log("KeyCode.Joystick1Button23  方向盤 回車 鍵" + i);

                        break;

                    case 24:

                        Debug.Log("KeyCode.Joystick1Button24  方向盤 特殊標志鍵 鍵" + i);

                        break;
                    }
                }
            }
        }
    }
}

附一張羅技方向盤的按鍵說明,logitech游戲軟件(點擊下載

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM