diff --git a/build.py b/build.py index 26bf81da..05ca66db 100755 --- a/build.py +++ b/build.py @@ -248,7 +248,7 @@ def Main(): valid_plugin_found = True break else: - utility.WarningMessage(f"Ignoring unknown plug-in '{plugin_id}'. Valid options are {PluginID.ACCESSIBILITY}, {PluginID.CORE}, {PluginID.CORE_HAPTICS}, {PluginID.GAME_CONTROLLER}, {PluginID.GAME_KIT}, {PluginID.PHASE}, or {PluginID.ALL} (Default)") + CTX.printer.WarningMessage(f"Ignoring unknown plug-in '{plugin_id}'. Valid options are {PluginID.ACCESSIBILITY}, {PluginID.CORE}, {PluginID.CORE_HAPTICS}, {PluginID.GAME_CONTROLLER}, {PluginID.GAME_KIT}, {PluginID.PHASE}, or {PluginID.ALL} (Default)") # ------------------------------------------------------------------------- diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs.meta b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs.meta new file mode 100644 index 00000000..d4f10cca --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d5546e885d883457883f4a1634cc8687 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Boing.ahap b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Boing.ahap new file mode 100644 index 00000000..806d24bd --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Boing.ahap @@ -0,0 +1,62 @@ +{ + "Version": 1.0, + "Metadata": + { + "Project" : "Haptic Sampler", + "Created" : "5 June 2019", + "Description" : "A continuous event tweaked by sloped parameter curves, emphasized by a precisely placed transient event, creating the feeling of a spring or rubberband." + }, + "Pattern": + [ + { + "Event": + { + "Time": 0.0, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.8 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.4 } + ] + } + }, + { + "Event": + { + "Time": 0.015, + "EventType": "HapticContinuous", + "EventDuration": 0.25, + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.8 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.4 } + ] + } + }, + { + "ParameterCurve": + { + "ParameterID": "HapticIntensityControl", + "Time": 0.015, + "ParameterCurveControlPoints": + [ + { "Time": 0, "ParameterValue": 1 }, + { "Time": 0.1, "ParameterValue": 0.5 }, + { "Time": 0.25, "ParameterValue": 0.0 } + ] + } + }, + { + "ParameterCurve": + { + "ParameterID": "HapticSharpnessControl", + "Time": 0.015, + "ParameterCurveControlPoints": + [ + { "Time": 0, "ParameterValue": 0.0 }, + { "Time": 0.25, "ParameterValue": -0.3 } + ] + } + } + ] +} \ No newline at end of file diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Boing.ahap.meta b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Boing.ahap.meta new file mode 100644 index 00000000..72440bd3 --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Boing.ahap.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 70d473c8627044cb0888ed37972589f7 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: f7ba2c438ace64ef4989c6541cb00be6, type: 3} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Drums.ahap b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Drums.ahap new file mode 100755 index 00000000..bfec19a7 --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Drums.ahap @@ -0,0 +1,129 @@ +{ + "Version": 1, + "Metadata": + { + "Project" : "Haptic Sampler", + "Created" : "5 June 2019", + "Description" : "A sequence of haptic events paired with a custom audio file." + }, + "Pattern": + [ + {"Event": + {"Time":0,"EventType":"HapticTransient", + "EventParameters": + [ + {"ParameterID":"HapticSharpness","ParameterValue":0} + ] + } + }, + {"Event": + {"Time":0.391,"EventType":"HapticTransient", + "EventParameters": + [ + {"ParameterID":"HapticSharpness","ParameterValue":0}, + {"ParameterID":"HapticIntensity","ParameterValue":1} + ] + } + }, + {"Event": + {"Time":0.8,"EventType":"HapticTransient", + "EventParameters": + [ + {"ParameterID":"HapticSharpness","ParameterValue":0.3}, + {"ParameterID":"HapticIntensity","ParameterValue":1} + ] + } + }, + {"Event": + {"Time":1.2,"EventType":"HapticTransient", + "EventParameters": + [ + {"ParameterID":"HapticSharpness","ParameterValue":0}, + {"ParameterID":"HapticIntensity","ParameterValue":1} + ] + } + }, + {"Event": + {"Time":1.41,"EventType":"HapticTransient", + "EventParameters": + [ + {"ParameterID":"HapticSharpness","ParameterValue":0}, + {"ParameterID":"HapticIntensity","ParameterValue":1} + ] + } + }, + {"Event": + {"Time":1.6,"EventType":"HapticTransient", + "EventParameters": + [ + {"ParameterID":"HapticSharpness","ParameterValue":0} + ] + } + }, + {"Event": + {"Time":0,"EventType":"HapticContinuous","EventDuration":0.2, + "EventParameters": + [ + {"ParameterID":"HapticIntensity","ParameterValue":0.6} + ] + } + }, + {"Event": + {"Time":0.2,"EventType":"HapticContinuous","EventDuration":0.2, + "EventParameters": + [ + {"ParameterID":"HapticIntensity","ParameterValue":0.3} + ] + } + }, + {"Event": + {"Time":0.4,"EventType":"HapticContinuous","EventDuration":0.15, + "EventParameters": + [ + {"ParameterID":"HapticIntensity","ParameterValue":0.25}, + {"ParameterID":"HapticSharpness","ParameterValue":1.0} + ] + } + }, + {"Event": + {"Time":0.8,"EventType":"HapticContinuous","EventDuration":0.15, + "EventParameters": + [ + {"ParameterID":"HapticIntensity","ParameterValue":0.25}, + {"ParameterID":"HapticSharpness","ParameterValue":1.0} + ] + } + }, + {"Event": + {"Time":1.2,"EventType":"HapticContinuous","EventDuration":0.15, + "EventParameters": + [ + {"ParameterID":"HapticIntensity","ParameterValue":0.25}, + {"ParameterID":"HapticSharpness","ParameterValue":1.0} + ] + } + }, + {"Event": + {"Time":1.6,"EventType":"HapticContinuous","EventDuration":1, + "EventParameters": + [ + {"ParameterID":"HapticIntensity","ParameterValue":0.45}, + {"ParameterID":"HapticSharpness","ParameterValue":0.9}, + {"ParameterID":"DecayTime","ParameterValue":1}, + {"ParameterID":"Sustained","ParameterValue":0} + ] + } + }, + {"Event": + { + "Time":0, + "EventType":"AudioCustom", + "EventWaveformPath":"AHAP/Drums.wav", + "EventParameters": + [ + {"ParameterID":"AudioVolume","ParameterValue":0.75} + ] + } + } + ] +} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Drums.ahap.meta b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Drums.ahap.meta new file mode 100644 index 00000000..dcd3fcd4 --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Drums.ahap.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: e2e0e937b4c1c4e84843acd3c2732183 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: f7ba2c438ace64ef4989c6541cb00be6, type: 3} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Drums.wav b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Drums.wav new file mode 100755 index 00000000..0c82f2af Binary files /dev/null and b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Drums.wav differ diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Drums.wav.meta b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Drums.wav.meta new file mode 100644 index 00000000..b07192d0 --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Drums.wav.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: cac4d474cf07345e5a85e4b9da8e194b +AudioImporter: + externalObjects: {} + serializedVersion: 7 + defaultSettings: + serializedVersion: 2 + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + preloadAudioData: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Gravel.ahap b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Gravel.ahap new file mode 100644 index 00000000..38dfbe63 --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Gravel.ahap @@ -0,0 +1,2566 @@ +{ + "Version": 1.0, + "Metadata": + { + "Project" : "Haptic Sampler", + "Created" : "5 June 2019", + "Description" : "A sequence of tightly spaced transient events and parameter variations to create a gravel-like texture." + }, + "Pattern": + [ + { + "ParameterCurve": { + "ParameterID": "HapticIntensityControl", + "Time": 0.0, + "ParameterCurveControlPoints": + [ + { + "Time": 0, + "ParameterValue": 0.3 + }, + { + "Time": 1.0, + "ParameterValue": 0.6 + }, + { + "Time": 3.0, + "ParameterValue": 0.0 + } + ] + } + }, + { + "Event": { + "Time": 0.04, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.05, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.07, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.09, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.11, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.14, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.16, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.17, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.2, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.21, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.24, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.25, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.28, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.29, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.31, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.33, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.35, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.38, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.39, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.42, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.43, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.46, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.48, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.5, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.52, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.53, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.56, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.57, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.6, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.62, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.64, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.65, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.67, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.69, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.72, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.74, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.76, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.78, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.8, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.81, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.84, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.85, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.88, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.89, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 0.92, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.94, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.96, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 0.98, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.0, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.01, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.04, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.06, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.07, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.09, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.11, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.14, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.15, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.18, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.19, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.21, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.24, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.26, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.27, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.3, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.31, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.34, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.35, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.38, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.4, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.41, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.43, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.46, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.48, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.49, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.51, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.54, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.56, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.57, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.59, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.61, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.64, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.66, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.68, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.69, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.72, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.73, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.76, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.77, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.79, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.81, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.84, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.85, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.87, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.89, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.91, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.94, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 1.95, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 1.97, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.0, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.02, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.03, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.05, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.08, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.09, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.11, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.13, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.15, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.18, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.19, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.21, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.23, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.25, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.28, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.29, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.32, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.33, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.36, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.38, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.4, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.42, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.43, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.46, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.48, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.5, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.51, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.54, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.55, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.58, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.59, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.61, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.63, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.65, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.67, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.7, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.72, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.74, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.75, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.77, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.8, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.82, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.83, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.85, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.88, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.89, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.91, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.94, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 2.95, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 1.0 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.5 + } + ] + } + }, + { + "Event": { + "Time": 2.98, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + }, + { + "Event": { + "Time": 3.0, + "EventType": "HapticTransient", + "EventParameters": + [ + { + "ParameterID": "HapticIntensity", + "ParameterValue": 0.7 + }, + { + "ParameterID": "HapticSharpness", + "ParameterValue": 0.3 + } + ] + } + } + ] +} \ No newline at end of file diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Gravel.ahap.meta b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Gravel.ahap.meta new file mode 100644 index 00000000..8ee6f794 --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Gravel.ahap.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: a5ddbb2b7c8804048a64bdee4570711d +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: f7ba2c438ace64ef4989c6541cb00be6, type: 3} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Heartbeats.ahap b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Heartbeats.ahap new file mode 100644 index 00000000..447914cf --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Heartbeats.ahap @@ -0,0 +1,156 @@ +{ + "Version": 1.0, + "Metadata": + { + "Project" : "Haptic Sampler", + "Created" : "5 June 2019", + "Description" : "Three organic heartbeats over three seconds, made using precisely spaced transient events at varying parameters." + }, + "Pattern": + [ + { + "Event": + { + "Time": 0.0, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.8 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.2 } + ] + } + }, + { + "Event": + { + "Time": 0.013, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.3 } + ] + } + }, + { + "Event": + { + "Time": 0.220, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.8 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.255, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.7 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.0 } + ] + } + }, + { + "Event": + { + "Time": 1.0, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.8 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.2 } + ] + } + }, + { + "Event": + { + "Time": 1.013, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.3 } + ] + } + }, + { + "Event": + { + "Time": 1.220, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.8 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 1.255, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.7 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.0 } + ] + } + }, + { + "Event": + { + "Time": 2.0, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.8 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.2 } + ] + } + }, + { + "Event": + { + "Time": 2.013, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.3 } + ] + } + }, + { + "Event": + { + "Time": 2.220, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.8 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 2.255, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.7 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.0 } + ] + } + } + ] +} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Heartbeats.ahap.meta b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Heartbeats.ahap.meta new file mode 100644 index 00000000..0e0aae9d --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Heartbeats.ahap.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: f6d3a5dbdfac34bce837803d7dc512e8 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: f7ba2c438ace64ef4989c6541cb00be6, type: 3} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Hit.ahap b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Hit.ahap new file mode 100644 index 00000000..01b28888 --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Hit.ahap @@ -0,0 +1,22 @@ +{ + "Version" : 1, + "Metadata" : { + "Project" : "Haptic Controllers", + "Created" : "9 June 2020", + "Description" : "A single hit at full intensity" + }, + "Pattern" : [ + { + "Event" : { + "EventType" : "HapticTransient", + "EventParameters" : [ + { + "ParameterID" : "HapticIntensity", + "ParameterValue" : 1.000000 + } + ], + "Time" : 0 + } + } + ] +} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Hit.ahap.meta b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Hit.ahap.meta new file mode 100644 index 00000000..865d95bd --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Hit.ahap.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: d51cbe31d8f9a4fd088a59a9995fd748 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: f7ba2c438ace64ef4989c6541cb00be6, type: 3} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Inflate.ahap b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Inflate.ahap new file mode 100644 index 00000000..d14b78ae --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Inflate.ahap @@ -0,0 +1,50 @@ +{ + "Version": 1.0, + "Metadata": + { + "Project" : "Haptic Sampler", + "Created" : "5 June 2019", + "Description" : "An effect that builds in sharpness and intensity." + }, + "Pattern": + [ + { + "Event": + { + "Time": 0.0, + "EventType": "HapticContinuous", + "EventDuration": 1.7, + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.5 } + ] + } + }, + { + "ParameterCurve": + { + "ParameterID": "HapticIntensityControl", + "Time": 0.0, + "ParameterCurveControlPoints": + [ + { "Time": 0, "ParameterValue": 0.0 }, + { "Time": 1.1, "ParameterValue": 0.5 }, + { "Time": 1.7, "ParameterValue": 0.0 } + ] + } + }, + { + "ParameterCurve": + { + "ParameterID": "HapticSharpnessControl", + "Time": 0.0, + "ParameterCurveControlPoints": + [ + { "Time": 0, "ParameterValue": -0.8 }, + { "Time": 1.7, "ParameterValue": 0.8 } + ] + } + } + ] +} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Inflate.ahap.meta b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Inflate.ahap.meta new file mode 100644 index 00000000..31b9309b --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Inflate.ahap.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: deeedc22b3c8c44ffb54cdc429473b54 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: f7ba2c438ace64ef4989c6541cb00be6, type: 3} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Oscillate.ahap b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Oscillate.ahap new file mode 100644 index 00000000..03bc8828 --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Oscillate.ahap @@ -0,0 +1,51 @@ +{ + "Version": 1.0, + "Metadata": + { + "Project" : "Haptic Sampler", + "Created" : "5 June 2019", + "Description" : "A mixture of two continuous events, shifting the sharpness of one to create a smooth oscillating feel." + }, + "Pattern": + [ + { + "Event": + { + "Time": 0.0, + "EventType": "HapticContinuous", + "EventDuration": 3.0, + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.5 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.0 } + ] + } + }, + { + "Event": + { + "Time": 0.0, + "EventType": "HapticContinuous", + "EventDuration": 3.0, + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.5 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.075 } + ] + } + }, + { + "ParameterCurve": + { + "ParameterID": "HapticIntensityControl", + "Time": 0.0, + "ParameterCurveControlPoints": + [ + { "Time": 0, "ParameterValue": 1.0 }, + { "Time": 0.5, "ParameterValue": 1.0 }, + { "Time": 3.0, "ParameterValue": 0.0 } + ] + } + } + ] +} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Oscillate.ahap.meta b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Oscillate.ahap.meta new file mode 100644 index 00000000..41cb6d74 --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Oscillate.ahap.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: f5cb540bff29841039124b203b04d245 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: f7ba2c438ace64ef4989c6541cb00be6, type: 3} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Recharge.ahap b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Recharge.ahap new file mode 100644 index 00000000..084c792c --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Recharge.ahap @@ -0,0 +1,193 @@ +{ + "Version" : 1, + "Metadata" : { + "Project" : "Haptic Controllers", + "Created" : "9 June 2020", + "Description" : "Charge up sequence, with three cycle of incresing intensity curves" + }, + "Pattern" : [ + { + "Event" : { + "EventParameters" : [ + { + "ParameterID" : "HapticIntensity", + "ParameterValue" : 1.000000 + } + ], + "EventType" : "HapticContinuous", + "Time" : 0, + "EventDuration" : 2.4 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.0, + "ParameterID" : "HapticIntensityControl", + "Time" : 0.0001 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.03, + "ParameterID" : "HapticIntensityControl", + "Time" : 0.100 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.0915, + "ParameterID" : "HapticIntensityControl", + "Time" : 0.200 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.216, + "ParameterID" : "HapticIntensityControl", + "Time" : 0.300 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.3345, + "ParameterID" : "HapticIntensityControl", + "Time" : 0.400 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.5, + "ParameterID" : "HapticIntensityControl", + "Time" : 0.5 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.02025, + "ParameterID" : "HapticIntensityControl", + "Time" : 0.600 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.048, + "ParameterID" : "HapticIntensityControl", + "Time" : 0.700 + } + }, + + { + "Parameter" : { + "ParameterValue" : 0.09375, + "ParameterID" : "HapticIntensityControl", + "Time" : 0.800 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.162, + "ParameterID" : "HapticIntensityControl", + "Time" : 0.900 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.25725, + "ParameterID" : "HapticIntensityControl", + "Time" : 1.000 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.384, + "ParameterID" : "HapticIntensityControl", + "Time" : 1.100 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.54675, + "ParameterID" : "HapticIntensityControl", + "Time" : 1.200 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.75, + "ParameterID" : "HapticIntensityControl", + "Time" : 1.3 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.001, + "ParameterID" : "HapticIntensityControl", + "Time" : 1.400 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.008, + "ParameterID" : "HapticIntensityControl", + "Time" : 1.500 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.027, + "ParameterID" : "HapticIntensityControl", + "Time" : 1.600 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.064, + "ParameterID" : "HapticIntensityControl", + "Time" : 1.700 + } + }, + + { + "Parameter" : { + "ParameterValue" : 0.125, + "ParameterID" : "HapticIntensityControl", + "Time" : 1.800 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.216, + "ParameterID" : "HapticIntensityControl", + "Time" : 1.900 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.343, + "ParameterID" : "HapticIntensityControl", + "Time" : 2.000 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.512, + "ParameterID" : "HapticIntensityControl", + "Time" : 2.100 + } + }, + { + "Parameter" : { + "ParameterValue" : 0.729, + "ParameterID" : "HapticIntensityControl", + "Time" : 2.200 + } + }, + { + "Parameter" : { + "ParameterValue" : 1, + "ParameterID" : "HapticIntensityControl", + "Time" : 2.300 + } + }, + ] +} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Recharge.ahap.meta b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Recharge.ahap.meta new file mode 100644 index 00000000..3875f69c --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Recharge.ahap.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: a17ecfe1c6df54cdab44432210fc8b83 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: f7ba2c438ace64ef4989c6541cb00be6, type: 3} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Rumble.ahap b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Rumble.ahap new file mode 100644 index 00000000..3d8d8561 --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Rumble.ahap @@ -0,0 +1,494 @@ +{ + "Version": 1.0, + "Metadata": + { + "Project" : "Haptic Sampler", + "Created" : "5 June 2019", + "Description" : "A sequence of transient events with decreasing sharpness, to create a precise rumble, reminiscent of driving over uneven ground." + }, + "Pattern": + [ + { + "ParameterCurve": + { + "ParameterID": "HapticIntensityControl", + "Time": 0.0, + "ParameterCurveControlPoints": + [ + { "Time": 0.0, "ParameterValue": 0.3 }, + { "Time": 0.1, "ParameterValue": 1.0 }, + { "Time": 1.0, "ParameterValue": 1.0 }, + { "Time": 1.6, "ParameterValue": 0.0 } + ] + } + }, + { + "Event": + { + "Time": 0.0, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.04, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.08, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.12, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.16, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.2, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.24, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.28, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.32, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.36, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.40, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.44, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.48, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.52, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.56, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.6, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.64, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.68, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.72, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.76, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.8, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.84, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.88, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.92, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 0.96, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 1.0, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 1.04, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 1.08, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 1.12, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 1.16, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 1.2, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 1.24, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 1.28, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 1.32, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 1.36, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 1.40, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 1.44, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 1.48, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "Event": + { + "Time": 1.52, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + } + ] +} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Rumble.ahap.meta b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Rumble.ahap.meta new file mode 100644 index 00000000..ef57b759 --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Rumble.ahap.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 5b0ea53b828444fc78ed76bcc9eb137d +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: f7ba2c438ace64ef4989c6541cb00be6, type: 3} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Sparkle.ahap b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Sparkle.ahap new file mode 100644 index 00000000..a4987d4b --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Sparkle.ahap @@ -0,0 +1,304 @@ +{ + "Version": 1.0, + "Metadata": + { + "Project" : "Haptic Sampler", + "Created" : "5 June 2019", + "Description" : "A combination of transient and continuous events to create a pop with trailing sparkles." + }, + "Pattern": + [ + { + "Event": + { + "Time": 0.0, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.6 } + ] + } + }, + { + "Event": + { + "Time": 0.024, + "EventType": "HapticContinuous", + "EventDuration": 0.150, + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.6 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.1 } + ] + } + }, + { + "ParameterCurve": + { + "ParameterID": "HapticIntensityControl", + "Time": 0.024, + "ParameterCurveControlPoints": + [ + { "Time": 0, "ParameterValue": 1.0 }, + { "Time": 0.025, "ParameterValue": 0.45 }, + { "Time": 0.15, "ParameterValue": 0.0 } + ] + } + }, + { + "ParameterCurve": + { + "ParameterID": "HapticIntensityControl", + "Time": 0.174, + "ParameterCurveControlPoints": + [ + { "Time": 0, "ParameterValue": 0.75 }, + { "Time": 0.087, "ParameterValue": 0.40 }, + { "Time": 0.667, "ParameterValue": 0.40 }, + { "Time": 0.846, "ParameterValue": 0.2 } + ] + } + }, + { + "Event": + { + "Time": 0.174, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.4 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.5 } + ] + } + }, + { + "Event": + { + "Time": 0.188, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.6 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.5 } + ] + } + }, + { + "Event": + { + "Time": 0.203, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.7 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.8 } + ] + } + }, + { + "Event": + { + "Time": 0.231, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.8 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.5 } + ] + } + }, + { + "Event": + { + "Time": 0.261, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.8 } + ] + } + }, + { + "Event": + { + "Time": 0.278, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.8 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.9 } + ] + } + }, + { + "Event": + { + "Time": 0.318, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.8 } + ] + } + }, + { + "Event": + { + "Time": 0.336, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.8 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.9 } + ] + } + }, + { + "Event": + { + "Time": 0.368, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.6 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.8 } + ] + } + }, + { + "Event": + { + "Time": 0.425, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.8 } + ] + } + }, + { + "Event": + { + "Time": 0.473, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.6 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.8 } + ] + } + }, + { + "Event": + { + "Time": 0.517, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.8 } + ] + } + }, + { + "Event": + { + "Time": 0.531, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.8 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.8 } + ] + } + }, + { + "Event": + { + "Time": 0.573, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.6 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.8 } + ] + } + }, + { + "Event": + { + "Time": 0.595, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.8 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.8 } + ] + } + }, + { + "Event": + { + "Time": 0.647, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 1.0 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.8 } + ] + } + }, + { + "Event": + { + "Time": 0.678, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.8 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.8 } + ] + } + }, + { + "Event": + { + "Time": 0.751, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.8 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.8 } + ] + } + }, + { + "Event": + { + "Time": 0.841, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.8 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 0.8 } + ] + } + }, + { + "Event": + { + "Time": 1.020, + "EventType": "HapticTransient", + "EventParameters": + [ + { "ParameterID": "HapticIntensity", "ParameterValue": 0.8 }, + { "ParameterID": "HapticSharpness", "ParameterValue": 1.0 } + ] + } + } + ] +} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Sparkle.ahap.meta b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Sparkle.ahap.meta new file mode 100644 index 00000000..f7c22f98 --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Sparkle.ahap.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 48023ac763fe4438594771827aebc5ca +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: f7ba2c438ace64ef4989c6541cb00be6, type: 3} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Triple.ahap b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Triple.ahap new file mode 100644 index 00000000..d78efde7 --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Triple.ahap @@ -0,0 +1,46 @@ +{ + "Version" : 1, + "Metadata" : { + "Project" : "Haptic Controllers", + "Created" : "9 June 2020", + "Description" : "A triple hit pattern at full intensity" + }, + "Pattern" : [ + { + "Event" : { + "EventType" : "HapticTransient", + "EventParameters" : [ + { + "ParameterID" : "HapticIntensity", + "ParameterValue" : 1 + } + ], + "Time" : 0 + } + }, + { + "Event" : { + "EventType" : "HapticTransient", + "EventParameters" : [ + { + "ParameterID" : "HapticIntensity", + "ParameterValue" : 1 + } + ], + "Time" : 0.25 + } + }, + { + "Event" : { + "EventType" : "HapticTransient", + "EventParameters" : [ + { + "ParameterID" : "HapticIntensity", + "ParameterValue" : 1 + } + ], + "Time" : 0.5 + } + } + ] +} \ No newline at end of file diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Triple.ahap.meta b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Triple.ahap.meta new file mode 100644 index 00000000..e12754a4 --- /dev/null +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/AHAPs/Triple.ahap.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 5124bee3ee85040bd8f4223ec0ffb97a +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: f7ba2c438ace64ef4989c6541cb00be6, type: 3} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/SampleScene.unity b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/SampleScene.unity index e40a3dec..e4e7cfcb 100644 --- a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/SampleScene.unity +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/SampleScene.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.3731193, g: 0.38073996, b: 0.35872698, a: 1} + m_IndirectSpecularColor: {r: 0.3708708, g: 0.37838137, b: 0.35725543, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 11 + serializedVersion: 12 m_GIWorkflowMode: 1 m_GISettings: serializedVersion: 2 @@ -98,13 +98,13 @@ LightmapSettings: m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 0} - m_UseShadowmask: 1 + m_LightingSettings: {fileID: 4890085278179872738, guid: deaa7c598b8054644bc9b8fb0d7215bb, type: 2} --- !u!196 &4 NavMeshSettings: serializedVersion: 2 m_ObjectHideFlags: 0 m_BuildSettings: - serializedVersion: 2 + serializedVersion: 3 agentTypeID: 0 agentRadius: 0.5 agentHeight: 2 @@ -117,7 +117,9 @@ NavMeshSettings: cellSize: 0.16666667 manualTileSize: 0 tileSize: 256 - accuratePlacement: 0 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 debug: m_Flags: 0 m_NavMeshData: {fileID: 0} @@ -149,9 +151,9 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 257853039} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -173,6 +175,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -221,10 +224,10 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 402743870} m_Father: {fileID: 646263816} - m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -260,10 +263,10 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1056234804} m_Father: {fileID: 590065821} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -298,6 +301,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.392} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -344,12 +348,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 112621850} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &112621853 MonoBehaviour: @@ -365,6 +370,7 @@ MonoBehaviour: m_EditorClassIdentifier: titleText: {fileID: 1050024261} batteryText: {fileID: 1443175762} + motionText: {fileID: 1588089927} leftTrigger: {fileID: 1087783675} rightTrigger: {fileID: 1775966992} leftBumperImage: {fileID: 2091332731} @@ -385,6 +391,10 @@ MonoBehaviour: touchpadUI: {fileID: 1845824222} touchpadIndicator: {fileID: 1845824225} touchpadButtonImage: {fileID: 579564317} + _AHAP0: {fileID: 9027929339269108002, guid: a17ecfe1c6df54cdab44432210fc8b83, type: 3} + _AHAP1: {fileID: 9027929339269108002, guid: 5b0ea53b828444fc78ed76bcc9eb137d, type: 3} + _AHAP2: {fileID: 9027929339269108002, guid: 70d473c8627044cb0888ed37972589f7, type: 3} + _AHAP3: {fileID: 9027929339269108002, guid: f6d3a5dbdfac34bce837803d7dc512e8, type: 3} --- !u!1 &156486594 GameObject: m_ObjectHideFlags: 0 @@ -414,9 +424,9 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 984265905} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -438,6 +448,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -501,9 +512,9 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1845824223} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -525,6 +536,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 0, b: 0.9960785, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -576,9 +588,9 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 567642550} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -600,6 +612,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.039215688, g: 0.5176471, b: 0.99607843, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -661,10 +674,10 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 984265905} m_Father: {fileID: 646263816} - m_RootOrder: 12 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -699,9 +712,9 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1845824223} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -723,6 +736,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -771,11 +785,11 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 2091332728} - {fileID: 19947531} m_Father: {fileID: 646263816} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -808,10 +822,10 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1641707720} m_Father: {fileID: 646263816} - m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -845,10 +859,10 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 2047137829} m_Father: {fileID: 646263816} - m_RootOrder: 11 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -897,10 +911,10 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 954055927} m_Father: {fileID: 49551885} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -935,6 +949,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.392} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -986,9 +1001,9 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1572824402} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -1010,6 +1025,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.44313726, g: 0.44313726, b: 0.45490196, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1073,9 +1089,9 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1775966990} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -1097,6 +1113,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.44313726, g: 0.44313726, b: 0.45490196, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1148,10 +1165,10 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 225862413} m_Father: {fileID: 781354544} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -1186,6 +1203,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.392} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1237,9 +1255,9 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1845824223} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -1274,6 +1292,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.4431373, g: 0.4431373, b: 0.454902, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1322,10 +1341,10 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 863158461} m_Father: {fileID: 646263816} - m_RootOrder: 13 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -1358,10 +1377,10 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 56697475} m_Father: {fileID: 646263816} - m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -1396,9 +1415,9 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1445854302} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -1420,6 +1439,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 0, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1468,6 +1488,7 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1087783673} - {fileID: 1775966990} @@ -1485,8 +1506,8 @@ RectTransform: - {fileID: 589248257} - {fileID: 1443175761} - {fileID: 1845824223} + - {fileID: 1588089926} m_Father: {fileID: 2040700024} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -1521,9 +1542,9 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1999304983} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -1545,6 +1566,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1593,10 +1615,10 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 567642550} m_Father: {fileID: 646263816} - m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -1631,9 +1653,9 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1775966990} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -1655,6 +1677,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1706,10 +1729,10 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1516295743} m_Father: {fileID: 589248257} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -1744,6 +1767,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.392} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1795,9 +1819,9 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 402743870} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -1819,6 +1843,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 0.8392157, b: 0.05882353, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1894,9 +1919,17 @@ Camera: m_projectionMatrixMode: 1 m_GateFitMode: 2 m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 m_SensorSize: {x: 36, y: 24} m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 x: 0 @@ -1930,12 +1963,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 963194225} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &984265904 GameObject: @@ -1966,10 +2000,10 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 156486595} m_Father: {fileID: 232767620} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -2004,6 +2038,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.392} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2055,9 +2090,9 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2047137829} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -2079,6 +2114,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.7735849, g: 0.7735849, b: 0.7735849, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2143,9 +2179,9 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2040700024} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -2167,6 +2203,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.2509804, g: 0.6117647, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2235,9 +2272,9 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 56697475} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -2259,6 +2296,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 0.27058825, b: 0.22745098, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2322,9 +2360,9 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1087783673} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -2346,6 +2384,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.44313726, g: 0.44313726, b: 0.45490196, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2396,11 +2435,11 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1071946908} - {fileID: 1327714378} m_Father: {fileID: 646263816} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -2421,6 +2460,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 0 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -2498,9 +2538,9 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2040700024} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -2522,6 +2562,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 0 m_OnCullStateChanged: m_PersistentCalls: @@ -2554,7 +2595,7 @@ GameObject: m_Component: - component: {fileID: 1111070296} - component: {fileID: 1111070295} - - component: {fileID: 1111070294} + - component: {fileID: 1111070297} m_Layer: 0 m_Name: EventSystem m_TagString: Untagged @@ -2562,25 +2603,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1111070294 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1111070293} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 --- !u!114 &1111070295 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2603,13 +2625,44 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1111070293} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1111070297 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1111070293} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 --- !u!1 &1114396944 GameObject: m_ObjectHideFlags: 0 @@ -2638,9 +2691,9 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1845824223} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -2662,6 +2715,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0, g: 1, b: 0, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2712,9 +2766,9 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1087783673} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -2736,6 +2790,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2787,9 +2842,9 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1641707720} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -2811,6 +2866,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.84313726, b: 0.29411766, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2875,9 +2931,9 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 646263816} - m_RootOrder: 14 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -2912,6 +2968,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2966,11 +3023,11 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1666597840} - {fileID: 630551252} m_Father: {fileID: 646263816} - m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -3032,9 +3089,9 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 863158461} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -3056,6 +3113,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3117,17 +3175,110 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 501702489} - {fileID: 1617979922} m_Father: {fileID: 646263816} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} m_AnchoredPosition: {x: 391.24, y: 249} m_SizeDelta: {x: 300, y: 50} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1588089925 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1588089926} + - component: {fileID: 1588089929} + - component: {fileID: 1588089928} + - component: {fileID: 1588089927} + m_Layer: 5 + m_Name: MotionTextUI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1588089926 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1588089925} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 646263816} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -185.29002, y: -379.60016} + m_SizeDelta: {x: 790.58, y: 80.8796} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1588089927 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1588089925} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 267a98b85a64a47ce8390785e2625a7e, type: 3} + m_Name: + m_EditorClassIdentifier: + textObject: {fileID: 1588089928} +--- !u!114 &1588089928 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1588089925} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 54 + m_Alignment: 6 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Motion: sensors not active' +--- !u!222 &1588089929 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1588089925} + m_CullTransparentMesh: 0 --- !u!1 &1617979921 GameObject: m_ObjectHideFlags: 0 @@ -3156,9 +3307,9 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1572824402} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -3180,6 +3331,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3231,10 +3383,10 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1402325761} m_Father: {fileID: 296863430} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -3269,6 +3421,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.392} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3319,9 +3472,9 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1986563354} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -3343,6 +3496,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3393,9 +3547,9 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1445854302} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -3417,6 +3571,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3467,9 +3622,9 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1986563354} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -3491,6 +3646,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 0, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3541,11 +3697,11 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 551763089} - {fileID: 844084890} m_Father: {fileID: 646263816} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -3566,6 +3722,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 0 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -3642,13 +3799,13 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 579564316} - {fileID: 236960712} - {fileID: 200102649} - {fileID: 1114396945} m_Father: {fileID: 646263816} - m_RootOrder: 15 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -3696,9 +3853,9 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1999304983} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -3720,6 +3877,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 0, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3769,11 +3927,11 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1647520605} - {fileID: 1773814228} m_Father: {fileID: 646263816} - m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -3821,11 +3979,11 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 654993987} - {fileID: 1943959946} m_Father: {fileID: 646263816} - m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -3916,6 +4074,7 @@ MonoBehaviour: m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 --- !u!223 &2040700023 Canvas: m_ObjectHideFlags: 0 @@ -3933,7 +4092,9 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 + m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 m_SortingOrder: 0 m_TargetDisplay: 0 @@ -3947,12 +4108,12 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1088190689} - {fileID: 1050024258} - {fileID: 646263816} m_Father: {fileID: 0} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -3988,10 +4149,10 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1005925348} m_Father: {fileID: 335687341} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -4026,6 +4187,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.392} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -4077,9 +4239,9 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 257853039} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -4101,6 +4263,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.44313726, g: 0.44313726, b: 0.45490196, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -4136,3 +4299,11 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: buttonImage: {fileID: 2091332729} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 963194228} + - {fileID: 112621852} + - {fileID: 2040700024} + - {fileID: 1111070296} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/Scripts/SampleLogic.cs b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/Scripts/SampleLogic.cs index e2b6b255..c1ab3357 100644 --- a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/Scripts/SampleLogic.cs +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Demos/Basics/Scripts/SampleLogic.cs @@ -4,6 +4,7 @@ using UnityEngine; using Apple.GameController; using Apple.GameController.Controller; +using Apple.CoreHaptics; public class SampleLogic : MonoBehaviour { @@ -23,7 +24,8 @@ public class SampleLogic : MonoBehaviour // UI Elements public UIText titleText; public UIText batteryText; - + public UIText motionText; + public UISlider leftTrigger; public UISlider rightTrigger; @@ -58,6 +60,20 @@ public class SampleLogic : MonoBehaviour GCController _controller; GCControllerType _controllerType; + [Space()] + + public CHHapticEngine _hapticEngine; + + [SerializeField] private TextAsset _AHAP0; + [SerializeField] private TextAsset _AHAP1; + [SerializeField] private TextAsset _AHAP2; + [SerializeField] private TextAsset _AHAP3; + + private CHHapticPatternPlayer _hapticPlayer0; + private CHHapticPatternPlayer _hapticPlayer1; + private CHHapticPatternPlayer _hapticPlayer2; + private CHHapticPatternPlayer _hapticPlayer3; + System.Random _rand; // Start is called before the first frame update @@ -83,10 +99,34 @@ void Start() GCControllerService.ControllerDisconnected += _onControllerDisconnected; } + public void OnApplicationPause(bool pause) + { + if (_hapticEngine == null) + return; + + if (pause) + { + _hapticEngine.Stop(); + } + else + { + _hapticEngine.Start(); + } + } + + private void OnApplicationQuit() + { + // stop listening or Unity Editor crashes + GCControllerService.ControllerConnected -= _onControllerConnected; + GCControllerService.ControllerDisconnected -= _onControllerDisconnected; + _controller = null; + } + // -- private void _setController(GCController c) { _controller = c; + _controller.SetLightColor(_rand.Next(20,256)/255f, _rand.Next(20,256)/255f, _rand.Next(20,256)/255f); titleText.SetText(_controller.Handle.ProductCategory); @@ -122,6 +162,26 @@ private void _setController(GCController c) buttonYImage.SetTexture(_controller.GetSymbolForInputName(GCControllerInputName.ButtonNorth, GCControllerSymbolScale.Medium, GCControllerRenderingMode.AlwaysTemplate)); break; } + + if (_controller.Handle.HasHaptics) + { + try + { + _hapticEngine = _controller.CreateHapticsEngine(); + _hapticEngine.Start(); + + _hapticPlayer0 = _hapticEngine.MakePlayer(new CHHapticPattern(_AHAP0)); + _hapticPlayer1 = _hapticEngine.MakePlayer(new CHHapticPattern(_AHAP1)); + _hapticPlayer2 = _hapticEngine.MakePlayer(new CHHapticPattern(_AHAP2)); + _hapticPlayer3 = _hapticEngine.MakePlayer(new CHHapticPattern(_AHAP3)); + } + catch (Exception ex) + { + Debug.LogException(ex); + } + + + } } // -- @@ -328,6 +388,50 @@ void Update() { batteryText.SetText(""); } + + if (_controller.Handle.HasHaptics) + { + if (_controller.GetButton(GCControllerInputName.ShoulderLeftFront)) + { + _hapticPlayer0.Start(); + } + if (_controller.GetButton(GCControllerInputName.ShoulderRightFront)) + { + _hapticPlayer1.Start(); + } + if (_controller.GetButton(GCControllerInputName.ThumbstickLeftButton)) + { + _hapticPlayer2.Start(); + } + if (_controller.GetButton(GCControllerInputName.ThumbstickRightButton)) + { + _hapticPlayer3.Start(); + } + } + + if (!_controller.InputState.SensorsActive) + { + motionText.SetText("Motion: sensors not active"); + } + else + { + string feedback = "Motion: "; + + if (_controller.InputState.HasAttitude) + feedback += $"\nattitude: = {_controller.GetAttitude():f3}"; + + if (_controller.InputState.HasRotationRate) + feedback += $"\nrotationRate: = {_controller.GetRotationRate():f3}"; + + if (_controller.InputState.HasGravityAndUserAcceleration) + feedback += $"\ngravity: = {_controller.GetGravity():f3}"; + + feedback += $"\nacceleration: = {_controller.GetAcceleration():f3}"; + + motionText.SetText(feedback); + } + + _controller.SetSensorsActive(_controller.GetInputValue(GCControllerInputName.ShoulderLeftBack) > 0.51f); } } } diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Source/Controller/GCController.cs b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Source/Controller/GCController.cs index 6a1be214..aebeff23 100644 --- a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Source/Controller/GCController.cs +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Source/Controller/GCController.cs @@ -3,6 +3,9 @@ using System.Collections.Generic; using UnityEngine; using AOT; +#if APPLECOREHAPTICS +using Apple.CoreHaptics; +#endif namespace Apple.GameController.Controller { @@ -173,6 +176,66 @@ public GCBatteryState GetBatteryState() } } + public Quaternion GetAttitude() + { + double[] value = InputState.Attitude; + + return new Quaternion() { + x = (float)value[0], + y = (float)value[1], + z = (float)value[2], + w = (float)value[3] + }; + } + + public Vector3 GetRotationRate() + { + double[] value = InputState.RotationRate; + + return new Vector3() + { + x = (float)value[0], + y = (float)value[1], + z = (float)value[2] + }; + } + + public Vector3 GetAcceleration() + { + double[] value = InputState.Acceleration; + + return new Vector3() + { + x = (float)value[0], + y = (float)value[1], + z = (float)value[2] + }; + } + + public Vector3 GetGravity() + { + double[] value = InputState.Gravity; + + return new Vector3() + { + x = (float)value[0], + y = (float)value[1], + z = (float)value[2] + }; + } + + public Vector3 GetUserAcceleration() + { + double[] value = InputState.UserAcceleration; + + return new Vector3() + { + x = (float)value[0], + y = (float)value[1], + z = (float)value[2] + }; + } + public void Poll() { _previousButtonPressStates = new Dictionary(_buttonPressStates); @@ -190,5 +253,17 @@ public void SetLightColor(float red, float green, float blue) { GCControllerService.SetControllerLightColor(Handle, red, green, blue); } + +#if APPLECOREHAPTICS + public CHHapticEngine CreateHapticsEngine() + { + return GCControllerService.CreateHapticsEngine(Handle); + } +#endif + + public void SetSensorsActive(bool flag) + { + GCControllerService.SetSensorsActive(Handle, flag); + } } -} \ No newline at end of file +} diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Source/Controller/GCControllerInputState.cs b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Source/Controller/GCControllerInputState.cs index 3359fdea..7e71ebee 100644 --- a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Source/Controller/GCControllerInputState.cs +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Source/Controller/GCControllerInputState.cs @@ -27,6 +27,7 @@ public struct GCControllerInputState public float ThumbstickRightHorizontal; public float ThumbstickRightVertical; public float ThumbstickRightButton; + // Dualshock & DualSense public float TouchpadButton; public float TouchpadPrimaryHorizontal; @@ -37,6 +38,28 @@ public struct GCControllerInputState public float BatteryLevel; public int BatteryState; + [MarshalAs(UnmanagedType.I1)] + public bool HasAttitude; + [MarshalAs(UnmanagedType.I1)] + public bool HasRotationRate; + [MarshalAs(UnmanagedType.I1)] + public bool HasGravityAndUserAcceleration; + [MarshalAs(UnmanagedType.I1)] + public bool SensorsRequireManualActivation; + [MarshalAs(UnmanagedType.I1)] + public bool SensorsActive; + + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] + public double[] Attitude; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] + public double[] RotationRate; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] + public double[] Acceleration; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] + public double[] Gravity; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] + public double[] UserAcceleration; + public static GCControllerInputState None = new GCControllerInputState(); } } \ No newline at end of file diff --git a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Source/Controller/GCControllerService.cs b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Source/Controller/GCControllerService.cs index de0b1e67..bc4c66ae 100644 --- a/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Source/Controller/GCControllerService.cs +++ b/plug-ins/Apple.GameController/Apple.GameController_Unity/Assets/Apple.GameController/Source/Controller/GCControllerService.cs @@ -4,6 +4,9 @@ using System.Threading.Tasks; using AOT; using UnityEngine; +#if APPLECOREHAPTICS +using Apple.CoreHaptics; +#endif namespace Apple.GameController.Controller { @@ -172,7 +175,35 @@ public static void SetControllerLightColor(GCControllerHandle controllerHandle, Debug.Log($"Setting controller {controllerHandle.UniqueId} to [{red}, {green}, {blue}]"); } #endregion - + + #region Controller Haptics +#if APPLECOREHAPTICS + [DllImport(InteropUtility.DLLName)] + private static extern IntPtr GameControllerWrapper_CreateHapticsEngine(string uniqueId, ErrorCallback onError); + + public static CHHapticEngine CreateHapticsEngine(GCControllerHandle controllerHandle) + { + IntPtr EnginePtr = GameControllerWrapper_CreateHapticsEngine(controllerHandle.UniqueId, (error) => { + throw new GCException(error); + }); + //Debug.Log($"Haptic engine for controller {controllerHandle.UniqueId} created"); + return new CHHapticEngine(EnginePtr); + } +#endif + #endregion + + #region Motion Sensor + [DllImport(InteropUtility.DLLName)] + private static extern void GameControllerWrapper_SetSensorsActive(string uniqueId, bool flag); + + public static void SetSensorsActive(GCControllerHandle controllerHandle, bool flag) + { + GameControllerWrapper_SetSensorsActive(controllerHandle.UniqueId, flag); + //Debug.Log($"Setting controller {controllerHandle.UniqueId} sensors to [{flag}]"); + } + #endregion + + #region Get Symbol for Input Name [DllImport(InteropUtility.DLLName)] private static extern GCGetSymbolForInputNameResponse GameControllerWrapper_GetSymbolForInputName(string uniqueId, GCControllerInputName inputName, GCControllerSymbolScale symbolScale, GCControllerRenderingMode renderingMode); @@ -184,4 +215,4 @@ public static Texture2D GetSymbolForInputName(GCControllerHandle controllerHandl } #endregion } -} \ No newline at end of file +} diff --git a/plug-ins/Apple.GameController/Native/GameControllerWrapper/Controller/Controller.swift b/plug-ins/Apple.GameController/Native/GameControllerWrapper/Controller/Controller.swift index 1407cfb7..e81d4dec 100644 --- a/plug-ins/Apple.GameController/Native/GameControllerWrapper/Controller/Controller.swift +++ b/plug-ins/Apple.GameController/Native/GameControllerWrapper/Controller/Controller.swift @@ -155,6 +155,21 @@ public func GameControllerWrapper_SetControllerLightColor } } +@_cdecl("GameControllerWrapper_SetSensorsActive") +public func GameControllerWrapper_SetSensorsActive +( + uniqueId : char_p, + flag : Bool +) +{ + if #available(macOS 11, iOS 14, tvOS 14, *) { + let controller = _controllerMapping.elements[uniqueId.toString()]; + if let motion = controller?.motion { + motion.sensorsActive = flag; + } + } +} + @available(OSX 11.00, tvOS 14, iOS 14.0, *) fileprivate func _getSymbolNameForExtendedInput(inputName : GCWControllerInputName, profile : GCExtendedGamepad) -> String? { @@ -310,6 +325,42 @@ fileprivate func _pollExtendedController state.thumbstickRightButton = profile.rightThumbstickButton?.value ?? 0; state.batteryLevel = 0; state.batteryState = -1; + + if #available(macOS 11.0, tvOS 14, iOS 14, *) , + let motion = profile.controller?.motion { + state.sensorsActive = motion.sensorsActive; + state.sensorsRequireManualActivation = motion.sensorsRequireManualActivation; + + state.hasAttitude = motion.hasAttitude; + if (motion.hasAttitude) + { + state.attitude = motion.attitude.toDoubleArray(); + } + + state.hasRotationRate = motion.hasRotationRate; + if (motion.hasRotationRate) + { + state.rotationRate = motion.rotationRate.toDoubleArray(); + } + + state.hasGravityAndUserAcceleration = motion.hasGravityAndUserAcceleration; + + if (motion.hasGravityAndUserAcceleration) + { + state.gravity = motion.gravity.toDoubleArray(); + state.userAcceleration = motion.userAcceleration.toDoubleArray(); + } + + state.acceleration = motion.acceleration.toDoubleArray(); + } + else + { + state.sensorsActive = false; + state.sensorsRequireManualActivation = false; + state.hasAttitude = false; + state.hasRotationRate = false; + state.hasGravityAndUserAcceleration = false; + } if #available(iOS 14, macOS 10.16, tvOS 14, *) { if let dualshockProfile = profile as? GCDualShockGamepad { @@ -366,6 +417,42 @@ fileprivate func _pollMicroController state.buttonX = profile.buttonX.isPressed.toFloat(); state.dpadHorizontal = profile.dpad.xAxis.value; state.dpadVertical = profile.dpad.yAxis.value; + + if #available(macOS 11.0, tvOS 14, iOS 14, *) , + let motion = profile.controller?.motion { + state.sensorsActive = motion.sensorsActive; + state.sensorsRequireManualActivation = motion.sensorsRequireManualActivation; + + state.hasAttitude = motion.hasAttitude; + if (motion.hasAttitude) + { + state.attitude = motion.attitude.toDoubleArray(); + } + + state.hasRotationRate = motion.hasRotationRate; + if (motion.hasRotationRate) + { + state.rotationRate = motion.rotationRate.toDoubleArray(); + } + + state.hasGravityAndUserAcceleration = motion.hasGravityAndUserAcceleration; + + if (motion.hasGravityAndUserAcceleration) + { + state.gravity = motion.gravity.toDoubleArray(); + state.userAcceleration = motion.userAcceleration.toDoubleArray(); + } + + state.acceleration = motion.acceleration.toDoubleArray(); + } + else + { + state.sensorsActive = false; + state.sensorsRequireManualActivation = false; + state.hasAttitude = false; + state.hasRotationRate = false; + state.hasGravityAndUserAcceleration = false; + } } class GCWNotificationHandler : NSObject { diff --git a/plug-ins/Apple.GameController/Native/GameControllerWrapper/Controller/Controller_BridgingHeader.h b/plug-ins/Apple.GameController/Native/GameControllerWrapper/Controller/Controller_BridgingHeader.h index 11affca0..a64a3e8d 100644 --- a/plug-ins/Apple.GameController/Native/GameControllerWrapper/Controller/Controller_BridgingHeader.h +++ b/plug-ins/Apple.GameController/Native/GameControllerWrapper/Controller/Controller_BridgingHeader.h @@ -72,6 +72,18 @@ typedef struct { //Battery float batteryLevel; int batteryState; + + // motion + bool hasAttitude; + bool hasRotationRate; + bool hasGravityAndUserAcceleration; + bool sensorsRequireManualActivation; + bool sensorsActive; + double attitude[4]; + double rotationRate[3]; + double acceleration[3]; + double gravity[3]; + double userAcceleration[3]; } GCWControllerInputState; typedef struct { diff --git a/plug-ins/Apple.GameController/Native/GameControllerWrapper/Extensions.swift b/plug-ins/Apple.GameController/Native/GameControllerWrapper/Extensions.swift index c27f72b5..3cd61c7b 100644 --- a/plug-ins/Apple.GameController/Native/GameControllerWrapper/Extensions.swift +++ b/plug-ins/Apple.GameController/Native/GameControllerWrapper/Extensions.swift @@ -92,6 +92,30 @@ extension Bool { } } +extension GCQuaternion { + func toDoubleArray() -> (Double, Double, Double, Double) { + return (self.x, self.y, self.z, self.w); + } +} + +extension GCRotationRate { + func toDoubleArray() -> (Double, Double, Double) { + return (self.x, self.y, self.z); + } +} + +extension GCEulerAngles { + func toDoubleArray() -> (Double, Double, Double) { + return (self.pitch, self.roll, self.yaw); + } +} + +extension GCAcceleration { + func toDoubleArray() -> (Double, Double, Double) { + return (self.x, self.y, self.z); + } +} + extension GCController { func toGCWController(uid : String) -> GCWController { if #available(macOS 10.16, tvOS 14, iOS 14, *) {