public void Vibrate(int index, VibrationValue vibrationValue) { if (index >= 0 && index < VibrationDeviceCount) { Vibration.SendValue(VibrationDeviceHandles[index], vibrationValue); } }
/// <summary> /// 振動の実装部 /// </summary> /// <param name="_Index">コントローラーの番号</param> /// <param name="_LowPow">低周波の振動の強さ</param> /// <param name="_HighPow">高周波の振動の強さ</param> static void VibrationImpl(int _Index, float _LowPow, float _HighPow) { //未接続なら何もしない if (!SwitchManager.GetInstance().IsConnect(_Index)) { return; } //IDの取得 NpadId npadId = SwitchManager.GetInstance().GetNpadId(_Index); //スタイルの取得 NpadStyle npadStyle = Npad.GetStyleSet(npadId); //デバイスの数を取得(0か1のみ取得する) int deviceCount = Vibration.GetDeviceHandles( m_VibrationDeviceHandles, 1, npadId, npadStyle); //デバイスの数が1じゃない場合は何もしない if (deviceCount != 1) { return; } //パワーをセット m_VibrationValue.amplitudeLow = _LowPow; m_VibrationValue.amplitudeHigh = _HighPow; //デバイスの初期化 Vibration.InitializeDevice(m_VibrationDeviceHandles[0]); //振動の値をセット Vibration.SendValue(m_VibrationDeviceHandles[0], m_VibrationValue); }
/// <summary> /// 振動の実装部 /// </summary> /// <param name="index">コントローラーの番号</param> /// <param name="lowPow">低周波の振動の強さ</param> /// <param name="highPow">高周波の振動の強さ</param> static void VibrationImpl(int index, float lowPow, float highPow) { #if UNITY_SWITCH && !(UNITY_EDITOR) //未接続なら何もしない if (!SwitchManager.GetInstance().IsConnect(index)) { return; } //IDの取得 NpadId npadId = SwitchManager.GetInstance().GetNpadId(index); //スタイルの取得 NpadStyle npadStyle = Npad.GetStyleSet(npadId); //デバイスの数を取得(0か1のみ取得する) int deviceCount = Vibration.GetDeviceHandles( vibrationDeviceHandles, 1, npadId, npadStyle); //デバイスの数が1じゃない場合は何もしない if (deviceCount != 1) { return; } //パワーをセット vibrationValue.amplitudeLow = lowPow; vibrationValue.amplitudeHigh = highPow; //デバイスの初期化 Vibration.InitializeDevice(vibrationDeviceHandles[0]); //振動の値をセット Vibration.SendValue(vibrationDeviceHandles[0], vibrationValue); #endif }
private void GetVibrationDevice(nn.hid.NpadId id, nn.hid.NpadStyle style) { vibrationValue.Clear(); for (int i = 0; i < vibrationDeviceCount; i++) { Vibration.SendValue(vibrationDeviceHandles[i], vibrationValue); } vibrationDeviceCount = Vibration.GetDeviceHandles( vibrationDeviceHandles, vibrationDeviceCountMax, id, style); for (int i = 0; i < vibrationDeviceCount; i++) { Vibration.InitializeDevice(vibrationDeviceHandles[i]); Vibration.GetDeviceInfo(ref vibrationDeviceInfos[i], vibrationDeviceHandles[i]); } }
private void Update() { if (displayText.gameObject.activeInHierarchy) { displayText.text = rumblePresets[iterator].name; intensityText.text = (intensitySlider.value / 100f).ToString("F2"); } if (vibrationTimer > 0f) { if (UpdatePadState()) { vibrationValue.Clear(); VibrationFile.RetrieveValue(ref vibrationValue, sampleA, ref curFileContext); if ((sampleA % sampleSize) == 0) { sampleA++; } // 200 sample / sec sampleA += sampleIterate; if (sampleA >= curFileInfo.sampleLength) { sampleA = 0; } for (int i = 0; i < vibrationDeviceCount; i++) { outputValue.Clear(); outputValue = VibrationValue.Make(vibrationValue.amplitudeLow * overallIntensity * intensityOverallMultiplier, vibrationValue.frequencyLow * overallIntensity * intensityOverallMultiplier, vibrationValue.amplitudeHigh * overallIntensity * intensityOverallMultiplier, vibrationValue.frequencyHigh * overallIntensity * intensityOverallMultiplier); curIntensity = intensitySlider.value / 100f; if (displayDebugLogs) { Debug.Log(curIntensity); } /* * outputValue = VibrationValue.Make(vibrationValue.amplitudeLow * curIntensity, * vibrationValue.frequencyLow * curIntensity, * vibrationValue.amplitudeHigh * curIntensity, * vibrationValue.frequencyHigh * curIntensity); */ Vibration.SendValue(vibrationDeviceHandles[i], outputValue); } } vibrationTimer -= 1f / 60f; if (vibrationTimer <= 0f) { if (UpdatePadState()) { vibrationValue.Clear(); sampleA = 0; for (int i = 0; i < vibrationDeviceCount; i++) { outputValue.Clear(); outputValue = VibrationValue.Make(0f, 0f, 0f, 0f); Vibration.SendValue(vibrationDeviceHandles[i], outputValue); } } } } }