Insanely huge initial commit

This commit is contained in:
2026-02-21 16:40:15 -08:00
parent 208d626100
commit f74c547a13
33825 changed files with 5213498 additions and 0 deletions

View File

@@ -0,0 +1,192 @@
# Rust Core
addr2line: Apache-2.0 OR MIT
adler: 0BSD OR Apache-2.0 OR MIT
aho-corasick: MIT OR Unlicense
android_log-sys: Apache-2.0 OR MIT
android_logger: Apache-2.0 OR MIT
ansi_term: MIT
arrayvec: Apache-2.0 OR MIT
atty: MIT
autocfg: Apache-2.0 OR MIT
backtrace: Apache-2.0 OR MIT
bincode: MIT
bitflags: Apache-2.0 OR MIT
block-buffer: Apache-2.0 OR MIT
block-padding: Apache-2.0 OR MIT
bstr: Apache-2.0 OR MIT
bumpalo: Apache-2.0 OR MIT
byte-tools: Apache-2.0 OR MIT
byteorder: MIT OR Unlicense
bytes: MIT
cast: Apache-2.0 OR MIT
cbindgen: MPL-2.0
cc: Apache-2.0 OR MIT
cesu8: Apache-2.0 OR MIT
cfg-if: Apache-2.0 OR MIT
clap: MIT
combine: MIT
console_error_panic_hook: Apache-2.0 OR MIT
criterion: Apache-2.0 OR MIT
criterion-plot: Apache-2.0 OR MIT
crossbeam-channel: Apache-2.0 OR MIT
crossbeam-deque: Apache-2.0 OR MIT
crossbeam-epoch: Apache-2.0 OR MIT
csv: MIT OR Unlicense
csv-core: MIT OR Unlicense
dasp_sample: Apache-2.0 OR MIT
digest: Apache-2.0 OR MIT
either: Apache-2.0 OR MIT
encoding_rs:
env_logger: Apache-2.0 OR MIT
error-chain: Apache-2.0 OR MIT
failure: Apache-2.0 OR MIT
failure_derive: Apache-2.0 OR MIT
fake-simd: Apache-2.0 OR MIT
fourier: Apache-2.0 OR MIT
fourier-algorithms: Apache-2.0 OR MIT
fourier-macros: Apache-2.0 OR MIT
fuchsia-cprng:
generic-array: MIT
getrandom: Apache-2.0 OR MIT
gimli: Apache-2.0 OR MIT
half: Apache-2.0 OR MIT
hermit-abi: Apache-2.0 OR MIT
hound: Apache-2.0
humantime: Apache-2.0 OR MIT
itertools: Apache-2.0 OR MIT
itertools-num: Apache-2.0 OR MIT
itoa: Apache-2.0 OR MIT
jni: Apache-2.0 OR MIT
jni-sys: Apache-2.0 OR MIT
js-sys: Apache-2.0 OR MIT
lazy_static: Apache-2.0 OR MIT
log: Apache-2.0 OR MIT
log-panics: Apache-2.0 OR MIT
maplit: Apache-2.0 OR MIT
memchr: MIT OR Unlicense
memoffset: MIT
multiversion: Apache-2.0 OR MIT
multiversion-macros: Apache-2.0 OR MIT
num-complex: Apache-2.0 OR MIT
num-traits: Apache-2.0 OR MIT
num_cpus: Apache-2.0 OR MIT
object: Apache-2.0 OR MIT
oorandom: MIT
opaque-debug: Apache-2.0 OR MIT
pest: Apache-2.0 OR MIT
pest_derive: Apache-2.0 OR MIT
pest_generator: Apache-2.0 OR MIT
pest_meta: Apache-2.0 OR MIT
pico-args: MIT
plotters: MIT
plotters-backend: MIT
plotters-svg: MIT
ppv-lite86: Apache-2.0 OR MIT
proc-macro2: Apache-2.0 OR MIT
quote: Apache-2.0 OR MIT
rand: Apache-2.0 OR MIT
rand_chacha: Apache-2.0 OR MIT
rand_core: Apache-2.0 OR MIT
rand_hc: Apache-2.0 OR MIT
rayon: Apache-2.0 OR MIT
rayon-core: Apache-2.0 OR MIT
rdrand: ISC
redox_syscall: MIT
regex: Apache-2.0 OR MIT
regex-automata: MIT OR Unlicense
regex-syntax: Apache-2.0 OR MIT
remove_dir_all: Apache-2.0 OR MIT
rustc-demangle: Apache-2.0 OR MIT
rustc_version: Apache-2.0 OR MIT
ryu: Apache-2.0 OR BSL-1.0
same-file: MIT OR Unlicense
scoped-tls: Apache-2.0 OR MIT
scopeguard: Apache-2.0 OR MIT
semver: Apache-2.0 OR MIT
serde: Apache-2.0 OR MIT
serde_cbor: Apache-2.0 OR MIT
serde_derive: Apache-2.0 OR MIT
serde_derive_internals: Apache-2.0 OR MIT
serde_json: Apache-2.0 OR MIT
sha-1: Apache-2.0 OR MIT
strsim: MIT
symphonia: MPL-2.0
symphonia-bundle-flac: MPL-2.0
symphonia-bundle-mp3: MPL-2.0
symphonia-codec-pcm: MPL-2.0
symphonia-codec-vorbis: MPL-2.0
symphonia-core: MPL-2.0
symphonia-format-ogg: MPL-2.0
symphonia-format-wav: MPL-2.0
symphonia-metadata: MPL-2.0
syn: Apache-2.0 OR MIT
synstructure: MIT
tempdir: Apache-2.0 OR MIT
tempfile: Apache-2.0 OR MIT
termcolor: MIT OR Unlicense
test_bin: Apache-2.0 OR MIT
textwrap: MIT
tinytemplate: Apache-2.0 OR MIT
toml: Apache-2.0 OR MIT
typenum: Apache-2.0 OR MIT
typescript-definitions: Apache-2.0 OR MIT
typescript-definitions-derive: Apache-2.0 OR MIT
ucd-trie: Apache-2.0 OR MIT
unicode-width: Apache-2.0 OR MIT
unicode-xid: Apache-2.0 OR MIT
vec_map: Apache-2.0 OR MIT
version_check: Apache-2.0 OR MIT
walkdir: MIT OR Unlicense
wasi: Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT
wasm-bindgen: Apache-2.0 OR MIT
wasm-bindgen-backend: Apache-2.0 OR MIT
wasm-bindgen-futures: Apache-2.0 OR MIT
wasm-bindgen-macro: Apache-2.0 OR MIT
wasm-bindgen-macro-support: Apache-2.0 OR MIT
wasm-bindgen-shared: Apache-2.0 OR MIT
wasm-bindgen-test: Apache-2.0 OR MIT
wasm-bindgen-test-macro: Apache-2.0 OR MIT
web-sys: Apache-2.0 OR MIT
# Android
AndroidX: Apache-2.0
# iOS
N/A
# Licenses
## Apache 2.0
https://www.apache.org/licenses/LICENSE-2.0
## Apache 2.0 with LLVM-Exception
https://releases.llvm.org/10.0.0/LICENSE.TXT
## BSD-2-Clause
https://opensource.org/licenses/BSD-2-Clause
## BSL-1.0
https://opensource.org/licenses/BSL-1.0
## MIT
https://opensource.org/licenses/MIT
## MPL-2.0
https://www.mozilla.org/en-US/MPL/2.0/
## Unlicense
https://choosealicense.com/licenses/unlicense/
## ISC
https://opensource.org/licenses/ISC

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: fc916684710ef194aa41f4de7b75b8bf
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6f38aec47e203414aaad7d8ac3872cfe
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,38 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Linq;
#if UNITY_EDITOR
using UnityEditor;
#endif
namespace MoreMountains.FeedbacksForThirdParty
{
#if UNITY_EDITOR
/// <summary>
/// This class lets you specify (in code, by editing it) symbols that will be added to the build settings' define symbols list automatically
/// </summary>
[InitializeOnLoad]
public class NiceVibrationsDefineSymbols
{
/// <summary>
/// A list of all the symbols you want added to the build settings
/// </summary>
public static readonly string[] Symbols = new string[]
{
"MOREMOUNTAINS_NICEVIBRATIONS_INSTALLED"
};
/// <summary>
/// As soon as this class has finished compiling, adds the specified define symbols to the build settings
/// </summary>
static NiceVibrationsDefineSymbols()
{
string scriptingDefinesString = PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup);
List<string> scriptingDefinesStringList = scriptingDefinesString.Split(';').ToList();
scriptingDefinesStringList.AddRange(Symbols.Except(scriptingDefinesStringList));
PlayerSettings.SetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup, string.Join(";", scriptingDefinesStringList.ToArray()));
}
}
#endif
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e5a6fcac99c686a4ba4c6f04b2e0f02f
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: effaa5564a1884aaa94dec27a87e485f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: dd1644ba0cb55b14dace78bdb4ccc5a5
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 860c1af46baeaa547b0d2911c46c8a52
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,493 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: HitAnimation
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 1, y: 1, z: 1}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.05
value: {x: 1.2, y: 1.2, z: 1.2}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.16666667
value: {x: 1, y: 1, z: 1}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path:
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path:
classID: 114
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.8078432
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.05
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: 0.8078432
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path:
classID: 114
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.29411766
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.05
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: 0.29411766
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path:
classID: 114
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path:
classID: 114
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 3
script: {fileID: 0}
typeID: 4
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 0
attribute: 4215373228
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
typeID: 114
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 0
attribute: 2334886179
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
typeID: 114
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 0
attribute: 2526845255
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
typeID: 114
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 0
attribute: 304273561
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
typeID: 114
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.16666667
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path:
classID: 114
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.8078432
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.05
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: 0.8078432
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path:
classID: 114
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.29411766
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.05
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: 0.29411766
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path:
classID: 114
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path:
classID: 114
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.05
value: 1.2
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.x
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.05
value: 1.2
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.y
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.05
value: 1.2
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.z
path:
classID: 224
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a07c9e956826afc4fbbcdf440521d85c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,53 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: IdleAnimation
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings: []
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 46352f81517ed9b4e95cc473f6cd42a9
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,156 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1101 &-7544471341778248222
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: Hit
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -1461668529290340724}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 0
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &-4861423631611780734
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: IdleAnimation
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: -7544471341778248222}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: 46352f81517ed9b4e95cc473f6cd42a9, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &-1461668529290340724
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: HitAnimation
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 6086873505488641973}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: a07c9e956826afc4fbbcdf440521d85c, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: NVBallAnimatorController
serializedVersion: 5
m_AnimatorParameters:
- m_Name: Hit
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: 5306921616947008099}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1107 &5306921616947008099
AnimatorStateMachine:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: -4861423631611780734}
m_Position: {x: 270, y: 110, z: 0}
- serializedVersion: 1
m_State: {fileID: -1461668529290340724}
m_Position: {x: 270, y: 210, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: -4861423631611780734}
--- !u!1101 &6086873505488641973
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -4861423631611780734}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 1
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 46eaa67e7ffc1eb47ae5e69fa1871856
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 34ea8e84fa762df40b7352782c5e7ca0
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,11 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!62 &6200000
PhysicsMaterial2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: NVBouncy
friction: 0.4
bounciness: 0.7

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 079cfd7ef2be6de43bc41a040f567695
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 6200000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 39c593b8092226f44a9bbc3178649f4b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,81 @@
// Copyright (c) Meta Platforms, Inc. and affiliates.
using UnityEngine;
namespace Lofelt.NiceVibrations
{
public class BallDemoBall : MonoBehaviour
{
public bool HapticsEnabled = true;
public ParticleSystem HitParticles;
public ParticleSystem HitPusherParticles;
public LayerMask WallMask;
public LayerMask PusherMask;
public MMUIShaker LogoShaker;
public AudioSource EmphasisAudioSource;
protected Rigidbody2D _rigidBody;
protected float _lastRaycastTimestamp = 0f;
protected Animator _ballAnimator;
protected int _hitAnimationParameter;
protected virtual void Awake()
{
_rigidBody = this.gameObject.GetComponent<Rigidbody2D>();
_ballAnimator = this.gameObject.GetComponent<Animator>();
_hitAnimationParameter = Animator.StringToHash("Hit");
}
protected virtual void OnCollisionEnter2D(Collision2D collision)
{
if (WallMask == (WallMask | (1 << collision.gameObject.layer)))
{
HitWall();
}
}
protected virtual void Update()
{
float raycastLength = 5f;
Debug.DrawLine(this.transform.position, Vector3.down * raycastLength, Color.red);
if (Time.time - _lastRaycastTimestamp > 1f)
{
_lastRaycastTimestamp = Time.time;
RaycastHit2D hit = Physics2D.Raycast(this.transform.position, Vector2.down, raycastLength, WallMask);
if (hit.collider != null)
{
HitBottom();
}
}
}
protected virtual void HitBottom()
{
_rigidBody.AddForce(Vector2.up * 2500f);
StartCoroutine(LogoShaker.Shake(0.2f));
}
protected virtual void HitWall()
{
float amplitude = _rigidBody.velocity.magnitude / 100f;
HapticPatterns.PlayEmphasis(amplitude, 0.7f);
EmphasisAudioSource.volume = amplitude;
StartCoroutine(LogoShaker.Shake(0.2f));
EmphasisAudioSource.Play();
_ballAnimator.SetTrigger(_hitAnimationParameter);
}
public virtual void HitPusher()
{
HitPusherParticles.Play();
HapticController.fallbackPreset = HapticPatterns.PresetType.Selection;
HapticPatterns.PlayEmphasis(0.85f, 0.05f);
EmphasisAudioSource.volume = 0.1f;
StartCoroutine(LogoShaker.Shake(0.2f));
EmphasisAudioSource.Play();
_ballAnimator.SetTrigger(_hitAnimationParameter);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 59fe36bd4834fab44a9223e70f5fc73e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,21 @@
// Copyright (c) Meta Platforms, Inc. and affiliates.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Lofelt.NiceVibrations
{
public class BallDemoManager : DemoManager
{
[Header("Ball")]
public Vector2 Gravity = new Vector2(0, -30f);
protected virtual void Start()
{
Physics2D.gravity = Gravity;
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 108a3476b6d855545b26c23b7e92e890
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,22 @@
// Copyright (c) Meta Platforms, Inc. and affiliates.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Lofelt.NiceVibrations
{
public class BallDemoWall : MonoBehaviour
{
protected RectTransform _rectTransform;
protected BoxCollider2D _boxCollider2D;
protected virtual void OnEnable()
{
_rectTransform = this.gameObject.GetComponent<RectTransform>();
_boxCollider2D = this.gameObject.GetComponent<BoxCollider2D>();
_boxCollider2D.size = new Vector2(_rectTransform.rect.size.x, _rectTransform.rect.size.y);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 4615302ba7af13645aec1ad743d65dcf
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,29 @@
// Copyright (c) Meta Platforms, Inc. and affiliates.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Lofelt.NiceVibrations
{
public class BallPusher : MonoBehaviour
{
public float Force = 5f;
public BallDemoBall TargetBall;
protected Vector2 _direction;
protected virtual void OnTriggerEnter2D(Collider2D collider)
{
if (collider.gameObject != TargetBall.gameObject)
{
return;
}
_direction = (collider.transform.position - this.transform.position).normalized;
_direction.y = 1f;
collider.attachedRigidbody.velocity = Vector2.zero;
collider.attachedRigidbody.AddForce(_direction * Force);
TargetBall.HitPusher();
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: bf5e4b668334cb04282cd8a30200b42c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,73 @@
// Copyright (c) Meta Platforms, Inc. and affiliates.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
namespace Lofelt.NiceVibrations
{
public class BallTouchZone : MonoBehaviour, IPointerExitHandler, IPointerEnterHandler
{
public RenderMode ParentCanvasRenderMode { get; protected set; }
public RectTransform BallMover;
protected bool _holding = false;
protected PointerEventData _pointerEventData;
protected Vector3 _newPosition;
protected Canvas _canvas;
protected float _initialZPosition;
protected Vector2 _workPosition;
protected virtual void Start()
{
Initialization();
}
protected virtual void Initialization()
{
ParentCanvasRenderMode = GetComponentInParent<Canvas>().renderMode;
_canvas = GetComponentInParent<Canvas>();
_initialZPosition = transform.position.z;
}
protected virtual void Update()
{
if (_holding)
{
_newPosition = GetWorldPosition(_pointerEventData.position);
}
else
{
_newPosition = Vector3.one * 5000f;
}
_newPosition.z = _initialZPosition;
BallMover.position = _newPosition;
}
protected virtual Vector3 GetWorldPosition(Vector3 testPosition)
{
if (ParentCanvasRenderMode == RenderMode.ScreenSpaceCamera)
{
RectTransformUtility.ScreenPointToLocalPointInRectangle(_canvas.transform as RectTransform, testPosition, _canvas.worldCamera, out _workPosition);
return _canvas.transform.TransformPoint(_workPosition);
}
else
{
return testPosition;
}
}
public virtual void OnPointerEnter(PointerEventData data)
{
_holding = true;
_pointerEventData = data;
}
public virtual void OnPointerExit(PointerEventData data)
{
_holding = false;
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b52f664c08fd13941b0167b90d8fb49a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6e19835382a97304ca9e45ec6ddf81aa
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -0,0 +1,159 @@
fileFormatVersion: 2
guid: f7876974a1b60ed4ca3dfd37f229386f
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,92 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: NVBallParticle
m_Shader: {fileID: 10760, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AlphaTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: bcd80bc4f60ab014a8a41c5078c40449, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- PixelSnap: 0
- _BumpScale: 1
- _ColorMask: 15
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _EnableExternalAlpha: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _Stencil: 0
- _StencilComp: 8
- _StencilOp: 0
- _StencilReadMask: 255
- _StencilWriteMask: 255
- _UVSec: 0
- _UseUIAlphaClip: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _Flip: {r: 1, g: 1, b: 1, a: 1}
- _RendererColor: {r: 1, g: 1, b: 1, a: 1}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a8a95ed47c80ace44ac20124ba5fabaa
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -0,0 +1,91 @@
fileFormatVersion: 2
guid: bcd80bc4f60ab014a8a41c5078c40449
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 10
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 34679c3017c9f1249b4ea461b3161d2e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0e757de03cb63d447a04c21cf93ff027
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,213 @@
// Copyright (c) Meta Platforms, Inc. and affiliates.
using System.Collections.Generic;
using UnityEngine;
namespace Lofelt.NiceVibrations
{
public class CarDemoManager : DemoManager
{
[Header("Control")]
public MMKnob Knob;
public float MinimumKnobValue = 0.1f;
public float MaximumPowerDuration = 10f;
public float ChargingSpeed = 2f;
public float CarSpeed = 0f;
public float Power;
public float StartClickDuration = 0.2f;
public float DentDuration = 0.10f;
public List<float> Dents;
[Header("Car")]
public AudioSource CarEngineAudioSource;
public Transform LeftWheel;
public Transform RightWheel;
public RectTransform CarBody;
public Vector3 WheelRotationSpeed = new Vector3(0f, 0f, 50f);
[Header("UI")]
public GameObject ReloadingPrompt;
public AnimationCurve StartClickCurve;
public MMProgressBar PowerBar;
public List<PowerBarElement> SpeedBars;
public Color ActiveColor;
public Color InactiveColor;
[Header("Debug")]
public bool _carStarted = false;
public float _carStartedAt = 0f;
public float _lastStartClickAt = 0f;
protected float _knobValueLastFrame;
protected float _lastDentAt = 0f;
protected float _knobValue;
protected Vector3 _initialCarPosition;
protected Vector3 _carPosition;
protected virtual void Awake()
{
Power = MaximumPowerDuration;
ReloadingPrompt.SetActive(false);
_initialCarPosition = CarBody.localPosition;
}
protected virtual void Update()
{
HandlePower();
UpdateCar();
UpdateUI();
_knobValueLastFrame = Knob.Value;
}
protected virtual void HandlePower()
{
_knobValue = Knob.Active ? Knob.Value : 0f;
if (!_carStarted)
{
if ((_knobValue > MinimumKnobValue) && (Knob.Active))
{
_carStarted = true;
_carStartedAt = Time.time;
_lastStartClickAt = Time.time;
HapticPatterns.PlayConstant(_knobValue, _knobValue, MaximumPowerDuration);
CarEngineAudioSource.Play();
}
else
{
Power += Time.deltaTime * ChargingSpeed;
Power = Mathf.Clamp(Power, 0f, MaximumPowerDuration);
if (Power == MaximumPowerDuration)
{
Knob.SetActive(true);
Knob._rectTransform.localScale = Vector3.one;
ReloadingPrompt.SetActive(false);
}
else
{
if (!Knob.Active)
{
Knob.SetValue(CarSpeed);
}
}
}
}
else
{
if (Time.time - _carStartedAt > MaximumPowerDuration)
{
_carStarted = false;
Knob.SetActive(false);
Knob._rectTransform.localScale = Vector3.one * 0.9f;
ReloadingPrompt.SetActive(true);
}
else
{
if (_knobValue > MinimumKnobValue)
{
Power -= Time.deltaTime;
Power = Mathf.Clamp(Power, 0f, MaximumPowerDuration);
HapticController.clipLevel = _knobValue;
HapticController.clipFrequencyShift = _knobValue;
if (Power <= 0f)
{
_carStarted = false;
Knob.SetActive(false);
Knob._rectTransform.localScale = Vector3.one * 0.9f;
ReloadingPrompt.SetActive(true);
HapticController.Stop();
}
}
else
{
_carStarted = false;
_lastStartClickAt = Time.time;
HapticController.Stop();
}
}
}
}
protected virtual void UpdateCar()
{
float targetSpeed = _carStarted ? NiceVibrationsDemoHelpers.Remap(Knob.Value, MinimumKnobValue, 1f, 0f, 1f) : 0f;
CarSpeed = Mathf.Lerp(CarSpeed, targetSpeed, Time.deltaTime * 1f);
CarEngineAudioSource.volume = CarSpeed;
CarEngineAudioSource.pitch = NiceVibrationsDemoHelpers.Remap(CarSpeed, 0f, 1f, 0.5f, 1.25f);
LeftWheel.Rotate(CarSpeed * Time.deltaTime * WheelRotationSpeed, Space.Self);
RightWheel.Rotate(CarSpeed * Time.deltaTime * WheelRotationSpeed, Space.Self);
_carPosition.x = _initialCarPosition.x + 0f;
_carPosition.y = _initialCarPosition.y + 10 * CarSpeed * Mathf.PerlinNoise(Time.time * 10f, CarSpeed * 10f);
_carPosition.z = 0f;
CarBody.localPosition = _carPosition;
}
protected virtual void UpdateUI()
{
if (Knob.Active)
{
// start dent
if (Time.time - _lastStartClickAt < StartClickDuration)
{
float elapsedTime = StartClickCurve.Evaluate((Time.time - _lastStartClickAt) * (1 / StartClickDuration));
Knob._rectTransform.localScale = Vector3.one + Vector3.one * elapsedTime * 0.05f;
Knob._image.color = Color.Lerp(ActiveColor, Color.white, elapsedTime);
}
// other dents
foreach (float f in Dents)
{
if (((_knobValue >= f) && (_knobValueLastFrame < f)) || ((_knobValue <= f) && (_knobValueLastFrame > f)))
{
_lastDentAt = Time.time;
break;
}
}
if (Time.time - _lastDentAt < DentDuration)
{
float elapsedTime = StartClickCurve.Evaluate((Time.time - _lastDentAt) * (1 / DentDuration));
Knob._rectTransform.localScale = Vector3.one + Vector3.one * elapsedTime * 0.02f;
Knob._image.color = Color.Lerp(ActiveColor, Color.white, elapsedTime * 0.05f);
}
}
// gas bar
PowerBar.UpdateBar(Power, 0f, MaximumPowerDuration);
// power bars
if (CarSpeed <= 0.1f)
{
for (int i = 0; i < SpeedBars.Count; i++)
{
SpeedBars[i].SetActive(false);
}
}
else
{
int barsAmount = (int)(CarSpeed * 5f);
for (int i = 0; i < SpeedBars.Count; i++)
{
if (i <= barsAmount)
{
SpeedBars[i].SetActive(true);
}
else
{
SpeedBars[i].SetActive(false);
}
}
}
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 35a26d6ebcf6d9c488dfd296cf2219f9
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,57 @@
// Copyright (c) Meta Platforms, Inc. and affiliates.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Lofelt.NiceVibrations
{
public class PowerBarElement : MonoBehaviour
{
public float BumpDuration = 0.15f;
public Color NormalColor;
public Color InactiveColor;
public AnimationCurve Curve;
protected Image _image;
protected float _bumpDuration = 0f;
protected bool _active = false;
protected bool _activeLastFrame = false;
protected virtual void Awake()
{
_image = this.gameObject.GetComponent<Image>();
}
public virtual void SetActive(bool status)
{
_active = status;
_image.color = status ? NormalColor : InactiveColor;
}
protected virtual void Update()
{
if (_active && !_activeLastFrame)
{
StartCoroutine(ColorBump());
}
_activeLastFrame = _active;
}
protected virtual IEnumerator ColorBump()
{
_bumpDuration = 0f;
while (_bumpDuration < BumpDuration)
{
float curveValue = Curve.Evaluate(_bumpDuration / BumpDuration);
_image.color = Color.Lerp(NormalColor, Color.white, curveValue);
_bumpDuration += Time.deltaTime;
yield return null;
}
_image.color = NormalColor;
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b00d7a1bf2998ce459a1952941fc251e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0ba70b539e46c8a40ab2f75dfd727c67
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 26f9f894c832e234e91a99e33cda5548
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 02462ef27bcd8c644ab078a5a3b8b668
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -0,0 +1,159 @@
fileFormatVersion: 2
guid: 4ca0dd4a0b132db4c9e5e7f164b7d2c7
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,159 @@
fileFormatVersion: 2
guid: e2611d2b291e3374a979553a9a11c752
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b2b5e39b0f01c07409c5f3f42dc1824f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 39f7404cc84e420479bcaa59d1893edf
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,163 @@
// Copyright (c) Meta Platforms, Inc. and affiliates.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Lofelt.NiceVibrations
{
public class ContinuousHapticsDemoManager : DemoManager
{
[Header("Texts")]
public float ContinuousAmplitude = 1f;
public float ContinuousFrequency = 1f;
public float ContinuousDuration = 3f;
public Text ContinuousAmplitudeText;
public Text ContinuousFrequencyText;
public Text ContinuousDurationText;
public Text ContinuousButtonText;
[Header("Interface")]
public MMTouchButton ContinuousButton;
public MMProgressBar AmplitudeProgressBar;
public MMProgressBar FrequencyProgressBar;
public MMProgressBar DurationProgressBar;
public MMProgressBar ContinuousProgressBar;
public HapticCurve TargetCurve;
public Slider DurationSlider;
protected float _timeLeft;
protected Color _continuousButtonOnColor = new Color32(216, 85, 85, 255);
protected Color _continuousButtonOffColor = new Color32(242, 27, 80, 255);
protected bool _continuousActive = false;
protected float _amplitudeLastFrame = -1f;
protected float _frequencyLastFrame = -1f;
protected virtual void Awake()
{
ContinuousButton.ReturnToInitialSpriteAutomatically = false;
ContinuousAmplitudeText.text = ContinuousAmplitude.ToString();
ContinuousFrequencyText.text = ContinuousFrequency.ToString();
ContinuousDurationText.text = ContinuousDuration.ToString();
AmplitudeProgressBar.UpdateBar(ContinuousAmplitude, 0f, 1f);
FrequencyProgressBar.UpdateBar(ContinuousFrequency, 0f, 1f);
DurationProgressBar.UpdateBar(ContinuousDuration, 0f, 5f);
}
protected virtual void Update()
{
UpdateContinuousDemo();
}
protected virtual void UpdateContinuousDemo()
{
if (_timeLeft > 0f)
{
ContinuousProgressBar.UpdateBar(_timeLeft, 0f, ContinuousDuration);
_timeLeft -= Time.deltaTime;
Logo.Shaking = true;
TargetCurve.Move = true;
Logo.Amplitude = NiceVibrationsDemoHelpers.Remap(ContinuousAmplitude, 0f, 1f, 1f, 8f);
Logo.Frequency = NiceVibrationsDemoHelpers.Remap(ContinuousFrequency, 0f, 1f, 10f, 25f);
}
else
{
ContinuousProgressBar.UpdateBar(0f, 0f, ContinuousDuration);
Logo.Shaking = false;
TargetCurve.Move = false;
if (_continuousActive)
{
HapticController.Stop();
}
}
if ((_frequencyLastFrame != ContinuousFrequency) || (_amplitudeLastFrame != ContinuousAmplitude))
{
TargetCurve.UpdateCurve(ContinuousAmplitude, ContinuousFrequency);
}
_amplitudeLastFrame = ContinuousAmplitude;
_frequencyLastFrame = ContinuousFrequency;
}
public virtual void UpdateContinuousAmplitude(float newAmplitude)
{
ContinuousAmplitude = newAmplitude;
AmplitudeProgressBar.UpdateBar(ContinuousAmplitude, 0f, 1f);
ContinuousAmplitudeText.text = NiceVibrationsDemoHelpers.Round(newAmplitude, 2).ToString();
UpdateContinuous();
}
public virtual void UpdateContinuousFrequency(float newFrequency)
{
ContinuousFrequency = newFrequency;
FrequencyProgressBar.UpdateBar(ContinuousFrequency, 0f, 1f);
ContinuousFrequencyText.text = NiceVibrationsDemoHelpers.Round(newFrequency, 2).ToString();
UpdateContinuous();
}
public virtual void UpdateContinuousDuration(float newDuration)
{
ContinuousDuration = newDuration;
DurationProgressBar.UpdateBar(ContinuousDuration, 0f, 5f);
ContinuousDurationText.text = NiceVibrationsDemoHelpers.Round(newDuration, 2).ToString();
}
protected virtual void UpdateContinuous()
{
if (_continuousActive)
{
HapticController.clipLevel = ContinuousAmplitude;
HapticController.clipFrequencyShift = ContinuousFrequency;
DebugAudioContinuous.volume = ContinuousAmplitude;
DebugAudioContinuous.pitch = 0.5f + ContinuousFrequency / 2f;
}
}
public virtual void ContinuousHapticsButton()
{
if (!_continuousActive)
{
// START
HapticController.fallbackPreset = HapticPatterns.PresetType.LightImpact;
HapticPatterns.PlayConstant(ContinuousAmplitude, ContinuousFrequency, ContinuousDuration);
_timeLeft = ContinuousDuration;
ContinuousButtonText.text = "Stop continuous haptic pattern";
DurationSlider.interactable = false;
_continuousActive = true;
DebugAudioContinuous.Play();
}
else
{
// STOP
HapticController.Stop();
ResetPlayState();
}
}
protected virtual void OnHapticsStopped()
{
ResetPlayState();
}
protected virtual void ResetPlayState()
{
_timeLeft = 0f;
ContinuousButtonText.text = "Play continuous haptic pattern";
_continuousActive = false;
DebugAudioContinuous?.Stop();
DurationSlider.interactable = true;
}
protected virtual void OnEnable()
{
HapticController.PlaybackStopped += OnHapticsStopped;
}
protected virtual void OnDisable()
{
HapticController.PlaybackStopped -= OnHapticsStopped;
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: c1334dc132cef6e4d980b0705fa9c3ab
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0fc25d3ff0eb22d449efd104a7bb3eda
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 64a1e59632681094991ca9af2fbb68d9
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,53 @@
// Copyright (c) Meta Platforms, Inc. and affiliates.
using UnityEngine;
using UnityEngine.UI;
namespace Lofelt.NiceVibrations
{
public class EmphasisHapticsDemoManager : DemoManager
{
[Header("Emphasis Haptics")]
public MMProgressBar AmplitudeProgressBar;
public MMProgressBar FrequencyProgressBar;
public HapticCurve TargetCurve;
public float EmphasisAmplitude = 1f;
public float EmphasisFrequency = 1f;
public Text EmphasisAmplitudeText;
public Text EmphasisFrequencyText;
protected virtual void Start()
{
FrequencyProgressBar.UpdateBar(1f, 0f, 1f);
AmplitudeProgressBar.UpdateBar(1f, 0f, 1f);
TargetCurve.UpdateCurve(EmphasisAmplitude, EmphasisFrequency);
HapticController.fallbackPreset = HapticPatterns.PresetType.RigidImpact;
}
public virtual void UpdateEmphasisAmplitude(float newAmplitude)
{
EmphasisAmplitude = newAmplitude;
EmphasisAmplitudeText.text = NiceVibrationsDemoHelpers.Round(newAmplitude, 2).ToString();
AmplitudeProgressBar.UpdateBar(EmphasisAmplitude, 0f, 1f);
TargetCurve.UpdateCurve(EmphasisAmplitude, EmphasisFrequency);
}
public virtual void UpdateEmphasisFrequency(float newFrequency)
{
EmphasisFrequency = newFrequency;
EmphasisFrequencyText.text = NiceVibrationsDemoHelpers.Round(newFrequency, 2).ToString();
FrequencyProgressBar.UpdateBar(EmphasisFrequency, 0f, 1f);
TargetCurve.UpdateCurve(EmphasisAmplitude, EmphasisFrequency);
}
public virtual void EmphasisHapticsButton()
{
HapticPatterns.PlayEmphasis(EmphasisAmplitude, EmphasisFrequency);
StartCoroutine(Logo.Shake(0.2f));
DebugAudioEmphasis.volume = EmphasisAmplitude;
DebugAudioEmphasis.pitch = 0.5f + EmphasisFrequency / 2f;
DebugAudioEmphasis.Play();
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 154496c98a10fd14aac98700fa7044bb
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3068fea84a2674c79b4cd1b8e387fcb0
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e5032ffb77ce0184081e75db6efe7659
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,285 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1102 &-8439469608888585200
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: IdleAnimation
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 322142418409678110}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: b1bb90fb3329f934cb84bfd897885fac, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &-7569357459071972201
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 3
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SwapAnimation 0
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 181740473887680277}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: fa892fcb699d82641aee0d59d88eeef8, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &-7156971018475550983
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: Idle
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -7569357459071972201}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 0
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1107 &-4812566063291020210
AnimatorStateMachine:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: -8439469608888585200}
m_Position: {x: 330, y: 110, z: 0}
- serializedVersion: 1
m_State: {fileID: -3427097150429738656}
m_Position: {x: 220, y: 210, z: 0}
- serializedVersion: 1
m_State: {fileID: 3586450281512177956}
m_Position: {x: 375, y: 295, z: 0}
- serializedVersion: 1
m_State: {fileID: -7569357459071972201}
m_Position: {x: 490, y: 200, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: -8439469608888585200}
--- !u!1101 &-3588477303308208905
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 3586450281512177956}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 1
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &-3427097150429738656
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SwapAnimation
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: -3588477303308208905}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: fa892fcb699d82641aee0d59d88eeef8, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &-3036532938430331940
AnimatorStateTransition:
m_ObjectHideFlags: 3
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 3586450281512177956}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 1
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: AHAPPresetIconAnimator
serializedVersion: 5
m_AnimatorParameters:
- m_Name: Idle
m_Type: 4
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 1
m_Controller: {fileID: 0}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: -4812566063291020210}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1101 &181740473887680277
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -8439469608888585200}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 1
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &322142418409678110
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 2
m_ConditionEvent: Idle
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -3427097150429738656}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 0
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &3586450281512177956
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: ShakingAnimation
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: -7156971018475550983}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: b6374e887542a044499c8d3dee33e13a, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ef501b816fc6d8d4da6515958af8f493
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,53 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: IdleAnimation
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings: []
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b1bb90fb3329f934cb84bfd897885fac
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,205 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: ShakingAnimation
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 0.5, y: 0.5, z: 0.5}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.05
value: {x: 0.53, y: 0.53, z: 0.53}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.16666667
value: {x: 0.5, y: 0.5, z: 0.5}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path:
m_FloatCurves: []
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 3
script: {fileID: 0}
typeID: 4
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.16666667
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.05
value: 0.53
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.x
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.05
value: 0.53
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.y
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.05
value: 0.53
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.z
path:
classID: 224
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b6374e887542a044499c8d3dee33e13a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,819 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SwapAnimation
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 0, y: 0, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.033333335
value: {x: 0, y: 90, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.15
value: {x: 0, y: 0, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path:
m_PositionCurves: []
m_ScaleCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 0.5, y: 0.5, z: 0.5}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.05
value: {x: 0.5, y: 0.5, z: 0.5}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.11666667
value: {x: 0.7, y: 0.7, z: 0.7}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.15
value: {x: 0.5, y: 0.5, z: 0.5}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path:
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.083333336
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.15
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path:
classID: 114
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.8862746
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.083333336
value: 0.8862746
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.11666667
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.15
value: 0.8862746
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path:
classID: 114
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.33333334
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.083333336
value: 0.33333334
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.11666667
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.15
value: 0.33333334
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path:
classID: 114
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.083333336
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.15
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path:
classID: 114
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 4
script: {fileID: 0}
typeID: 4
customType: 4
isPPtrCurve: 0
- serializedVersion: 2
path: 0
attribute: 3
script: {fileID: 0}
typeID: 4
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 0
attribute: 4215373228
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
typeID: 114
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 0
attribute: 2334886179
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
typeID: 114
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 0
attribute: 2526845255
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
typeID: 114
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 0
attribute: 304273561
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
typeID: 114
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.15
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.033333335
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.15
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.x
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.033333335
value: 90
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.15
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.y
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.033333335
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.15
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.z
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.083333336
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.15
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path:
classID: 114
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.8862746
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.083333336
value: 0.8862746
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.11666667
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.15
value: 0.8862746
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path:
classID: 114
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.33333334
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.083333336
value: 0.33333334
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.11666667
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.15
value: 0.33333334
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path:
classID: 114
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.083333336
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.15
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path:
classID: 114
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.05
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.11666667
value: 0.7
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.15
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.x
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.05
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.11666667
value: 0.7
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.15
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.y
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.05
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.11666667
value: 0.7
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.15
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.z
path:
classID: 224
script: {fileID: 0}
m_EulerEditorCurves:
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.x
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.y
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.z
path:
classID: 224
script: {fileID: 0}
m_HasGenericRootTransform: 1
m_HasMotionFloatCurves: 0
m_Events: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fa892fcb699d82641aee0d59d88eeef8
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0a1dd446e1a0b4b07bb349640bf6067d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: a5cce830c10d94e848fc3ddac976fbf2
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: dc84fb4fa9e67485a972c887d976d004, type: 3}

View File

@@ -0,0 +1 @@
{"version":{"major":1,"minor":0,"patch":0},"metadata":{"author":"joao@lofelt.com","editor":"Lofelt Studio","source":"AHAPPresets/NVDice.wav","project":"NVDice","tags":[],"description":""},"signals":{"continuous":{"envelopes":{"amplitude":[{"time":0,"amplitude":0.00029056615},{"time":0.0010204081,"amplitude":0.00029056615},{"time":0.020022675,"amplitude":0.0010838391},{"time":0.023015874,"amplitude":0.24628326,"emphasis":{"amplitude":0.64811385,"frequency":1}},{"time":0.04301587,"amplitude":0.30893233},{"time":0.06201814,"amplitude":0.14449422},{"time":0.0870068,"amplitude":0.058487773},{"time":0.090022676,"amplitude":0.21247946,"emphasis":{"amplitude":0.5591565,"frequency":0.1768105}},{"time":0.114013605,"amplitude":0.21455966},{"time":0.14301588,"amplitude":0.06968115},{"time":0.21102041,"amplitude":0.031449247},{"time":0.21201813,"amplitude":0.24404025,"emphasis":{"amplitude":0.6422112,"frequency":0.2923607}},{"time":0.23301587,"amplitude":0.28606227},{"time":0.26600906,"amplitude":0.07495963},{"time":0.26700678,"amplitude":0.6502027},{"time":0.27002266,"amplitude":0.308164,"emphasis":{"amplitude":0.8109579,"frequency":0.618822}},{"time":0.28301588,"amplitude":0.49409807},{"time":0.30301586,"amplitude":0.21208319},{"time":0.3170068,"amplitude":0.120308496},{"time":0.35201815,"amplitude":0.044048432},{"time":0.35301587,"amplitude":0.597531},{"time":0.37201813,"amplitude":0.29360098},{"time":0.3840136,"amplitude":0.17828391},{"time":0.38501135,"amplitude":0.3910198},{"time":0.41201812,"amplitude":0.14365426},{"time":0.42501134,"amplitude":0.18421979},{"time":0.4640136,"amplitude":0.043719392},{"time":0.46501133,"amplitude":0.13552359},{"time":0.48,"amplitude":0.08007864},{"time":0.48600906,"amplitude":0.17900568},{"time":0.5050113,"amplitude":0.090373725},{"time":0.57900226,"amplitude":0.023051888},{"time":0.58,"amplitude":0.07891691},{"time":0.61,"amplitude":0.024494085},{"time":0.61099774,"amplitude":0.10730806},{"time":0.65,"amplitude":0.023467101},{"time":0.6509977,"amplitude":0.056163862},{"time":0.69600904,"amplitude":0.013153992},{"time":0.7140136,"amplitude":0.06063435},{"time":0.77900225,"amplitude":0.0046691853},{"time":0.9629932,"amplitude":0.0005919837},{"time":0.9633333,"amplitude":0.0005919837},{"time":0.9633333,"amplitude":0.0005919837}],"frequency":[{"time":0,"frequency":1},{"time":0.0058049876,"frequency":0.45383245},{"time":0.043537416,"frequency":0.74745363},{"time":0.13931973,"frequency":0.574811},{"time":0.18575963,"frequency":0.7171733},{"time":0.20897959,"frequency":0.5531693},{"time":0.23510204,"frequency":0.6953524},{"time":0.26702946,"frequency":0.52940357},{"time":0.30476192,"frequency":0.6585863},{"time":0.38893422,"frequency":0.5463057},{"time":0.41505668,"frequency":0.68535703},{"time":0.42376417,"frequency":0.54946226},{"time":0.4614966,"frequency":0.5811323},{"time":0.53696144,"frequency":0.54777396},{"time":0.6066213,"frequency":0.5811939},{"time":0.64435375,"frequency":0.72476804},{"time":0.6675737,"frequency":0.5684711},{"time":0.6849887,"frequency":0.9723859},{"time":0.69659865,"frequency":0.66252524},{"time":0.751746,"frequency":0.6206365},{"time":0.757551,"frequency":0.97920614},{"time":0.7662585,"frequency":0.6674669},{"time":0.786576,"frequency":0.679469},{"time":0.8039909,"frequency":0.99255854},{"time":0.8185034,"frequency":0.6613598},{"time":0.83591837,"frequency":1},{"time":0.85043085,"frequency":0.635323},{"time":0.8649433,"frequency":0.65902764},{"time":0.8707483,"frequency":1},{"time":0.94911563,"frequency":1}]}}}}

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 6ba7f34892e4048be87810ea8621b3df
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: dc84fb4fa9e67485a972c887d976d004, type: 3}

View File

@@ -0,0 +1 @@
{"version":{"major":1,"minor":0,"patch":0},"metadata":{"author":"joao@lofelt.com","editor":"Lofelt Studio","source":"AHAPPresets/NVDrumsLoop.wav","project":"NVDrumsLoop","tags":[],"description":""},"signals":{"continuous":{"envelopes":{"amplitude":[{"time":0,"amplitude":0.0009364864},{"time":0.0010204081,"amplitude":0.0009364864},{"time":0.3110204,"amplitude":0.07620178},{"time":0.31900227,"amplitude":0.405152,"emphasis":{"amplitude":0.66418356,"frequency":0.24799995}},{"time":0.46201813,"amplitude":0.08385526},{"time":0.46800452,"amplitude":0.48729575,"emphasis":{"amplitude":0.79884547,"frequency":0.69716567}},{"time":0.5770068,"amplitude":0.06986901},{"time":0.58,"amplitude":0.4712792,"emphasis":{"amplitude":0.77258885,"frequency":1}},{"time":0.6780045,"amplitude":0.053497486},{"time":0.88600904,"amplitude":0.041479148},{"time":1.0009977,"amplitude":0.22256261,"emphasis":{"amplitude":0.36485672,"frequency":0.442535}},{"time":1.0019954,"amplitude":0.35606897},{"time":1.0429932,"amplitude":0.10411902},{"time":1.2110204,"amplitude":0.017610963},{"time":1.2400227,"amplitude":0.38183823},{"time":1.3200227,"amplitude":0.114363946},{"time":1.3300227,"amplitude":0.4426949,"emphasis":{"amplitude":0.72572935,"frequency":0.30501732}},{"time":1.4060317,"amplitude":0.09889966},{"time":1.5320181,"amplitude":0.037194654},{"time":1.615034,"amplitude":0.07245794},{"time":1.7460318,"amplitude":0.009371089},{"time":1.7467574,"amplitude":0.009371089},{"time":1.7467574,"amplitude":0.009371089}],"frequency":[{"time":0,"frequency":0.57965684},{"time":0.014512472,"frequency":0.42740834},{"time":0.03482993,"frequency":0.44371918},{"time":0.089977324,"frequency":0.63599885},{"time":0.12190475,"frequency":0.57733333},{"time":0.16834468,"frequency":0.796924},{"time":0.23219955,"frequency":0.70538765},{"time":0.252517,"frequency":0.4482726},{"time":0.29895693,"frequency":0.60887516},{"time":0.32217687,"frequency":0.386419},{"time":0.3541043,"frequency":0.42010424},{"time":0.37732425,"frequency":0.56318825},{"time":0.38893422,"frequency":0.4826087},{"time":0.44988662,"frequency":0.544597},{"time":0.47310656,"frequency":0.37666655},{"time":0.49342406,"frequency":0.569349},{"time":0.52244896,"frequency":0.4854739},{"time":0.54276645,"frequency":0.6271172},{"time":0.5659864,"frequency":0.5858276},{"time":0.58630383,"frequency":0.39373335},{"time":0.60952383,"frequency":0.5171091},{"time":0.62403625,"frequency":0.4165676},{"time":0.6530612,"frequency":0.5410655},{"time":0.69079363,"frequency":0.39372602},{"time":0.740136,"frequency":0.4439552},{"time":0.77786845,"frequency":0.37495863},{"time":0.8765533,"frequency":0.41722658},{"time":0.89687073,"frequency":0.38069367},{"time":0.98394555,"frequency":0.39698616},{"time":0.9984581,"frequency":0.50306815},{"time":1.0013604,"frequency":0.48402527},{"time":1.0187755,"frequency":0.41594},{"time":1.1029477,"frequency":0.37284914},{"time":1.1116552,"frequency":0.4191558},{"time":1.1580951,"frequency":0.3929453},{"time":1.21034,"frequency":0.57704633},{"time":1.22195,"frequency":0.4299351},{"time":1.2422675,"frequency":0.44604075},{"time":1.2974149,"frequency":0.6257527},{"time":1.3119273,"frequency":0.5895117},{"time":1.3264399,"frequency":0.14500743},{"time":1.3525623,"frequency":0.097784385},{"time":1.3728797,"frequency":0.18194616},{"time":1.4280272,"frequency":0.51708287},{"time":1.4454421,"frequency":0.47969785},{"time":1.4599546,"frequency":0.6051544},{"time":1.4773695,"frequency":0.5126784},{"time":1.5005895,"frequency":0.6197688},{"time":1.5238094,"frequency":0.5511457},{"time":1.5296144,"frequency":0.22896235},{"time":1.538322,"frequency":0.10021001},{"time":1.5644443,"frequency":0.056278545},{"time":1.5702493,"frequency":0.13184358},{"time":1.6341043,"frequency":0.21219318},{"time":1.6486167,"frequency":0.3260141},{"time":1.6544217,"frequency":0.22153643},{"time":1.6718366,"frequency":0.4602595},{"time":1.7066666,"frequency":0.3504053},{"time":1.7153741,"frequency":0.50982773},{"time":1.732789,"frequency":0.36831042}]}}}}

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 21b5c105f373e476c93ac1a61c2a671f
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: dc84fb4fa9e67485a972c887d976d004, type: 3}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 4c1fed00d51304ffbbcd07464f90b37d
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: dc84fb4fa9e67485a972c887d976d004, type: 3}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: bc8515b2736d340359b4c718c4f565ed
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: dc84fb4fa9e67485a972c887d976d004, type: 3}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: db702dc4cff314785bbc5a16becaaeb1
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: dc84fb4fa9e67485a972c887d976d004, type: 3}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 5a367fd990b07468bb3bd4c42368b7fa
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: dc84fb4fa9e67485a972c887d976d004, type: 3}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 9c40e0330eb2346cb90e006681c4feb0
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: dc84fb4fa9e67485a972c887d976d004, type: 3}

View File

@@ -0,0 +1 @@
{"version":{"major":1,"minor":0,"patch":0},"metadata":{"author":"joao@lofelt.com","editor":"Lofelt Studio","source":"AHAPPresets/NVTeleport.wav","project":"NVTeleport","tags":[],"description":""},"signals":{"continuous":{"envelopes":{"amplitude":[{"time":0,"amplitude":0.12181221},{"time":0.0010204081,"amplitude":0.12181221},{"time":0.005011338,"amplitude":0.27031934},{"time":0.009002267,"amplitude":0.2572458},{"time":0.013015873,"amplitude":0.40544757},{"time":0.025011338,"amplitude":0.53629833},{"time":0.039002266,"amplitude":0.6426872},{"time":0.04102041,"amplitude":0.09788013,"emphasis":{"amplitude":0.88981926,"frequency":1}},{"time":0.06401361,"amplitude":0.87172455},{"time":0.07800453,"amplitude":0.82066274},{"time":0.07900227,"amplitude":0.8611847},{"time":0.12002268,"amplitude":0.8260753},{"time":0.12800454,"amplitude":0.8209536},{"time":0.16501133,"amplitude":0.7874158},{"time":0.17201814,"amplitude":0.7313888},{"time":0.17301586,"amplitude":0.78094816},{"time":0.18002267,"amplitude":0.7269754},{"time":0.18102041,"amplitude":0.77384144},{"time":0.2070068,"amplitude":0.7481106},{"time":0.21600907,"amplitude":0.6840515},{"time":0.22002268,"amplitude":0.7361258},{"time":0.2270068,"amplitude":0.66018945},{"time":0.22800453,"amplitude":0.72933066},{"time":0.2340136,"amplitude":0.6654843},{"time":0.2410204,"amplitude":0.6933567},{"time":0.2540136,"amplitude":0.5420077},{"time":0.26900226,"amplitude":0.41183096},{"time":0.27201813,"amplitude":0.6787983},{"time":0.29501134,"amplitude":0.48994935},{"time":0.3040136,"amplitude":0.39171708},{"time":0.32301587,"amplitude":0.25808397},{"time":0.32600906,"amplitude":0.46320683},{"time":0.35201815,"amplitude":0.2774246},{"time":0.36600906,"amplitude":0.20080993},{"time":0.3770068,"amplitude":0.16788787},{"time":0.38301587,"amplitude":0.2611059},{"time":0.41201812,"amplitude":0.12360741},{"time":0.4370068,"amplitude":0.085842334},{"time":0.4410204,"amplitude":0.112326935},{"time":0.4940136,"amplitude":0.03427884},{"time":0.5309977,"amplitude":0.02869959},{"time":0.5311565,"amplitude":0.02869959},{"time":0.5311565,"amplitude":0.02869959}],"frequency":[{"time":0,"frequency":0.33119112},{"time":0.0058049876,"frequency":0.25611135},{"time":0.029024942,"frequency":0.37850285},{"time":0.040634923,"frequency":0.6160209},{"time":0.0493424,"frequency":0.59379},{"time":0.05804988,"frequency":0.25039563},{"time":0.08126984,"frequency":0.37659758},{"time":0.101587296,"frequency":0.6102123},{"time":0.11029478,"frequency":0.24677628},{"time":0.12770975,"frequency":0.2885223},{"time":0.1538322,"frequency":0.56880695},{"time":0.1596372,"frequency":0.261455},{"time":0.17124717,"frequency":0.21300004},{"time":0.2060771,"frequency":0.64008754},{"time":0.21478458,"frequency":0.20181032},{"time":0.24380952,"frequency":0.402281},{"time":0.258322,"frequency":0.6874806},{"time":0.26702946,"frequency":0.22967051},{"time":0.29024944,"frequency":0.30054507},{"time":0.3076644,"frequency":0.5839705},{"time":0.32217687,"frequency":0.19629148},{"time":0.34539682,"frequency":0.25346667},{"time":0.3541043,"frequency":0.4174527},{"time":0.3686168,"frequency":0.14394584},{"time":0.38022676,"frequency":0.15060541},{"time":0.4034467,"frequency":0.37995842},{"time":0.42376417,"frequency":0.038385883},{"time":0.43537414,"frequency":0.1695851},{"time":0.44408163,"frequency":0.040898386},{"time":0.5195465,"frequency":0}]}}}}

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: a90fad83145944657936507a7a1c4ff6
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: dc84fb4fa9e67485a972c887d976d004, type: 3}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4324e141ec02b7d4da47d8b91d546d1b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,98 @@
// Copyright (c) Meta Platforms, Inc. and affiliates.
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Lofelt.NiceVibrations
{
[Serializable]
public class HapticClipsDemoItem
{
public string Name;
public HapticClip HapticClip;
public Sprite AssociatedSprite;
public AudioSource AssociatedSound;
}
public class HapticClipsDemoManager : DemoManager
{
[Header("Image")]
public Image IconImage;
public Animator IconImageAnimator;
public List<HapticClipsDemoItem> DemoItems;
protected WaitForSeconds _iconChangeDelay;
protected int _idleAnimationParameter;
protected virtual void Awake()
{
_iconChangeDelay = new WaitForSeconds(0.02f);
_idleAnimationParameter = Animator.StringToHash("Idle");
IconImageAnimator.SetBool(_idleAnimationParameter, true);
}
// Haptic Clip -----------------------------------------------------------------------------
public virtual void PlayHapticClip(int index)
{
Logo.Shaking = true;
HapticController.fallbackPreset = HapticPatterns.PresetType.LightImpact;
HapticController.Play(DemoItems[index].HapticClip);
DemoItems[index].AssociatedSound.Play();
StopAllCoroutines();
StartCoroutine(ChangeIcon(DemoItems[index].AssociatedSprite));
}
// ICON ------------------------------------------------------------------------------------
protected virtual IEnumerator ChangeIcon(Sprite newSprite)
{
IconImageAnimator.SetBool(_idleAnimationParameter, false);
yield return _iconChangeDelay;
IconImage.sprite = newSprite;
}
// CALLBACKS -------------------------------------------------------------------------------
protected virtual IEnumerator BackToIdle()
{
Logo.Shaking = false;
IconImageAnimator.SetBool(_idleAnimationParameter, true);
yield return _iconChangeDelay;
IconImage.sprite = DemoItems[0].AssociatedSprite;
}
void OnHapticsStopped()
{
StartCoroutine(BackToIdle());
}
void OnDisable()
{
HapticController.PlaybackStopped -= OnHapticsStopped;
if (HapticController.IsPlaying())
{
HapticController.Stop();
}
}
void OnEnable()
{
HapticController.PlaybackStopped += OnHapticsStopped;
StartCoroutine(BackToIdle());
}
void OnApplicationFocus(bool hasFocus)
{
if (hasFocus)
{
StartCoroutine(BackToIdle());
}
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b6111dd3a595e4b8b9fb6c7545fc3aa2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,26 @@
// Copyright (c) Meta Platforms, Inc. and affiliates.
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Lofelt.NiceVibrations
{
/// <summary>
/// A minimal, demo only class, used to rotate an image in the demo's UI
/// </summary>
public class HapticClipsDemoRotator : MonoBehaviour
{
/// the speed at which the image should rotate
public Vector3 RotationSpeed = new Vector3(0, 0, 100f);
/// <summary>
/// On Update we rotate our image
/// </summary>
protected void Update()
{
this.transform.Rotate(RotationSpeed * Time.deltaTime, Space.Self);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: c3c35d88c395442feb748be3dd08fbf9
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: aae0f2706973d884a9a8db91f4de83f4
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: ba4b0190b4835eb44b595b6d27c48e2e
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 6d520839b7deb4c459ba85fd74cf2c18
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 31ba8cb846fdd46498b72e9e45be695e
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 9143cc0979f80d945bb7339cd7a44944
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Some files were not shown because too many files have changed in this diff Show More