Esempio n. 1
0
 private void ControllerStance(int i)
 {
     SixAxisSensor.GetState(ref state, handle[i]);
     state.GetQuaternion(ref npadQuaternion);
     quaternion.Set(npadQuaternion.x, npadQuaternion.z, npadQuaternion.y, -npadQuaternion.w);
     JoyConStance[i] = quaternion.eulerAngles;
 }
Esempio n. 2
0
 void UpdateSixAxisSensors()
 {
     for (var i = 0; i < SixAxisSensorCount; i++)
     {
         SixAxisSensor.GetState(ref SixAxisSensorStates[i], SixAxisSensorHandles[i]);
     }
 }
Esempio n. 3
0
    private void Init()
    {
        sixAxisHandleCount = SixAxisSensor.GetHandles(sixAxisHandle, 2, NpadId.No1, NpadStyle.JoyRight);

        //Start sensor
        for (int i = 0; i < sixAxisHandleCount; i++)
        {
            SixAxisSensor.Start(sixAxisHandle[i]);
        }
    }
Esempio n. 4
0
    private void GetSixAxisSensor(NpadId id, NpadStyle style)
    {
        for (int i = 0; i < handleCount; i++)
        {
            SixAxisSensor.Stop(handle[i]);
        }

        handleCount = SixAxisSensor.GetHandles(handle, 2, id, style);

        for (int i = 0; i < handleCount; i++)
        {
            SixAxisSensor.Start(handle[i]);
        }
    }
Esempio n. 5
0
 void Update()
 {
     NowStyle();
     if (UpdatePadState())
     {
         for (int i = 0; i < handleCount; i++)
         {
             SixAxisSensor.GetState(ref state, handle[i]);
             JoyConShake(i);
             SetAnalogStick(i);
             ControllerStance(i);
             joyConAcceleration[i] = Float3toVector3(state.acceleration);
         }
     }
 }
Esempio n. 6
0
    //振ったかどうかの判定
    private void JoyConShake(int i)
    {
        SixAxisSensor.GetState(ref state, handle[i]);

        float x = Mathf.Abs(state.acceleration.x);
        float y = Mathf.Abs(state.acceleration.y);
        float z = Mathf.Abs(state.acceleration.z);

        if (x >= 5 || y >= 5 || z >= 5)
        {
            ShakeCheck[i] = true;
        }
        else
        {
            ShakeCheck[i] = false;
        }
    }
    /// <summary>
    /// 加速度の更新
    /// </summary>
    static public void AccelerationUpdate(int index, NpadId npadId)
    {
        //未接続
        if (!SwitchManager.GetInstance().IsConnect(index))
        {
            return;
        }

        //スタイルの取得
        npadStyle = Npad.GetStyleSet(npadId);
        SixAxisSensor.GetHandles(handles, 1, npadId, npadStyle);
        //ジャイロスタート
        SixAxisSensor.Start(handles[0]);
        SixAxisSensor.GetState(ref sixAxisSensorState, handles[0]);
        var switchAcceleration = sixAxisSensorState.acceleration;

        Acceleration[index].Set(switchAcceleration.x, switchAcceleration.y, switchAcceleration.z);
    }
Esempio n. 8
0
    private void Update()
    {
        nn.util.Float4 float4TempSensorData = new nn.util.Float4();

        for (int i = 0; i < sixAxisHandleCount; i++)
        {
            //Crash in UNITY_EDITOR
            SixAxisSensor.GetState(ref sixAxisStates[i], sixAxisHandle[i]);
            sixAxisStates[i].GetQuaternion(ref float4TempSensorData);

            //Convert to an Unity Quaternion
            Quaternion rawSensorRotation = new Quaternion(
                float4TempSensorData.x,
                float4TempSensorData.z,
                float4TempSensorData.y,
                float4TempSensorData.w * -1f);

            Debug.Log(rawSensorRotation);
        }
    }
Esempio n. 9
0
        void SetupSixAxisSensors()
        {
            for (var i = 0; i < SixAxisSensorCount; i++)
            {
                SixAxisSensor.Stop(SixAxisSensorHandles[i]);
            }

            if (EnableSixAxisSensors && HasNPadStyle)
            {
                SixAxisSensorCount = SixAxisSensor.GetHandles(SixAxisSensorHandles, 2, NPadId, NPadStyle);

                for (var i = 0; i < SixAxisSensorCount; i++)
                {
                    SixAxisSensor.Start(SixAxisSensorHandles[i]);
                }
            }
            else
            {
                SixAxisSensorCount = 0;
            }
        }
Esempio n. 10
0
    /// <summary>
    /// ジャイロの取得
    /// </summary>
    /// <param name="_Index">コントローラーの番号</param>
    /// <returns>ジャイロの回転(使用するx軸のみ)</returns>
    static public float GetGyroX(int _Index)
    {
        //未接続なら0.0f
        if (!SwitchManager.GetInstance().IsConnect(_Index))
        {
            return(0.0f);
        }
        //キーがない場合は追加しておく
        if (!m_BaseGyro.ContainsKey(_Index))
        {
            m_BaseGyro.Add(_Index, 0.0f);
        }
        //IDの取得
        NpadId npadId = SwitchManager.GetInstance().GetNpadId(_Index);
        //スタイルの取得
        NpadStyle npadStyle = Npad.GetStyleSet(npadId);
        //ハンドラを取得
        int handleCount = SixAxisSensor.GetHandles(m_GyroHandles, 1, npadId, npadStyle);

        //ハンドラの数が1じゃない場合は0.0f
        if (handleCount != 1)
        {
            return(0.0f);
        }
        //ジャイロスタート
        SixAxisSensor.Start(m_GyroHandles[0]);
        //状態の取得
        SixAxisSensor.GetState(ref m_GyroState, m_GyroHandles[0]);
        //右か左で返す値を変換する
        if (npadStyle == NpadStyle.JoyRight)
        {
            return(m_GyroState.angle.x % 1 * 360 - 90 - m_BaseGyro[_Index]);
        }
        else
        {
            return(m_GyroState.angle.x % 1 * -360 + 90 - m_BaseGyro[_Index]);
        }
    }
Esempio n. 11
0
    /// <summary>
    /// ジャイロの取得の実装部
    /// </summary>
    /// <param name="index">コントローラーの番号</param>
    /// <returns>ジャイロの回転</returns>
    static Quaternion GetGyroImpl(int index)
    {
#if UNITY_SWITCH && !(UNITY_EDITOR)
        //IDの取得
        NpadId npadId = SwitchManager.GetInstance().GetNpadId(index);
        //スタイルの取得
        NpadStyle npadStyle = Npad.GetStyleSet(npadId);
        //ハンドラを取得
        int handleCount = SixAxisSensor.GetHandles(gyroHandles, 1, npadId, npadStyle);
        //ハンドラの数が1じゃない場合はQuaternion.identity
        if (handleCount != 1)
        {
            return(Quaternion.identity);
        }
        //ジャイロスタート
        SixAxisSensor.Start(gyroHandles[0]);
        //状態の取得
        SixAxisSensor.GetState(ref gyroState, gyroHandles[0]);
        gyroState.GetQuaternion(ref refQuaternion);
        quat.Set(refQuaternion.x, refQuaternion.z, refQuaternion.y, -refQuaternion.w);
#endif
        return(quat);
    }
Esempio n. 12
0
    void Update()
    {
        stringBuilder.Length = 0;
        NowStyle();
        if (UpdatePadState())
        {
            for (int i = 0; i < handleCount; i++)
            {
                SixAxisSensor.GetState(ref state, handle[i]);

                JoyConShake(i);
                SetAnalogStick(i);
                ControllerStance(i);
                JoyConAcceleration[i] = Float3toVector3(state.acceleration);
                stringBuilder.AppendFormat(
                    "{0}[{1}]:\nShakeCheck({2})\nAnalogStick({3})\nVector3\n(X:{4})\n(Y:{5})\n(Z:{6})\nJoyConAcceleration\n(X:{7})\n(Y:{8})\n(Z:{9})",
                    npadStyle.ToString(), i + 1, ShakeCheck[i], AnalogStick[i],
                    JoyConStance[i].x, JoyConStance[i].y, JoyConStance[i].z,
                    JoyConAcceleration[i].x, JoyConAcceleration[i].y, JoyConAcceleration[i].z);

                textComponent.text = stringBuilder.ToString();
            }
        }
    }