Exemplo n.º 1
0
 public void Vibrate(int index, VibrationValue vibrationValue)
 {
     if (index >= 0 && index < VibrationDeviceCount)
     {
         Vibration.SendValue(VibrationDeviceHandles[index], vibrationValue);
     }
 }
Exemplo n.º 2
0
        void Vibrate(int index, int frequencyLow, float amplitudeLow, int frequencyHigh, float amplitudeHigh)
        {
            var vibrationValue = new VibrationValue
            {
                amplitudeLow  = amplitudeLow,
                frequencyLow  = frequencyLow,
                amplitudeHigh = amplitudeHigh,
                frequencyHigh = frequencyHigh
            };

            Vibrate(index, vibrationValue);
        }
Exemplo n.º 3
0
        void Vibrate(int index, float amplitudeLow, float amplitudeHigh)
        {
            var vibrationValue = new VibrationValue
            {
                amplitudeLow  = amplitudeLow,
                frequencyLow  = VibrationValue.FrequencyLowDefault,
                amplitudeHigh = amplitudeHigh,
                frequencyHigh = VibrationValue.FrequencyHighDefault
            };

            Vibrate(index, vibrationValue);
        }
    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);
                    }
                }
            }
        }
    }