ゲームパットの動作の検証用に新しく購入。

Android や、Windows、Mac 対応なので、Android アプリのジョイステック機能を PC 上のジョイステックでデバックをするのが目的

かなり接続に苦戦!

Macの接続は、A + Start ボタンを押して、LEDが点滅したらSELECTボタンを3秒

認識は、DUALSHOCK4 Wireless Controller ?

はじめに説明書を適当に読んで接続したら Pro Controller と認識してジョイスティック機能が使えなかった。

何度か使ってると認識は、8BitDo Zero 2 gamepad になりました。

Android の接続は、B+Start ボタンを押して、LEDが点滅したらSELECTボタンを3秒

認識は、8BitDo Zero 2 gamepad

取り敢えず無事認識して使えました。

これで Android アプリのジョイステックのデバックが捗りそう。

原因としては、Active(true) と Active(false) を繰り返すとVirtual Joystick が使えなくなる

There is already a virtual axis named Horizontal1 registered.
UnityEngine.Debug:LogError(Object)
UnityStandardAssets.CrossPlatformInput.VirtualInput:RegisterVirtualAxis(VirtualAxis) (at Assets/Standard Assets/CrossPlatformInput/Scripts/VirtualInput.cs:39)
UnityStandardAssets.CrossPlatformInput.CrossPlatformInputManager:RegisterVirtualAxis(VirtualAxis) (at Assets/Standard Assets/CrossPlatformInput/Scripts/CrossPlatformInputManager.cs:59)
UnityStandardAssets.CrossPlatformInput.Joystick:CreateVirtualAxes() (at Assets/Standard Assets/CrossPlatformInput/Scripts/Joystick.cs:64)
UnityStandardAssets.CrossPlatformInput.Joystick:OnEnable() (at Assets/Standard Assets/CrossPlatformInput/Scripts/Joystick.cs:30)
UnityEngine.GameObject:SetActive(Boolean)
MainControl:onClickVr() (at Assets/_main/MainControl.cs:353)
UnityEngine.EventSystems.EventSystem:Update() (at /Applications/Unity/Hub/Editor/2019.4.20f1/Unity.app/Contents/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/EventSystem.cs:377)

とりあえずの対処

        public void RegisterVirtualAxis(CrossPlatformInputManager.VirtualAxis axis)
        {
            // Modified By M.Hotaka
            // check if we already have an axis with that name and log and error if we do
            if (m_VirtualAxes.ContainsKey(axis.name))
            {
                Debug.Log("There is already a virtual axis named " + axis.name + " registered.");
                UnRegisterVirtualAxis(axis.name);
            }
            // else
            {
                // add any new axes
                m_VirtualAxes.Add(axis.name, axis);

                // if we dont want to match with the input manager setting then revert to always using virtual
                if (!axis.matchWithInputManager)
                {
                    m_AlwaysUseVirtual.Add(axis.name);
                }
            }
        }

300円位のジョイスティック mocute-032 を購入したが、実際のボタンの値が分からず確認の為のスクリプトを作成
おそらく、汎用的に確認できます。

この値段で充電式は、驚き!

モードはゲームモードでAndroid 

void Update()
    {
        UpdateGetKey();
        // UpdateKey();
    }    

void UpdateGetKey()
    {
        float horizontal = Input.GetAxis("Horizontal");     // joystick horizontal
        float vertical = Input.GetAxis("Vertical");      // joystick vertical

        Debug.Log("x y:" + horizontal + "," + vertical);
        foreach (KeyCode value in Enum.GetValues(typeof(KeyCode)))
        {
            if (Input.GetKey(value))
            {
                String name = Enum.GetName(typeof(KeyCode), value);
                Debug.Log("Input.GetKey:" + name);
            }
            if (Input.GetKeyDown(value))
            {
                String name = Enum.GetName(typeof(KeyCode), value);
                Debug.Log("Input.GetKeyDown:" + name);
            }
            if (Input.GetKeyUp(value))
            {
                String name = Enum.GetName(typeof(KeyCode), value);
                Debug.Log("Input.GetKeyUp:" + name);
            }
        }
    }
adb logcat | grep Joy

02-24 13:42:55.463  1346  1358 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 
02-24 13:45:54.033  2993  3016 I Unity   : Input.GetKey:JoystickButton2 
02-24 13:45:54.033  2993  3016 I Unity   : Input.GetKeyDown:JoystickButton2 
02-24 13:45:54.033  2993  3016 I Unity   : Input.GetKey:Joystick1Button2 
02-24 13:45:54.033  2993  3016 I Unity   : Input.GetKeyDown:Joystick1Button2 
02-24 13:45:54.051  2993  3016 I Unity   : Input.GetKeyUp:JoystickButton2 
02-24 13:45:54.051  2993  3016 I Unity   : Input.GetKeyUp:Joystick1Button2 

02-24 13:45:55.333  2993  3016 I Unity   : Input.GetKey:JoystickButton0 
02-24 13:45:55.333  2993  3016 I Unity   : Input.GetKey:Joystick1Button0 
02-24 13:45:55.352  2993  3016 I Unity   : Input.GetKey:JoystickButton0 
02-24 13:45:55.352  2993  3016 I Unity   : Input.GetKey:Joystick1Button0 
02-24 13:45:55.367  2993  3016 I Unity   : Input.GetKey:JoystickButton0 
02-24 13:45:55.367  2993  3016 I Unity   : Input.GetKey:Joystick1Button0 
02-24 13:45:55.383  2993  3016 I Unity   : Input.GetKey:JoystickButton0 
02-24 13:45:55.383  2993  3016 I Unity   : Input.GetKey:Joystick1Button0 
02-24 13:45:55.402  2993  3016 I Unity   : Input.GetKeyUp:JoystickButton0 

 

© 2024 Falco Tech Blog Suffusion theme by Sayontan Sinha