Skip to content

Releases: ShortSleeveStudio/UnityMetaHaptics

v0.0.12

Choose a tag to compare

@Sahasrara Sahasrara released this 28 Jul 20:21
Stop motors latching on pause, focus loss, and disconnect (v0.0.12)

Three ways a clip could leave the motors running. All of them are silent on
Sony pads, which decay when they stop receiving output reports, and stick on
XInput, which latches until told otherwise.

Pause: FixedUpdate does not run while Time.timeScale is 0, so a clip pumped
from it parked mid-playback for the whole pause with the motors held at the
last value sent — the stop never got a chance to go out. Fall back to the
Update pump whenever the fixed clock is stopped, keeping fixed-step
alignment whenever it is running. An unscaled clip now plays through the
pause as asked; a timeScale-scaled one keeps ticking at zero intensity so
its silence reaches the hardware. Relatedly, advance the send throttle on
unscaled time: it is a wall-clock cadence, and advancing it on clip time
meant a slowed or paused clip stopped sending anything at all.

Focus loss: stop everything on OnApplicationFocus(false)/OnApplicationPause,
rather than leaving a backgrounded app's controller buzzing.

Disconnect: subscribe to InputSystem.onDeviceChange and drop playback for
removed devices without writing to dead hardware. A reconnect arrives as a
new Gamepad instance, so a stop still keyed to the old one could never land.
Entries are now removed rather than parked on EmptyResponse, so devices that
come and go no longer accumulate stale Gamepad references.

Also adds an opt-in minMotorSpeed floor (default 0, no behaviour change),
remapping non-zero speeds onto [minMotorSpeed, 1] before time scaling. Xbox
ERM motors need roughly 0.1-0.2 before they perceptibly spin and the
crossfade splits amplitude across both, so clips authored against a phone or
DualSense actuator can land under the threshold and feel like nothing fired.

v0.0.11

Choose a tag to compare

@Sahasrara Sahasrara released this 01 Jul 21:27

More aggressive attempts to stop controller vibrations on stop.

v0.0.10

Choose a tag to compare

@Sahasrara Sahasrara released this 13 Feb 00:27
Bug fixes

v0.0.9

Choose a tag to compare

@Sahasrara Sahasrara released this 03 Jun 22:57

Correcting editor asmdef build checkboxes.

v0.0.8

Choose a tag to compare

@Sahasrara Sahasrara released this 14 Mar 23:51

Removing dependency on native libraries.

v0.0.7

Choose a tag to compare

@Sahasrara Sahasrara released this 24 Feb 21:05

Walking back changes to request/response for now. I need to use them more to determine the best way to handle multiple platforms.

v0.0.6

Choose a tag to compare

@Sahasrara Sahasrara released this 24 Feb 20:55

Fixing up the response object name again. Whoops.

v0.0.5

Choose a tag to compare

@Sahasrara Sahasrara released this 24 Feb 20:52

Fixing the name of the response object.

v0.0.4

Choose a tag to compare

@Sahasrara Sahasrara released this 24 Feb 20:44

Bumping version number.

v0.0.3

Choose a tag to compare

@Sahasrara Sahasrara released this 24 Feb 20:42

Organizing assemblies better, preparing for more than just gamepad.