using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.InputSystem; public class RumbleManager : MonoBehaviour { private Gamepad pad1; private Gamepad pad2; private Coroutine stopRumbleAfterTimeCorutine; public void RumblePulse1(float lowFrequency, float highFrequency, float duration) { pad1 = Gamepad.all[0]; if (pad1 != null) { pad1.SetMotorSpeeds(lowFrequency, highFrequency); stopRumbleAfterTimeCorutine = StartCoroutine(stopRumble(duration, pad1)); } } public void RumblePulse2(float lowFrequency, float highFrequency, float duration) { pad2 = Gamepad.all[1]; if (pad2 != null) { pad2.SetMotorSpeeds(lowFrequency, highFrequency); stopRumbleAfterTimeCorutine = StartCoroutine(stopRumble(duration, pad2)); } } private IEnumerator stopRumble(float duration, Gamepad pad) { float elapsedTime = 0f; while (elapsedTime < duration) { elapsedTime += Time.deltaTime; yield return null; } pad.SetMotorSpeeds(0f, 0f); } }