forked from cgvr/DeltaVR
Compare commits
56 Commits
9d780f4dbc
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 4e55b7e9ab | |||
| dea42068f7 | |||
| b021fd0110 | |||
| 7b45d623d1 | |||
| f42356dd7a | |||
| 50002adb61 | |||
| ee629e2593 | |||
| 4796869a29 | |||
| 398f22efdd | |||
| b40b075540 | |||
| cad4c2cbbc | |||
| 6a77893ed7 | |||
| 439094f74a | |||
| c78886e492 | |||
| 3edef118af | |||
| d6c2878491 | |||
| f101de5390 | |||
| 58d5f24069 | |||
| 2c8c146a5f | |||
| db60947749 | |||
| 717964affd | |||
| e0492595e1 | |||
| e56e3f3618 | |||
| fc083e7d81 | |||
| a6a6b036ca | |||
| b1fe32bdf2 | |||
| 6e9e5cb4d4 | |||
| f6b46784bf | |||
| fca8453a26 | |||
| 07e42ea60b | |||
| d85953e02f | |||
| d969d3b77c | |||
| 9fbd08eb25 | |||
| c19026c0ac | |||
| 7b740ea80d | |||
| 7a37566296 | |||
| 944b4f0827 | |||
| 69ff74911c | |||
| 68fe5357d2 | |||
| b583b00303 | |||
| a3b0a20357 | |||
| f1fc906ae5 | |||
| 96b21d0df9 | |||
| dc077d5ac6 | |||
| 08c9febd98 | |||
| c0e7f292a0 | |||
| 1bef5a6815 | |||
| ba4c7ed631 | |||
| 2188f16cff | |||
| 33b86e09ae | |||
| 22f6982c4c | |||
| 73fad024c0 | |||
| 5e6bb24c27 | |||
| 95e67b9870 | |||
| dfdb47b94a | |||
| d6a63a5de6 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -104,6 +104,9 @@ NetrworkManagerUI.prefab.meta
|
||||
CustomNetworkManager.prefab
|
||||
CustomNetworkManager.prefab.meta
|
||||
|
||||
#FMOD Studio
|
||||
DeltaVRFMOD/.cache
|
||||
|
||||
|
||||
# Project-specific files
|
||||
config.json
|
||||
@@ -1,36 +1,24 @@
|
||||
### TODO
|
||||
* korralik teleportation minigame'idesse, kasutades TeleportProviderit, nagu button
|
||||
* quest marker peaks jätma nähtavad noolekesed enda liikumise teele
|
||||
* teha build kus archery range'is spawnitud objektid
|
||||
* Unity crash after stopping the game - most likely due to FMOD trying to do something with invalid audio instances
|
||||
* pidev krabamise heli, kui kahe käega korraga krabada: "(Un)requesting ownership of Cube"
|
||||
* FMOD ChannelControl errorid
|
||||
* keyboard numbrid ei tööta pärast minigame'i completemist?
|
||||
* speech-to-text:
|
||||
* vahepeal lakkab töötamast lih??? tundub et siis kui pikalt tühjust salvestab? ei, vahepeal läheb kohe alguses ka
|
||||
* sööta talle nulle kui on disabled, sest ikka kuidagi tuvastab eelnevat rääkimist
|
||||
* uurida miks buildis Whisper halvemini töötab
|
||||
* proovida suuremat Whisperi mudelit, äkki töötab mürases keskkonnas paremini
|
||||
* igal pool, kus mängija peab rääkima, peaks olema:
|
||||
* helilained räägitava heli amplituudi põhjal
|
||||
* "loading" dünaamiline ikoon kui mängija ootab protsessimise järel
|
||||
* shape detection:
|
||||
* raadio nupp võiks töötada recording mode'is, mitte streamina - kui lased lahti, siis hakkab processima
|
||||
* professor võiks öelda "good job, continue..." pärast esimest successi
|
||||
* kui kõik configurationid tehtud, siis midagi juhtub: uks avaneb, quest marker läheb ukse juurde, professor ütleb "thank you"
|
||||
* peab mängijale kuidagi selgitama, kuidas scale'ida prinditud objekte
|
||||
* prinditud objekti scale'imisele min ja max size limiit
|
||||
* shape scanner mitte lihtsalt ontriggerenter ja -exit, sest kui mitu objekti lähevad samal ajal sisse
|
||||
* shape scanneris prinditud objektid mõnikord ei kao ära kui config success
|
||||
* archery range:
|
||||
* mute/unmute ikooni värv mitte must (muted kollane, roheline)
|
||||
* mikrofon peaks lõpetama protsessimise ka siis kui mängija läheb ära mikri juurest
|
||||
* mikril ontriggerenter collider peaks olema väiksem kui ontriggerexit collider
|
||||
* võiks jääda kordama viimast instruktsiooni, kui mängija ei progressi edasi
|
||||
* kui archery range läbi, võiks npc öelda "good job, try again..."
|
||||
* kui midagi laeb (wire aktiivne), siis particle'id võiks voolata mööda toru
|
||||
* highscore json tühjaks
|
||||
* cafe:
|
||||
* npc võiks olla keeratud sinu poole juba kaugelt
|
||||
* toit võiks tulla kandiku peal/sees
|
||||
* npc character:
|
||||
* klaas on näha temast eespool
|
||||
* voicelines: list listidest, mille hulgast saab valida
|
||||
* shape detection:
|
||||
* peab mängijale kuidagi selgitama, kuidas scale'ida prinditud objekte
|
||||
* prinditud objekti scale'imisele min ja max size limiit
|
||||
* 3d printerile soft particle'id, et ei oleks teravaid ääri seina sisse minnes
|
||||
* archery range:
|
||||
* archery targetite rework, et buildis ka töötaks
|
||||
* võiks jääda kordama viimast instruktsiooni, kui mängija ei progressi edasi
|
||||
* UFO möödalendamise animation/cutscene alguses kui ütleb "delta attacked by ufos" + panna juba alguses kapsli sisse ufo pöörlema
|
||||
* cafe:
|
||||
* võiks saada hinnata saadud tellimust
|
||||
* "order again" nupp
|
||||
|
||||
Can't/Won't Do:
|
||||
* glTF loading: vahetada ära shader Universal render pipeline Lit, mitte panna buildi kaasa glTf oma - **ei saa, objekt on siis ilma tekstuurita, lihtsalt hall**
|
||||
@@ -44,3 +32,8 @@ Can't/Won't Do:
|
||||
* Getting Whisper stream to work with FMOD instead of Unity default audio
|
||||
* TRELLIS: added functionality to specify texture baking optimisation total steps as an argument (`texture_opt_total_steps`), to replace the hardcoded 2500. But this is not tracked in Git (because modified this https://github.com/IgorAherne/trellis-stable-projectorz/releases/tag/latest)
|
||||
* Custom Shader Variant Collection to include glTF-pbrMetallicRoughness shader in build
|
||||
|
||||
Katse tähelepanekud:
|
||||
* peab väga proper english accenti tegema
|
||||
* mõne inimese puhul kuuleb "cat" asemel "cut"
|
||||
* kui helitugevus oli liiga suur siis cafe waiter kuulis kohviku taustaheli taldriku klirinat kui "piano music"
|
||||
|
||||
@@ -6,9 +6,17 @@ import numpy as np
|
||||
FRAME_DURATION = 0.02 # 20 ms windows
|
||||
GAIN = 1.0 # multiply RMS values (set to e.g. 30.0 if you want larger values)
|
||||
EXTENSION = ".txt" # output file extension
|
||||
OVERWRITE = False # set True to regenerate even if .txt exists
|
||||
|
||||
|
||||
def process_wav(filepath):
|
||||
# Compute output path first (so we can decide whether to skip)
|
||||
out_path = os.path.splitext(filepath)[0] + EXTENSION
|
||||
|
||||
if not OVERWRITE and os.path.exists(out_path):
|
||||
print(f"Skipping (already exists): {out_path}")
|
||||
return
|
||||
|
||||
print(f"Processing: {filepath}")
|
||||
|
||||
# Load audio
|
||||
@@ -29,7 +37,6 @@ def process_wav(filepath):
|
||||
rms = rms * GAIN
|
||||
|
||||
# Save to .txt
|
||||
out_path = os.path.splitext(filepath)[0] + EXTENSION
|
||||
np.savetxt(out_path, rms, fmt="%.8f")
|
||||
|
||||
print(f"Saved RMS → {out_path}")
|
||||
|
||||
@@ -0,0 +1,242 @@
|
||||
0.00000005
|
||||
0.00000003
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00036824
|
||||
0.03882600
|
||||
0.04177133
|
||||
0.02403286
|
||||
0.09960490
|
||||
0.10405141
|
||||
0.07374308
|
||||
0.07527987
|
||||
0.03196403
|
||||
0.01316589
|
||||
0.01331185
|
||||
0.03220127
|
||||
0.12253414
|
||||
0.14686617
|
||||
0.12083520
|
||||
0.10250615
|
||||
0.04661508
|
||||
0.01492038
|
||||
0.01040760
|
||||
0.01080491
|
||||
0.03343014
|
||||
0.03452057
|
||||
0.08047014
|
||||
0.13933837
|
||||
0.10572984
|
||||
0.09591001
|
||||
0.09608150
|
||||
0.08540177
|
||||
0.09933743
|
||||
0.10790430
|
||||
0.11058167
|
||||
0.13160037
|
||||
0.06650670
|
||||
0.03915674
|
||||
0.03693420
|
||||
0.04971446
|
||||
0.03620111
|
||||
0.06649657
|
||||
0.11552364
|
||||
0.10445996
|
||||
0.09714538
|
||||
0.08278799
|
||||
0.09152920
|
||||
0.08658629
|
||||
0.05098534
|
||||
0.02467363
|
||||
0.02987090
|
||||
0.02563231
|
||||
0.02510932
|
||||
0.02980772
|
||||
0.02069706
|
||||
0.01281166
|
||||
0.00566670
|
||||
0.00150570
|
||||
0.00020095
|
||||
0.00000742
|
||||
0.00000009
|
||||
0.00000012
|
||||
0.00000011
|
||||
0.00000010
|
||||
0.00000010
|
||||
0.00000009
|
||||
0.00000022
|
||||
0.00000005
|
||||
0.00001097
|
||||
0.04429267
|
||||
0.09924962
|
||||
0.09210955
|
||||
0.10632528
|
||||
0.10751414
|
||||
0.06163353
|
||||
0.05821634
|
||||
0.06596723
|
||||
0.04842441
|
||||
0.05856047
|
||||
0.10333158
|
||||
0.10103170
|
||||
0.08816345
|
||||
0.04771255
|
||||
0.04730519
|
||||
0.04158855
|
||||
0.05243348
|
||||
0.05098458
|
||||
0.03500115
|
||||
0.08092596
|
||||
0.09854711
|
||||
0.04113061
|
||||
0.01454402
|
||||
0.01907839
|
||||
0.03828202
|
||||
0.05046624
|
||||
0.04319734
|
||||
0.03666504
|
||||
0.04976141
|
||||
0.10466427
|
||||
0.13796268
|
||||
0.06061497
|
||||
0.07129071
|
||||
0.05450837
|
||||
0.05630979
|
||||
0.03684894
|
||||
0.01367352
|
||||
0.00608366
|
||||
0.06432867
|
||||
0.11517638
|
||||
0.05077915
|
||||
0.02521306
|
||||
0.09515605
|
||||
0.10619617
|
||||
0.08939873
|
||||
0.07993037
|
||||
0.04875693
|
||||
0.01546201
|
||||
0.00356502
|
||||
0.00079084
|
||||
0.02424777
|
||||
0.06102380
|
||||
0.11638185
|
||||
0.07587082
|
||||
0.02516444
|
||||
0.00761989
|
||||
0.00276396
|
||||
0.00242381
|
||||
0.11056973
|
||||
0.12456685
|
||||
0.11282478
|
||||
0.09799541
|
||||
0.08472683
|
||||
0.07964602
|
||||
0.05019686
|
||||
0.03458880
|
||||
0.06462081
|
||||
0.13280798
|
||||
0.10013983
|
||||
0.07293872
|
||||
0.04550291
|
||||
0.01720131
|
||||
0.00380182
|
||||
0.00101899
|
||||
0.02245994
|
||||
0.06382865
|
||||
0.10524299
|
||||
0.13267922
|
||||
0.10135622
|
||||
0.05452089
|
||||
0.03518274
|
||||
0.01694293
|
||||
0.00530868
|
||||
0.00184345
|
||||
0.02273818
|
||||
0.11510796
|
||||
0.11920995
|
||||
0.08493148
|
||||
0.08406932
|
||||
0.07499230
|
||||
0.04316685
|
||||
0.01455623
|
||||
0.00360244
|
||||
0.00098371
|
||||
0.00005477
|
||||
0.00000010
|
||||
0.00000002
|
||||
0.00000016
|
||||
0.00000019
|
||||
0.00000010
|
||||
0.00000005
|
||||
0.00000003
|
||||
0.00000004
|
||||
0.00000005
|
||||
0.00000004
|
||||
0.00000005
|
||||
0.00000005
|
||||
0.00000005
|
||||
0.00000005
|
||||
0.00000004
|
||||
0.00000004
|
||||
0.00000004
|
||||
0.00000004
|
||||
0.00000003
|
||||
0.00000003
|
||||
0.00000003
|
||||
0.00000003
|
||||
0.00000002
|
||||
0.00000003
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000000
|
||||
0.00000001
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00464831
|
||||
0.01679505
|
||||
0.01644613
|
||||
0.00761335
|
||||
0.04794521
|
||||
0.15165883
|
||||
0.14422260
|
||||
0.11421057
|
||||
0.10831729
|
||||
0.10226198
|
||||
0.09510653
|
||||
0.08230808
|
||||
0.06091324
|
||||
0.08704218
|
||||
0.11292138
|
||||
0.11823592
|
||||
0.07064166
|
||||
0.08501519
|
||||
0.10195074
|
||||
0.08617997
|
||||
0.09215603
|
||||
0.08520056
|
||||
0.07150462
|
||||
0.07387789
|
||||
0.07179367
|
||||
0.07710328
|
||||
0.09889054
|
||||
0.11394204
|
||||
0.12855592
|
||||
0.09594936
|
||||
0.05344614
|
||||
0.02629551
|
||||
0.00702043
|
||||
0.00639688
|
||||
0.00356133
|
||||
0.00343324
|
||||
0.00178488
|
||||
0.00017040
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d9e3dd6a9520c354e998bd0ad3a81f46
|
||||
guid: 38bc01876ee396a46b03ca91e612e687
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
Binary file not shown.
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 42e58ab8243a8c3449d391cc548d895c
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,257 @@
|
||||
0.00000005
|
||||
0.00000003
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.02866505
|
||||
0.03807113
|
||||
0.04488242
|
||||
0.10851473
|
||||
0.09911134
|
||||
0.08479626
|
||||
0.10611577
|
||||
0.12813284
|
||||
0.08128907
|
||||
0.07260925
|
||||
0.04148039
|
||||
0.01129543
|
||||
0.03132603
|
||||
0.04842420
|
||||
0.12944126
|
||||
0.12574370
|
||||
0.09939571
|
||||
0.08343700
|
||||
0.04287383
|
||||
0.01194310
|
||||
0.00638063
|
||||
0.00868709
|
||||
0.01998390
|
||||
0.03058048
|
||||
0.05329744
|
||||
0.13083695
|
||||
0.12668352
|
||||
0.10024661
|
||||
0.10386836
|
||||
0.08472306
|
||||
0.11218496
|
||||
0.14319295
|
||||
0.13648318
|
||||
0.13254981
|
||||
0.04781179
|
||||
0.03629516
|
||||
0.03413614
|
||||
0.03457404
|
||||
0.03213657
|
||||
0.05343652
|
||||
0.09439317
|
||||
0.12365869
|
||||
0.09173419
|
||||
0.09353486
|
||||
0.07192323
|
||||
0.03836626
|
||||
0.01338022
|
||||
0.00760281
|
||||
0.01999712
|
||||
0.02072252
|
||||
0.01272902
|
||||
0.00845736
|
||||
0.00641201
|
||||
0.00285632
|
||||
0.00061737
|
||||
0.00005392
|
||||
0.00000020
|
||||
0.00000018
|
||||
0.00000019
|
||||
0.00000017
|
||||
0.00000015
|
||||
0.00000016
|
||||
0.00000013
|
||||
0.00000011
|
||||
0.00000011
|
||||
0.00000008
|
||||
0.00000010
|
||||
0.00000006
|
||||
0.00000007
|
||||
0.00000003
|
||||
0.00782415
|
||||
0.01642422
|
||||
0.02543612
|
||||
0.05934152
|
||||
0.07718527
|
||||
0.11592234
|
||||
0.11971953
|
||||
0.06149256
|
||||
0.03805179
|
||||
0.05762681
|
||||
0.05818856
|
||||
0.04659332
|
||||
0.08668210
|
||||
0.10497145
|
||||
0.12429776
|
||||
0.11524499
|
||||
0.04751239
|
||||
0.02633372
|
||||
0.03824132
|
||||
0.04337949
|
||||
0.03293408
|
||||
0.03691372
|
||||
0.03303327
|
||||
0.07757192
|
||||
0.13191013
|
||||
0.09265970
|
||||
0.02088793
|
||||
0.02473713
|
||||
0.02916055
|
||||
0.03506608
|
||||
0.05408846
|
||||
0.03094980
|
||||
0.10444548
|
||||
0.15158002
|
||||
0.08798907
|
||||
0.04625344
|
||||
0.06151570
|
||||
0.05407208
|
||||
0.03231843
|
||||
0.01555239
|
||||
0.00728854
|
||||
0.04916612
|
||||
0.10232492
|
||||
0.07878979
|
||||
0.06246471
|
||||
0.05366619
|
||||
0.10158715
|
||||
0.11886908
|
||||
0.07526539
|
||||
0.02821623
|
||||
0.01340943
|
||||
0.00232617
|
||||
0.00036846
|
||||
0.03731488
|
||||
0.03152382
|
||||
0.03894958
|
||||
0.03209079
|
||||
0.00981623
|
||||
0.00146699
|
||||
0.00014517
|
||||
0.00534313
|
||||
0.06100523
|
||||
0.15190409
|
||||
0.10988420
|
||||
0.12650685
|
||||
0.11347217
|
||||
0.05970725
|
||||
0.04618064
|
||||
0.05150063
|
||||
0.03090077
|
||||
0.03317851
|
||||
0.08775605
|
||||
0.13566470
|
||||
0.10128807
|
||||
0.04527346
|
||||
0.01804154
|
||||
0.00596208
|
||||
0.00167694
|
||||
0.00009594
|
||||
0.00012192
|
||||
0.01358539
|
||||
0.07102436
|
||||
0.12123850
|
||||
0.12106773
|
||||
0.10533741
|
||||
0.13110749
|
||||
0.05361572
|
||||
0.02358464
|
||||
0.01034726
|
||||
0.00343355
|
||||
0.00162977
|
||||
0.03254148
|
||||
0.12353230
|
||||
0.12104879
|
||||
0.10228956
|
||||
0.07902068
|
||||
0.03294208
|
||||
0.01555405
|
||||
0.00885278
|
||||
0.00349990
|
||||
0.00085096
|
||||
0.00030811
|
||||
0.00001531
|
||||
0.00000017
|
||||
0.00000016
|
||||
0.00000014
|
||||
0.00000013
|
||||
0.00000013
|
||||
0.00000011
|
||||
0.00000029
|
||||
0.00000028
|
||||
0.00000010
|
||||
0.00000008
|
||||
0.00000007
|
||||
0.00000007
|
||||
0.00000005
|
||||
0.00000005
|
||||
0.00000003
|
||||
0.00000005
|
||||
0.00000002
|
||||
0.00000002
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000000
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000002
|
||||
0.00000002
|
||||
0.00000001
|
||||
0.00000002
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000456
|
||||
0.01129090
|
||||
0.01738315
|
||||
0.02089866
|
||||
0.01380159
|
||||
0.13116765
|
||||
0.11541200
|
||||
0.10767516
|
||||
0.11273928
|
||||
0.10450145
|
||||
0.08044391
|
||||
0.08610874
|
||||
0.07811639
|
||||
0.08932848
|
||||
0.09916812
|
||||
0.08233824
|
||||
0.07835159
|
||||
0.08648565
|
||||
0.08551071
|
||||
0.11009068
|
||||
0.12401471
|
||||
0.09915505
|
||||
0.07595969
|
||||
0.06414745
|
||||
0.06739331
|
||||
0.06131895
|
||||
0.09213228
|
||||
0.09952611
|
||||
0.08556054
|
||||
0.09036897
|
||||
0.08143000
|
||||
0.04082204
|
||||
0.01703065
|
||||
0.00659234
|
||||
0.00967564
|
||||
0.00593357
|
||||
0.00343951
|
||||
0.00107827
|
||||
0.00010090
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5898d7a0def449d47856bcc1ca7a29d6
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7cb93a4fb1b04374eaf023113b75af18
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,287 @@
|
||||
0.00000005
|
||||
0.00000003
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.01041133
|
||||
0.11050373
|
||||
0.11571781
|
||||
0.09685160
|
||||
0.06781394
|
||||
0.06115836
|
||||
0.02671054
|
||||
0.01714665
|
||||
0.01123293
|
||||
0.00581291
|
||||
0.00527384
|
||||
0.03901498
|
||||
0.11867370
|
||||
0.15407452
|
||||
0.09560385
|
||||
0.05615886
|
||||
0.04482845
|
||||
0.02856232
|
||||
0.08357130
|
||||
0.12180025
|
||||
0.11046895
|
||||
0.08895491
|
||||
0.08778770
|
||||
0.09132081
|
||||
0.04692575
|
||||
0.01269024
|
||||
0.00540550
|
||||
0.01323932
|
||||
0.03548777
|
||||
0.09886734
|
||||
0.10633425
|
||||
0.06211413
|
||||
0.04629371
|
||||
0.03601964
|
||||
0.03145342
|
||||
0.03699398
|
||||
0.02851260
|
||||
0.09810046
|
||||
0.12985127
|
||||
0.10250688
|
||||
0.07980689
|
||||
0.08739660
|
||||
0.04454322
|
||||
0.01042159
|
||||
0.02879480
|
||||
0.04266862
|
||||
0.01084313
|
||||
0.04596614
|
||||
0.13443977
|
||||
0.10879387
|
||||
0.04520948
|
||||
0.04018075
|
||||
0.02624859
|
||||
0.00865528
|
||||
0.00220818
|
||||
0.00292230
|
||||
0.00325043
|
||||
0.01547375
|
||||
0.10285073
|
||||
0.13288546
|
||||
0.06569756
|
||||
0.04191129
|
||||
0.00984927
|
||||
0.00487799
|
||||
0.00717907
|
||||
0.07125617
|
||||
0.14066201
|
||||
0.12093860
|
||||
0.12668209
|
||||
0.08771859
|
||||
0.08893538
|
||||
0.11586918
|
||||
0.09410246
|
||||
0.11251948
|
||||
0.06581375
|
||||
0.01573470
|
||||
0.00798749
|
||||
0.00473720
|
||||
0.00184862
|
||||
0.00599098
|
||||
0.01365598
|
||||
0.00891943
|
||||
0.00741468
|
||||
0.00870850
|
||||
0.12349596
|
||||
0.20865980
|
||||
0.11312929
|
||||
0.08664145
|
||||
0.12243897
|
||||
0.12067145
|
||||
0.08424711
|
||||
0.05526139
|
||||
0.04627320
|
||||
0.10428049
|
||||
0.08349684
|
||||
0.07010089
|
||||
0.02950357
|
||||
0.01629749
|
||||
0.01049282
|
||||
0.01468810
|
||||
0.02427274
|
||||
0.02904649
|
||||
0.02663092
|
||||
0.02238721
|
||||
0.01449317
|
||||
0.00891655
|
||||
0.00328868
|
||||
0.00101202
|
||||
0.00018072
|
||||
0.00000018
|
||||
0.00000022
|
||||
0.00001380
|
||||
0.00340936
|
||||
0.01070781
|
||||
0.02272540
|
||||
0.02303817
|
||||
0.01339627
|
||||
0.01482264
|
||||
0.02972042
|
||||
0.16883568
|
||||
0.13453023
|
||||
0.14972425
|
||||
0.08440456
|
||||
0.09065786
|
||||
0.05294919
|
||||
0.02135629
|
||||
0.00819955
|
||||
0.00474883
|
||||
0.00529746
|
||||
0.00265304
|
||||
0.00225529
|
||||
0.01425153
|
||||
0.08025608
|
||||
0.12780648
|
||||
0.10383718
|
||||
0.06637228
|
||||
0.06980769
|
||||
0.06826495
|
||||
0.05187644
|
||||
0.03362885
|
||||
0.01408524
|
||||
0.02797011
|
||||
0.04798624
|
||||
0.04473467
|
||||
0.06783500
|
||||
0.07362254
|
||||
0.03932714
|
||||
0.01432003
|
||||
0.00567656
|
||||
0.02164616
|
||||
0.02448191
|
||||
0.12810233
|
||||
0.14456984
|
||||
0.12034076
|
||||
0.12263951
|
||||
0.10216748
|
||||
0.08076008
|
||||
0.06284898
|
||||
0.04605800
|
||||
0.01751118
|
||||
0.04122978
|
||||
0.05452909
|
||||
0.06921396
|
||||
0.07712647
|
||||
0.05760632
|
||||
0.03222826
|
||||
0.02906787
|
||||
0.05488998
|
||||
0.05686560
|
||||
0.04881791
|
||||
0.06627714
|
||||
0.07501493
|
||||
0.06122237
|
||||
0.04391065
|
||||
0.04513443
|
||||
0.05685579
|
||||
0.06692855
|
||||
0.11950159
|
||||
0.09488340
|
||||
0.05996871
|
||||
0.12589936
|
||||
0.12426486
|
||||
0.08167235
|
||||
0.08727088
|
||||
0.09361180
|
||||
0.05560031
|
||||
0.02492296
|
||||
0.01225502
|
||||
0.02261247
|
||||
0.10637776
|
||||
0.10854032
|
||||
0.08564665
|
||||
0.06367619
|
||||
0.03858946
|
||||
0.01254055
|
||||
0.00857360
|
||||
0.00521010
|
||||
0.03276831
|
||||
0.05026552
|
||||
0.07917455
|
||||
0.12885508
|
||||
0.09776132
|
||||
0.04524392
|
||||
0.02057937
|
||||
0.00684326
|
||||
0.00172701
|
||||
0.00501310
|
||||
0.00338763
|
||||
0.00062568
|
||||
0.00007869
|
||||
0.00000011
|
||||
0.07221141
|
||||
0.13406493
|
||||
0.11343215
|
||||
0.06939244
|
||||
0.05757182
|
||||
0.05019560
|
||||
0.02351180
|
||||
0.00653620
|
||||
0.01007761
|
||||
0.03060259
|
||||
0.07896144
|
||||
0.11751062
|
||||
0.06696402
|
||||
0.03085680
|
||||
0.01771194
|
||||
0.05062816
|
||||
0.12535316
|
||||
0.09691679
|
||||
0.05669325
|
||||
0.03652356
|
||||
0.04995165
|
||||
0.10247808
|
||||
0.14754270
|
||||
0.10729573
|
||||
0.09490211
|
||||
0.08105871
|
||||
0.03237764
|
||||
0.01436423
|
||||
0.02403967
|
||||
0.06067147
|
||||
0.09486736
|
||||
0.11827907
|
||||
0.06557996
|
||||
0.01828207
|
||||
0.00410462
|
||||
0.00560886
|
||||
0.02666351
|
||||
0.10461742
|
||||
0.12328171
|
||||
0.11638515
|
||||
0.07130920
|
||||
0.06859463
|
||||
0.04690340
|
||||
0.02583032
|
||||
0.02004467
|
||||
0.04906425
|
||||
0.06766128
|
||||
0.10911208
|
||||
0.11592212
|
||||
0.09715220
|
||||
0.03466866
|
||||
0.01872768
|
||||
0.01205066
|
||||
0.03613232
|
||||
0.09832279
|
||||
0.14594945
|
||||
0.10550399
|
||||
0.13000724
|
||||
0.09247153
|
||||
0.04398929
|
||||
0.06428571
|
||||
0.04855256
|
||||
0.05265495
|
||||
0.02728924
|
||||
0.01480956
|
||||
0.01000638
|
||||
0.00291081
|
||||
0.00050468
|
||||
0.00004996
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7d61563367dd2174ebac733fc96d5a7c
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/StreamingAssets/CharacterVoicelines/Alien/Madis_Different_Target-001.wav
LFS
Normal file
BIN
Assets/StreamingAssets/CharacterVoicelines/Alien/Madis_Different_Target-001.wav
LFS
Normal file
Binary file not shown.
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 264f1b0a1d60ee44fb83104376fe62d6
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,292 @@
|
||||
0.00000005
|
||||
0.00000003
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00017371
|
||||
0.00397631
|
||||
0.00645893
|
||||
0.03636703
|
||||
0.11108588
|
||||
0.09490587
|
||||
0.05810735
|
||||
0.03614677
|
||||
0.01433622
|
||||
0.02562395
|
||||
0.03500152
|
||||
0.11138436
|
||||
0.11492082
|
||||
0.08813144
|
||||
0.11754254
|
||||
0.09585521
|
||||
0.05497217
|
||||
0.08569790
|
||||
0.10671677
|
||||
0.09063023
|
||||
0.10238150
|
||||
0.10540754
|
||||
0.07553490
|
||||
0.04124249
|
||||
0.01229520
|
||||
0.00533037
|
||||
0.00913266
|
||||
0.02397980
|
||||
0.10611945
|
||||
0.10192107
|
||||
0.07391837
|
||||
0.05137710
|
||||
0.05373237
|
||||
0.05023317
|
||||
0.03660126
|
||||
0.04064788
|
||||
0.03359168
|
||||
0.05470684
|
||||
0.14775619
|
||||
0.13745435
|
||||
0.10754745
|
||||
0.10044444
|
||||
0.08634765
|
||||
0.04968073
|
||||
0.02235863
|
||||
0.00676216
|
||||
0.01762132
|
||||
0.03200046
|
||||
0.01515087
|
||||
0.02490337
|
||||
0.03465642
|
||||
0.08731771
|
||||
0.05780291
|
||||
0.04214677
|
||||
0.03614981
|
||||
0.01129049
|
||||
0.00178883
|
||||
0.00043622
|
||||
0.00002077
|
||||
0.00790669
|
||||
0.03906181
|
||||
0.13493988
|
||||
0.12611340
|
||||
0.10359488
|
||||
0.05120334
|
||||
0.02121265
|
||||
0.00780912
|
||||
0.02118601
|
||||
0.08881138
|
||||
0.13246961
|
||||
0.13096575
|
||||
0.08698378
|
||||
0.07840307
|
||||
0.08006902
|
||||
0.08267396
|
||||
0.07665613
|
||||
0.06423858
|
||||
0.02234341
|
||||
0.00549498
|
||||
0.00242034
|
||||
0.00047552
|
||||
0.00005966
|
||||
0.03320520
|
||||
0.06114354
|
||||
0.05643975
|
||||
0.11037107
|
||||
0.13888292
|
||||
0.16179177
|
||||
0.10823945
|
||||
0.09318663
|
||||
0.08210272
|
||||
0.05253165
|
||||
0.04468418
|
||||
0.08318146
|
||||
0.09999528
|
||||
0.05302287
|
||||
0.02463017
|
||||
0.00933137
|
||||
0.00975701
|
||||
0.01784607
|
||||
0.02833371
|
||||
0.03651267
|
||||
0.04211179
|
||||
0.03161097
|
||||
0.02936525
|
||||
0.02278606
|
||||
0.01299867
|
||||
0.00431430
|
||||
0.00138863
|
||||
0.00027162
|
||||
0.00000123
|
||||
0.00000004
|
||||
0.00000005
|
||||
0.00000004
|
||||
0.00073564
|
||||
0.00535114
|
||||
0.01484067
|
||||
0.02635980
|
||||
0.02197363
|
||||
0.01175617
|
||||
0.01850840
|
||||
0.13574521
|
||||
0.13955091
|
||||
0.16727531
|
||||
0.10608624
|
||||
0.09235191
|
||||
0.08989335
|
||||
0.03222363
|
||||
0.01007234
|
||||
0.00426795
|
||||
0.00493753
|
||||
0.00278311
|
||||
0.00285112
|
||||
0.00889112
|
||||
0.02711722
|
||||
0.11798907
|
||||
0.12569274
|
||||
0.08584248
|
||||
0.06597847
|
||||
0.07110602
|
||||
0.05414321
|
||||
0.04401594
|
||||
0.01751132
|
||||
0.01334137
|
||||
0.03514252
|
||||
0.04998326
|
||||
0.05386503
|
||||
0.08303778
|
||||
0.05580477
|
||||
0.03294466
|
||||
0.01155389
|
||||
0.01592658
|
||||
0.01961545
|
||||
0.04122524
|
||||
0.14904048
|
||||
0.13972428
|
||||
0.12943657
|
||||
0.10712221
|
||||
0.08562635
|
||||
0.07122923
|
||||
0.05961891
|
||||
0.02759550
|
||||
0.01993110
|
||||
0.04310589
|
||||
0.07547285
|
||||
0.08173466
|
||||
0.06247975
|
||||
0.04214621
|
||||
0.03760689
|
||||
0.03115748
|
||||
0.05670190
|
||||
0.05714985
|
||||
0.06260712
|
||||
0.07415769
|
||||
0.07433423
|
||||
0.05062892
|
||||
0.04170515
|
||||
0.04818286
|
||||
0.05886082
|
||||
0.10128240
|
||||
0.10150870
|
||||
0.05131475
|
||||
0.11870202
|
||||
0.12748007
|
||||
0.09922212
|
||||
0.09134800
|
||||
0.11311474
|
||||
0.05401089
|
||||
0.04061917
|
||||
0.01249508
|
||||
0.00948702
|
||||
0.04186318
|
||||
0.11898167
|
||||
0.09532230
|
||||
0.09337173
|
||||
0.04848767
|
||||
0.02473678
|
||||
0.01069614
|
||||
0.00484177
|
||||
0.01662082
|
||||
0.04742326
|
||||
0.06200481
|
||||
0.12276933
|
||||
0.10882907
|
||||
0.08602326
|
||||
0.03015586
|
||||
0.00973329
|
||||
0.00328402
|
||||
0.00226518
|
||||
0.00784843
|
||||
0.00278660
|
||||
0.00034507
|
||||
0.00005544
|
||||
0.00514254
|
||||
0.11737227
|
||||
0.11911432
|
||||
0.06987587
|
||||
0.06208072
|
||||
0.05524339
|
||||
0.03672045
|
||||
0.01023218
|
||||
0.00268005
|
||||
0.02696391
|
||||
0.03711095
|
||||
0.11534176
|
||||
0.07793026
|
||||
0.06439523
|
||||
0.02477391
|
||||
0.02580977
|
||||
0.12326863
|
||||
0.10718736
|
||||
0.06945094
|
||||
0.04225161
|
||||
0.04650784
|
||||
0.05684860
|
||||
0.14646806
|
||||
0.12088709
|
||||
0.10804930
|
||||
0.09149216
|
||||
0.06569657
|
||||
0.01902741
|
||||
0.00708923
|
||||
0.03978205
|
||||
0.06555759
|
||||
0.13457091
|
||||
0.07263914
|
||||
0.03940162
|
||||
0.01395208
|
||||
0.00407308
|
||||
0.00785582
|
||||
0.07307136
|
||||
0.14730501
|
||||
0.12630911
|
||||
0.09076075
|
||||
0.05463418
|
||||
0.05033695
|
||||
0.03686942
|
||||
0.02131259
|
||||
0.03664210
|
||||
0.03732653
|
||||
0.07706883
|
||||
0.10262816
|
||||
0.11299729
|
||||
0.08176315
|
||||
0.03037785
|
||||
0.01326680
|
||||
0.01651880
|
||||
0.08489019
|
||||
0.12672557
|
||||
0.12814839
|
||||
0.13081826
|
||||
0.10027778
|
||||
0.06042381
|
||||
0.05928643
|
||||
0.04862963
|
||||
0.05942964
|
||||
0.03829884
|
||||
0.02554955
|
||||
0.01399406
|
||||
0.00600915
|
||||
0.00526958
|
||||
0.00088941
|
||||
0.00000848
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0a12bca9c495f844788cac4b3dc01528
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/StreamingAssets/CharacterVoicelines/Alien/Madis_Different_Target-002.wav
LFS
Normal file
BIN
Assets/StreamingAssets/CharacterVoicelines/Alien/Madis_Different_Target-002.wav
LFS
Normal file
Binary file not shown.
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8ff483912820c0c458c2960593f32d01
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,306 @@
|
||||
0.00000005
|
||||
0.00000003
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00008677
|
||||
0.02555647
|
||||
0.06356105
|
||||
0.06754274
|
||||
0.12535521
|
||||
0.11968394
|
||||
0.10654067
|
||||
0.08807448
|
||||
0.03094069
|
||||
0.01887335
|
||||
0.04522886
|
||||
0.10707195
|
||||
0.10807064
|
||||
0.11986617
|
||||
0.15139525
|
||||
0.12412844
|
||||
0.08856518
|
||||
0.09356070
|
||||
0.09514336
|
||||
0.07740945
|
||||
0.06272630
|
||||
0.05835729
|
||||
0.05653152
|
||||
0.04069148
|
||||
0.02248743
|
||||
0.00993187
|
||||
0.00186555
|
||||
0.00107107
|
||||
0.00120904
|
||||
0.00187453
|
||||
0.00111695
|
||||
0.00004033
|
||||
0.00000578
|
||||
0.00000037
|
||||
0.00000047
|
||||
0.00000041
|
||||
0.00000041
|
||||
0.00000036
|
||||
0.00000037
|
||||
0.00000030
|
||||
0.00000033
|
||||
0.00000027
|
||||
0.00000021
|
||||
0.00000026
|
||||
0.00000013
|
||||
0.00000017
|
||||
0.00000012
|
||||
0.00000011
|
||||
0.01054585
|
||||
0.05012132
|
||||
0.13717458
|
||||
0.13160563
|
||||
0.06083952
|
||||
0.03850145
|
||||
0.06312518
|
||||
0.08917529
|
||||
0.07733954
|
||||
0.03812576
|
||||
0.02091784
|
||||
0.02317895
|
||||
0.09112280
|
||||
0.10568590
|
||||
0.05461230
|
||||
0.01764572
|
||||
0.00752449
|
||||
0.00855657
|
||||
0.01883113
|
||||
0.11905217
|
||||
0.15466592
|
||||
0.14110537
|
||||
0.12407092
|
||||
0.09104393
|
||||
0.06492120
|
||||
0.05765026
|
||||
0.03929679
|
||||
0.01446094
|
||||
0.01584649
|
||||
0.01906035
|
||||
0.00225289
|
||||
0.03853673
|
||||
0.04068287
|
||||
0.12364593
|
||||
0.11614482
|
||||
0.09028992
|
||||
0.06433237
|
||||
0.02383663
|
||||
0.01381440
|
||||
0.00635609
|
||||
0.01836661
|
||||
0.02473579
|
||||
0.11016511
|
||||
0.10806321
|
||||
0.03348883
|
||||
0.01009692
|
||||
0.03878922
|
||||
0.07220570
|
||||
0.08639481
|
||||
0.07928380
|
||||
0.10606322
|
||||
0.10445405
|
||||
0.11997829
|
||||
0.09822565
|
||||
0.08011347
|
||||
0.04837793
|
||||
0.03226493
|
||||
0.03607234
|
||||
0.03278252
|
||||
0.03711180
|
||||
0.06834672
|
||||
0.07951122
|
||||
0.08939215
|
||||
0.08045211
|
||||
0.06378602
|
||||
0.03623512
|
||||
0.03542983
|
||||
0.13810526
|
||||
0.13145922
|
||||
0.08724828
|
||||
0.07982137
|
||||
0.07484215
|
||||
0.06310783
|
||||
0.03040927
|
||||
0.02398604
|
||||
0.01799416
|
||||
0.01170484
|
||||
0.00820995
|
||||
0.00466642
|
||||
0.00173959
|
||||
0.00026183
|
||||
0.00000286
|
||||
0.00000056
|
||||
0.00000045
|
||||
0.00000036
|
||||
0.00000037
|
||||
0.00000035
|
||||
0.00000034
|
||||
0.00000032
|
||||
0.00000030
|
||||
0.00000027
|
||||
0.00000027
|
||||
0.00000023
|
||||
0.00000022
|
||||
0.00000018
|
||||
0.00000018
|
||||
0.00000013
|
||||
0.00000013
|
||||
0.00000010
|
||||
0.00000010
|
||||
0.00000008
|
||||
0.00000004
|
||||
0.00000004
|
||||
0.00000003
|
||||
0.00000002
|
||||
0.00000003
|
||||
0.00000003
|
||||
0.00000002
|
||||
0.00000002
|
||||
0.00000004
|
||||
0.00000002
|
||||
0.01210695
|
||||
0.03104685
|
||||
0.09687874
|
||||
0.10992987
|
||||
0.06612710
|
||||
0.05232693
|
||||
0.07025713
|
||||
0.07789180
|
||||
0.05726887
|
||||
0.05102119
|
||||
0.05531616
|
||||
0.07071804
|
||||
0.07324490
|
||||
0.12500001
|
||||
0.13551877
|
||||
0.11463275
|
||||
0.09164570
|
||||
0.07969173
|
||||
0.08745047
|
||||
0.09294610
|
||||
0.08758718
|
||||
0.04984579
|
||||
0.01199116
|
||||
0.01887675
|
||||
0.01864040
|
||||
0.07235581
|
||||
0.10418790
|
||||
0.03615440
|
||||
0.00980441
|
||||
0.00221446
|
||||
0.03594533
|
||||
0.06812992
|
||||
0.11332203
|
||||
0.06093310
|
||||
0.05594898
|
||||
0.06496126
|
||||
0.08740044
|
||||
0.12233238
|
||||
0.09580570
|
||||
0.04772820
|
||||
0.02361993
|
||||
0.01078867
|
||||
0.03802064
|
||||
0.07909553
|
||||
0.08012012
|
||||
0.07333743
|
||||
0.05754400
|
||||
0.05097869
|
||||
0.07664723
|
||||
0.05694538
|
||||
0.04448567
|
||||
0.09419085
|
||||
0.06582000
|
||||
0.06082845
|
||||
0.03704552
|
||||
0.02209460
|
||||
0.00290526
|
||||
0.00198855
|
||||
0.00014714
|
||||
0.00000098
|
||||
0.00000014
|
||||
0.00000015
|
||||
0.00003012
|
||||
0.00101211
|
||||
0.00025446
|
||||
0.00000087
|
||||
0.00000012
|
||||
0.00000008
|
||||
0.00000007
|
||||
0.00000005
|
||||
0.00017385
|
||||
0.00057944
|
||||
0.00056784
|
||||
0.00059026
|
||||
0.00004644
|
||||
0.01499533
|
||||
0.03538585
|
||||
0.06983574
|
||||
0.06200712
|
||||
0.06784921
|
||||
0.06938390
|
||||
0.08049586
|
||||
0.07614776
|
||||
0.05881132
|
||||
0.11806823
|
||||
0.15041181
|
||||
0.12342727
|
||||
0.11753254
|
||||
0.10245495
|
||||
0.09522798
|
||||
0.09911717
|
||||
0.09732006
|
||||
0.07817753
|
||||
0.08756886
|
||||
0.05415813
|
||||
0.02474579
|
||||
0.02446261
|
||||
0.11357070
|
||||
0.11718469
|
||||
0.09938256
|
||||
0.08500034
|
||||
0.07520326
|
||||
0.07641556
|
||||
0.06648254
|
||||
0.06731120
|
||||
0.07971697
|
||||
0.08603772
|
||||
0.05109902
|
||||
0.09391770
|
||||
0.12228667
|
||||
0.05145732
|
||||
0.05202519
|
||||
0.06156273
|
||||
0.01560635
|
||||
0.00427968
|
||||
0.02421295
|
||||
0.03267565
|
||||
0.07683574
|
||||
0.02789398
|
||||
0.01183625
|
||||
0.01795142
|
||||
0.02549900
|
||||
0.04912534
|
||||
0.10022978
|
||||
0.09703911
|
||||
0.06528247
|
||||
0.05660536
|
||||
0.05310062
|
||||
0.02857801
|
||||
0.00309033
|
||||
0.00894551
|
||||
0.02781632
|
||||
0.00307855
|
||||
0.00136751
|
||||
0.01259168
|
||||
0.03591923
|
||||
0.02849875
|
||||
0.03123168
|
||||
0.01485326
|
||||
0.00356870
|
||||
0.00102485
|
||||
0.00086726
|
||||
0.00025258
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9e4ecb709f95cd241a9c5dc5558ab3b7
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5aa14328feee8ad47a37f50a3b07ae47
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,309 @@
|
||||
0.00000005
|
||||
0.00000003
|
||||
0.00000002
|
||||
0.00000004
|
||||
0.00001575
|
||||
0.00056058
|
||||
0.10512087
|
||||
0.06247878
|
||||
0.13907126
|
||||
0.10796085
|
||||
0.08928745
|
||||
0.04296236
|
||||
0.01589850
|
||||
0.03041418
|
||||
0.09944262
|
||||
0.09935775
|
||||
0.09998433
|
||||
0.11296503
|
||||
0.11884489
|
||||
0.10825495
|
||||
0.09847742
|
||||
0.08814481
|
||||
0.09157983
|
||||
0.09493581
|
||||
0.08478543
|
||||
0.06469711
|
||||
0.06443882
|
||||
0.04607481
|
||||
0.01910205
|
||||
0.00103388
|
||||
0.00010046
|
||||
0.00071292
|
||||
0.00033006
|
||||
0.00008951
|
||||
0.00007941
|
||||
0.00000031
|
||||
0.00011136
|
||||
0.00000019
|
||||
0.00000021
|
||||
0.00000018
|
||||
0.00000026
|
||||
0.00000008
|
||||
0.00000014
|
||||
0.00000015
|
||||
0.00000016
|
||||
0.00000012
|
||||
0.00000009
|
||||
0.00000007
|
||||
0.00000006
|
||||
0.00000005
|
||||
0.00000004
|
||||
0.00000002
|
||||
0.00000002
|
||||
0.00005185
|
||||
0.00000828
|
||||
0.02832398
|
||||
0.12830395
|
||||
0.16844831
|
||||
0.12687734
|
||||
0.06460033
|
||||
0.01894131
|
||||
0.03220102
|
||||
0.05880868
|
||||
0.06527510
|
||||
0.05140930
|
||||
0.03658038
|
||||
0.01398638
|
||||
0.02421561
|
||||
0.08997451
|
||||
0.08377688
|
||||
0.02418836
|
||||
0.00973439
|
||||
0.00599007
|
||||
0.00905722
|
||||
0.02651637
|
||||
0.10164079
|
||||
0.14320731
|
||||
0.12904300
|
||||
0.11029114
|
||||
0.07977970
|
||||
0.05571616
|
||||
0.06751201
|
||||
0.01764874
|
||||
0.00617195
|
||||
0.02489195
|
||||
0.01025172
|
||||
0.00284820
|
||||
0.04030944
|
||||
0.02575630
|
||||
0.11017919
|
||||
0.11959197
|
||||
0.06856420
|
||||
0.03276161
|
||||
0.01958396
|
||||
0.01616774
|
||||
0.02088996
|
||||
0.05009602
|
||||
0.07843453
|
||||
0.06901982
|
||||
0.02250954
|
||||
0.01337707
|
||||
0.02803325
|
||||
0.06195528
|
||||
0.07357799
|
||||
0.06418665
|
||||
0.09644670
|
||||
0.09922776
|
||||
0.11329394
|
||||
0.10822823
|
||||
0.09179486
|
||||
0.06035907
|
||||
0.05104551
|
||||
0.03396708
|
||||
0.05817677
|
||||
0.06630339
|
||||
0.04054824
|
||||
0.07112641
|
||||
0.05802667
|
||||
0.06763632
|
||||
0.06566662
|
||||
0.05350130
|
||||
0.03097204
|
||||
0.01398106
|
||||
0.03965144
|
||||
0.13338506
|
||||
0.14704359
|
||||
0.09780610
|
||||
0.06288150
|
||||
0.05591090
|
||||
0.05028389
|
||||
0.02308469
|
||||
0.02326990
|
||||
0.01427633
|
||||
0.01059657
|
||||
0.00597096
|
||||
0.00265677
|
||||
0.00096331
|
||||
0.00027705
|
||||
0.00081122
|
||||
0.00029532
|
||||
0.00003557
|
||||
0.00000033
|
||||
0.00000033
|
||||
0.00000032
|
||||
0.00000030
|
||||
0.00000028
|
||||
0.00000030
|
||||
0.00000022
|
||||
0.00000023
|
||||
0.00000021
|
||||
0.00000018
|
||||
0.00000015
|
||||
0.00000015
|
||||
0.00000014
|
||||
0.00000010
|
||||
0.00000007
|
||||
0.00000008
|
||||
0.00000004
|
||||
0.00000004
|
||||
0.00000002
|
||||
0.00000002
|
||||
0.00000002
|
||||
0.00000002
|
||||
0.00000002
|
||||
0.00008707
|
||||
0.00058412
|
||||
0.00013537
|
||||
0.00000516
|
||||
0.02347101
|
||||
0.04357265
|
||||
0.11365347
|
||||
0.08669745
|
||||
0.05095782
|
||||
0.06836279
|
||||
0.07590245
|
||||
0.07837829
|
||||
0.06091340
|
||||
0.05027740
|
||||
0.07152368
|
||||
0.12868381
|
||||
0.13290957
|
||||
0.11694506
|
||||
0.10228214
|
||||
0.10048629
|
||||
0.08879036
|
||||
0.03953559
|
||||
0.01065895
|
||||
0.02042474
|
||||
0.02315973
|
||||
0.05589612
|
||||
0.10023368
|
||||
0.05182547
|
||||
0.00905302
|
||||
0.00198392
|
||||
0.02186030
|
||||
0.04189350
|
||||
0.14410524
|
||||
0.09991421
|
||||
0.04756368
|
||||
0.06668478
|
||||
0.09321541
|
||||
0.11032545
|
||||
0.10434034
|
||||
0.08342411
|
||||
0.03306899
|
||||
0.01367741
|
||||
0.06044695
|
||||
0.09034430
|
||||
0.06164889
|
||||
0.06296910
|
||||
0.05844286
|
||||
0.04815272
|
||||
0.05400948
|
||||
0.07309759
|
||||
0.08802762
|
||||
0.15068236
|
||||
0.11547473
|
||||
0.05514836
|
||||
0.03452749
|
||||
0.01822943
|
||||
0.00416943
|
||||
0.00182502
|
||||
0.00100153
|
||||
0.00051689
|
||||
0.00018493
|
||||
0.00159059
|
||||
0.00043061
|
||||
0.00000588
|
||||
0.00000041
|
||||
0.00000057
|
||||
0.00000034
|
||||
0.00000041
|
||||
0.00015376
|
||||
0.00000841
|
||||
0.00085780
|
||||
0.01958037
|
||||
0.03508846
|
||||
0.08052298
|
||||
0.05665231
|
||||
0.05217534
|
||||
0.07203114
|
||||
0.06636944
|
||||
0.06487500
|
||||
0.06899809
|
||||
0.05801162
|
||||
0.13297467
|
||||
0.10661902
|
||||
0.09435981
|
||||
0.09961571
|
||||
0.10622018
|
||||
0.11464507
|
||||
0.10977937
|
||||
0.09725338
|
||||
0.09613403
|
||||
0.07686792
|
||||
0.04782833
|
||||
0.04779501
|
||||
0.02959961
|
||||
0.04014716
|
||||
0.10748242
|
||||
0.09299997
|
||||
0.08187937
|
||||
0.08289372
|
||||
0.10451850
|
||||
0.09585603
|
||||
0.10306562
|
||||
0.09885249
|
||||
0.09429167
|
||||
0.08828995
|
||||
0.08491156
|
||||
0.05210634
|
||||
0.06902108
|
||||
0.06840731
|
||||
0.03392952
|
||||
0.05985209
|
||||
0.05023765
|
||||
0.01092744
|
||||
0.00683205
|
||||
0.02457151
|
||||
0.09223298
|
||||
0.04956920
|
||||
0.01651768
|
||||
0.00484253
|
||||
0.00325285
|
||||
0.01828707
|
||||
0.03094625
|
||||
0.08162503
|
||||
0.09403877
|
||||
0.07717906
|
||||
0.05836591
|
||||
0.07295292
|
||||
0.03507503
|
||||
0.00875005
|
||||
0.00378138
|
||||
0.01026982
|
||||
0.00332591
|
||||
0.00306266
|
||||
0.01591836
|
||||
0.03091518
|
||||
0.02433426
|
||||
0.02051376
|
||||
0.00947862
|
||||
0.00142537
|
||||
0.00069377
|
||||
0.00004064
|
||||
0.00000018
|
||||
0.00000003
|
||||
0.00000002
|
||||
0.00007110
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d0ebb29a4c0d68b4da17bc19e7384990
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 97f150ec0d3d48a4db1ea667fe05b072
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,293 @@
|
||||
0.00000006
|
||||
0.00000004
|
||||
0.00000000
|
||||
0.00000876
|
||||
0.00000012
|
||||
0.00004277
|
||||
0.05436340
|
||||
0.17665382
|
||||
0.12990713
|
||||
0.12583591
|
||||
0.13277286
|
||||
0.13517515
|
||||
0.12306246
|
||||
0.12600669
|
||||
0.12459808
|
||||
0.10394835
|
||||
0.09309749
|
||||
0.09333178
|
||||
0.07643553
|
||||
0.05511052
|
||||
0.04393115
|
||||
0.02941259
|
||||
0.03382056
|
||||
0.02038616
|
||||
0.01548435
|
||||
0.01363530
|
||||
0.01174366
|
||||
0.00893834
|
||||
0.00600578
|
||||
0.00371616
|
||||
0.00200703
|
||||
0.00146441
|
||||
0.00025279
|
||||
0.00000120
|
||||
0.00000023
|
||||
0.00000033
|
||||
0.00000023
|
||||
0.00000020
|
||||
0.00000020
|
||||
0.00000015
|
||||
0.00000013
|
||||
0.00000013
|
||||
0.00000010
|
||||
0.00000008
|
||||
0.00000008
|
||||
0.00011547
|
||||
0.03884210
|
||||
0.11290570
|
||||
0.14032798
|
||||
0.11392568
|
||||
0.10667438
|
||||
0.11704497
|
||||
0.08145794
|
||||
0.03876734
|
||||
0.01617737
|
||||
0.00410597
|
||||
0.03786850
|
||||
0.01552934
|
||||
0.08146030
|
||||
0.12936532
|
||||
0.10310936
|
||||
0.04261066
|
||||
0.01968959
|
||||
0.01155729
|
||||
0.01246085
|
||||
0.01643562
|
||||
0.02611092
|
||||
0.06975007
|
||||
0.06647281
|
||||
0.04812134
|
||||
0.06127471
|
||||
0.04931017
|
||||
0.05622455
|
||||
0.09936404
|
||||
0.13729018
|
||||
0.09841577
|
||||
0.05966850
|
||||
0.01680984
|
||||
0.00261750
|
||||
0.00143242
|
||||
0.01419471
|
||||
0.04943705
|
||||
0.04137772
|
||||
0.03587830
|
||||
0.03199233
|
||||
0.03906901
|
||||
0.03574416
|
||||
0.03229308
|
||||
0.03190199
|
||||
0.04779297
|
||||
0.04261694
|
||||
0.04245671
|
||||
0.04589238
|
||||
0.05662980
|
||||
0.05274693
|
||||
0.05354149
|
||||
0.04374932
|
||||
0.03250221
|
||||
0.01861564
|
||||
0.01963406
|
||||
0.00308434
|
||||
0.00011245
|
||||
0.00000138
|
||||
0.00004786
|
||||
0.00000296
|
||||
0.00000008
|
||||
0.00040744
|
||||
0.01232126
|
||||
0.00401640
|
||||
0.00080837
|
||||
0.00001568
|
||||
0.00000014
|
||||
0.00000001
|
||||
0.00000000
|
||||
0.00000001
|
||||
0.00000000
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00000001
|
||||
0.00137698
|
||||
0.00120946
|
||||
0.00037309
|
||||
0.00001546
|
||||
0.00019473
|
||||
0.05597774
|
||||
0.05349650
|
||||
0.07315911
|
||||
0.10007664
|
||||
0.12148964
|
||||
0.10390536
|
||||
0.11813873
|
||||
0.12236188
|
||||
0.07448173
|
||||
0.07163881
|
||||
0.03668909
|
||||
0.00482586
|
||||
0.00674204
|
||||
0.03587620
|
||||
0.16254307
|
||||
0.15529911
|
||||
0.04756048
|
||||
0.01177680
|
||||
0.00713155
|
||||
0.09382056
|
||||
0.10292054
|
||||
0.16375251
|
||||
0.13605520
|
||||
0.05452843
|
||||
0.09455058
|
||||
0.12224557
|
||||
0.13256259
|
||||
0.09879588
|
||||
0.06324653
|
||||
0.02657961
|
||||
0.01032267
|
||||
0.00230831
|
||||
0.02871299
|
||||
0.07454104
|
||||
0.13230723
|
||||
0.08707617
|
||||
0.04283587
|
||||
0.02152865
|
||||
0.08970764
|
||||
0.15705778
|
||||
0.13232288
|
||||
0.11249097
|
||||
0.12094339
|
||||
0.09471517
|
||||
0.08165064
|
||||
0.05688582
|
||||
0.06236089
|
||||
0.06496719
|
||||
0.07772935
|
||||
0.07066742
|
||||
0.06583010
|
||||
0.06023704
|
||||
0.05579713
|
||||
0.03196885
|
||||
0.02167577
|
||||
0.00885445
|
||||
0.00054829
|
||||
0.00120143
|
||||
0.05003724
|
||||
0.05701566
|
||||
0.05554289
|
||||
0.06652608
|
||||
0.06286423
|
||||
0.07321317
|
||||
0.10022882
|
||||
0.08733696
|
||||
0.05627337
|
||||
0.00893717
|
||||
0.05115506
|
||||
0.02904028
|
||||
0.03742857
|
||||
0.05691869
|
||||
0.04722928
|
||||
0.04761178
|
||||
0.11284457
|
||||
0.06448554
|
||||
0.01647628
|
||||
0.00811301
|
||||
0.00184246
|
||||
0.00095617
|
||||
0.03380137
|
||||
0.05253933
|
||||
0.09993897
|
||||
0.08770414
|
||||
0.06539877
|
||||
0.06725874
|
||||
0.05866503
|
||||
0.02927921
|
||||
0.00474572
|
||||
0.00449728
|
||||
0.00220470
|
||||
0.03732991
|
||||
0.16716687
|
||||
0.13160835
|
||||
0.11313587
|
||||
0.09361040
|
||||
0.08533838
|
||||
0.05350770
|
||||
0.01132886
|
||||
0.00188624
|
||||
0.00224469
|
||||
0.04322987
|
||||
0.14946128
|
||||
0.11786281
|
||||
0.09559109
|
||||
0.08745537
|
||||
0.06887340
|
||||
0.06453345
|
||||
0.14468354
|
||||
0.15365960
|
||||
0.08112232
|
||||
0.05636847
|
||||
0.05092329
|
||||
0.06082837
|
||||
0.05791784
|
||||
0.03492959
|
||||
0.01728887
|
||||
0.01145544
|
||||
0.03110087
|
||||
0.06301248
|
||||
0.08440568
|
||||
0.02886192
|
||||
0.02436969
|
||||
0.06101014
|
||||
0.06737709
|
||||
0.12571132
|
||||
0.13595617
|
||||
0.11148004
|
||||
0.02669337
|
||||
0.00637604
|
||||
0.00583108
|
||||
0.04190948
|
||||
0.12353806
|
||||
0.13185968
|
||||
0.10900982
|
||||
0.09392569
|
||||
0.07719076
|
||||
0.06124953
|
||||
0.04566133
|
||||
0.03477211
|
||||
0.02629414
|
||||
0.02993021
|
||||
0.03762943
|
||||
0.05084812
|
||||
0.03652138
|
||||
0.05007470
|
||||
0.11358684
|
||||
0.14574684
|
||||
0.11534683
|
||||
0.09708887
|
||||
0.06805480
|
||||
0.04739871
|
||||
0.04391212
|
||||
0.04065108
|
||||
0.02693054
|
||||
0.01430396
|
||||
0.00508704
|
||||
0.00183298
|
||||
0.00007207
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 62632355e21a84c4c84e476062ab8670
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/StreamingAssets/CharacterVoicelines/Professor/Madis_Worry-001.wav
LFS
Normal file
BIN
Assets/StreamingAssets/CharacterVoicelines/Professor/Madis_Worry-001.wav
LFS
Normal file
Binary file not shown.
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7a43d69a404558844883b6d1e9ccc6a6
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,268 @@
|
||||
0.00000005
|
||||
0.00000003
|
||||
0.00240253
|
||||
0.02907968
|
||||
0.10503523
|
||||
0.13422142
|
||||
0.12195620
|
||||
0.13128196
|
||||
0.13441545
|
||||
0.10902201
|
||||
0.11511548
|
||||
0.12498570
|
||||
0.10779791
|
||||
0.08748529
|
||||
0.09270831
|
||||
0.08885102
|
||||
0.07140992
|
||||
0.07817293
|
||||
0.05512253
|
||||
0.07312962
|
||||
0.05332483
|
||||
0.02952465
|
||||
0.00628433
|
||||
0.00322687
|
||||
0.01116481
|
||||
0.02963358
|
||||
0.09202230
|
||||
0.10785520
|
||||
0.09845226
|
||||
0.10343045
|
||||
0.09329684
|
||||
0.04513930
|
||||
0.02688077
|
||||
0.01212403
|
||||
0.04465980
|
||||
0.02088372
|
||||
0.02843172
|
||||
0.14170074
|
||||
0.14037681
|
||||
0.08236120
|
||||
0.02720438
|
||||
0.01238582
|
||||
0.01198153
|
||||
0.01171427
|
||||
0.04087922
|
||||
0.11383022
|
||||
0.10109381
|
||||
0.08515322
|
||||
0.04896748
|
||||
0.04567009
|
||||
0.02929136
|
||||
0.06172283
|
||||
0.11550593
|
||||
0.09598164
|
||||
0.07837296
|
||||
0.02478683
|
||||
0.00525718
|
||||
0.00181524
|
||||
0.00970324
|
||||
0.07209075
|
||||
0.09798092
|
||||
0.07967266
|
||||
0.06513842
|
||||
0.05123381
|
||||
0.05027419
|
||||
0.04282681
|
||||
0.04678136
|
||||
0.06629726
|
||||
0.04876049
|
||||
0.04369129
|
||||
0.03766395
|
||||
0.04394144
|
||||
0.04186778
|
||||
0.05153219
|
||||
0.04662358
|
||||
0.03369124
|
||||
0.02084255
|
||||
0.01368451
|
||||
0.00168093
|
||||
0.00043239
|
||||
0.00004149
|
||||
0.00041319
|
||||
0.00029644
|
||||
0.00001294
|
||||
0.00009876
|
||||
0.01724320
|
||||
0.00515795
|
||||
0.00088585
|
||||
0.00000051
|
||||
0.00000013
|
||||
0.00000001
|
||||
0.00000002
|
||||
0.00000002
|
||||
0.00000002
|
||||
0.00029903
|
||||
0.00017885
|
||||
0.00173300
|
||||
0.03660622
|
||||
0.08778569
|
||||
0.08299683
|
||||
0.08249202
|
||||
0.07836448
|
||||
0.07183830
|
||||
0.09798677
|
||||
0.10288965
|
||||
0.07641125
|
||||
0.07789677
|
||||
0.06810252
|
||||
0.00654751
|
||||
0.00414498
|
||||
0.01800906
|
||||
0.10378619
|
||||
0.10797114
|
||||
0.02479648
|
||||
0.00965088
|
||||
0.01219227
|
||||
0.07751130
|
||||
0.11227150
|
||||
0.14128794
|
||||
0.06956887
|
||||
0.05905581
|
||||
0.10559428
|
||||
0.11890519
|
||||
0.08814315
|
||||
0.05743459
|
||||
0.02042473
|
||||
0.00343255
|
||||
0.02520813
|
||||
0.04550547
|
||||
0.11568366
|
||||
0.09366174
|
||||
0.04345708
|
||||
0.03914818
|
||||
0.07486159
|
||||
0.13059510
|
||||
0.15400928
|
||||
0.13821089
|
||||
0.12171482
|
||||
0.10681405
|
||||
0.08661242
|
||||
0.06828332
|
||||
0.04075309
|
||||
0.05218672
|
||||
0.07257383
|
||||
0.07887270
|
||||
0.08816109
|
||||
0.09971622
|
||||
0.08168958
|
||||
0.05080761
|
||||
0.02718288
|
||||
0.00490109
|
||||
0.00417936
|
||||
0.01302431
|
||||
0.01342031
|
||||
0.01449505
|
||||
0.01702639
|
||||
0.01002846
|
||||
0.00135636
|
||||
0.00615288
|
||||
0.00988699
|
||||
0.05511121
|
||||
0.13424085
|
||||
0.13549428
|
||||
0.12707625
|
||||
0.10175641
|
||||
0.09349026
|
||||
0.08078031
|
||||
0.10017768
|
||||
0.09641082
|
||||
0.05651959
|
||||
0.02388979
|
||||
0.03372757
|
||||
0.02807933
|
||||
0.06420366
|
||||
0.05765516
|
||||
0.10705915
|
||||
0.12931576
|
||||
0.06605592
|
||||
0.01316365
|
||||
0.00862626
|
||||
0.00548033
|
||||
0.00231362
|
||||
0.05162323
|
||||
0.02771896
|
||||
0.04052469
|
||||
0.06053808
|
||||
0.04970683
|
||||
0.04813053
|
||||
0.03046989
|
||||
0.00504421
|
||||
0.00297387
|
||||
0.00175442
|
||||
0.03428232
|
||||
0.16087463
|
||||
0.14309265
|
||||
0.11838740
|
||||
0.07561675
|
||||
0.07153413
|
||||
0.06790428
|
||||
0.03115408
|
||||
0.00911597
|
||||
0.03592220
|
||||
0.12518162
|
||||
0.14040351
|
||||
0.13036409
|
||||
0.08447693
|
||||
0.08117232
|
||||
0.06552082
|
||||
0.09590764
|
||||
0.13285699
|
||||
0.12561189
|
||||
0.06799156
|
||||
0.04766290
|
||||
0.04445734
|
||||
0.03842782
|
||||
0.02435055
|
||||
0.01544531
|
||||
0.01147488
|
||||
0.01724531
|
||||
0.10274742
|
||||
0.08165291
|
||||
0.02878892
|
||||
0.04548312
|
||||
0.05494404
|
||||
0.07406324
|
||||
0.12911624
|
||||
0.12757473
|
||||
0.11833390
|
||||
0.03788988
|
||||
0.01097155
|
||||
0.00298281
|
||||
0.00275654
|
||||
0.02835943
|
||||
0.14801164
|
||||
0.12368125
|
||||
0.11705162
|
||||
0.08316845
|
||||
0.07073751
|
||||
0.07032350
|
||||
0.07200280
|
||||
0.05796322
|
||||
0.03717402
|
||||
0.02600084
|
||||
0.02813455
|
||||
0.03365216
|
||||
0.03137246
|
||||
0.02250615
|
||||
0.06806763
|
||||
0.12442078
|
||||
0.12454491
|
||||
0.12151590
|
||||
0.09865309
|
||||
0.07201285
|
||||
0.05476528
|
||||
0.04899836
|
||||
0.04472922
|
||||
0.04327874
|
||||
0.03483583
|
||||
0.02293462
|
||||
0.01217319
|
||||
0.00345893
|
||||
0.00050839
|
||||
0.00024330
|
||||
0.00011198
|
||||
0.00018678
|
||||
0.00008502
|
||||
0.00005998
|
||||
0.00000075
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6789c915ab4332b4f9a2a5e01a0b1d32
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/StreamingAssets/CharacterVoicelines/Professor/Madis_Worry-002.wav
LFS
Normal file
BIN
Assets/StreamingAssets/CharacterVoicelines/Professor/Madis_Worry-002.wav
LFS
Normal file
Binary file not shown.
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7bb958a26428f774dae23140e390d603
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/StreamingAssets/Whisper/ggml-base.en.bin
Normal file
BIN
Assets/StreamingAssets/Whisper/ggml-base.en.bin
Normal file
Binary file not shown.
7
Assets/StreamingAssets/Whisper/ggml-base.en.bin.meta
Normal file
7
Assets/StreamingAssets/Whisper/ggml-base.en.bin.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4fef61b9ad4f7eb488ea2657f1cc700e
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/StreamingAssets/Whisper/ggml-tiny.bin
Normal file
BIN
Assets/StreamingAssets/Whisper/ggml-tiny.bin
Normal file
Binary file not shown.
7
Assets/StreamingAssets/Whisper/ggml-tiny.bin.meta
Normal file
7
Assets/StreamingAssets/Whisper/ggml-tiny.bin.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6f5a0c98d09a6dc4d9d570e23dc96ab9
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -85,7 +85,6 @@ public class ArcheryRange : NetworkBehaviour
|
||||
_presentPlayers.Remove(exitedPlayer); // Shifts others left automatically
|
||||
|
||||
if (exitedPlayer == _scoredPlayer) keyboardManager.DeActivate(); // If the player <20>refuses to enter their name.
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -145,6 +144,7 @@ public class ArcheryRange : NetworkBehaviour
|
||||
targetObject = Instantiate(modelDisplay.Model, randomPos, Quaternion.identity, null);
|
||||
InitializeArcheryTargetObject(targetObject);
|
||||
}
|
||||
targetObject.transform.rotation = targetStartPosition.rotation;
|
||||
|
||||
ArcheryTarget target = targetObject.GetComponent<ArcheryTarget>();
|
||||
target.endPosition = targetEndPosition.position;
|
||||
|
||||
@@ -8,6 +8,11 @@ public class KeyboardManager : NetworkBehaviour
|
||||
{
|
||||
public enum ShiftMode { Lowercase, NextUppercase, Uppercase }
|
||||
|
||||
public delegate void OnActivateDelegate();
|
||||
public event OnActivateDelegate OnActivate;
|
||||
public delegate void OnSubmitDelegate();
|
||||
public event OnSubmitDelegate OnSubmit;
|
||||
|
||||
[Header("UI References")]
|
||||
public TMP_Text nameTextField;
|
||||
public TMP_Text scoreTextField;
|
||||
@@ -57,6 +62,7 @@ public class KeyboardManager : NetworkBehaviour
|
||||
gameObject.transform.position = assignedTransform.position;
|
||||
gameObject.transform.rotation = assignedTransform.rotation;
|
||||
|
||||
OnActivate?.Invoke();
|
||||
}
|
||||
|
||||
public void DeActivate()
|
||||
@@ -64,7 +70,7 @@ public class KeyboardManager : NetworkBehaviour
|
||||
gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
private void addToInput(string newInput)
|
||||
private void AddToInput(string newInput)
|
||||
{
|
||||
|
||||
if (_input.Length < inputTextLimit)
|
||||
@@ -82,13 +88,13 @@ public class KeyboardManager : NetworkBehaviour
|
||||
switch (_shiftMode)
|
||||
{
|
||||
case ShiftMode.Lowercase:
|
||||
addToInput(letter.ToLower());
|
||||
AddToInput(letter.ToLower());
|
||||
break;
|
||||
case ShiftMode.Uppercase:
|
||||
addToInput(letter.ToUpper());
|
||||
AddToInput(letter.ToUpper());
|
||||
break;
|
||||
case ShiftMode.NextUppercase:
|
||||
addToInput(letter.ToUpper());
|
||||
AddToInput(letter.ToUpper());
|
||||
_shiftMode = ShiftMode.Lowercase;
|
||||
UpdateKeyLabels();
|
||||
break;
|
||||
@@ -124,6 +130,7 @@ public class KeyboardManager : NetworkBehaviour
|
||||
void OnEnterPressed()
|
||||
{
|
||||
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.LetterEnter, enterButton.gameObject);
|
||||
OnSubmit?.Invoke();
|
||||
|
||||
if (_input.Length > 0)
|
||||
{
|
||||
@@ -136,7 +143,7 @@ public class KeyboardManager : NetworkBehaviour
|
||||
{
|
||||
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.LetterEnter, spaceButton.gameObject);
|
||||
|
||||
addToInput(" ");
|
||||
AddToInput(" ");
|
||||
UpdateOutput();
|
||||
}
|
||||
|
||||
|
||||
@@ -10365,6 +10365,11 @@ PrefabInstance:
|
||||
propertyPath: leftHand
|
||||
value:
|
||||
objectReference: {fileID: 8597422041532106397}
|
||||
- target: {fileID: 3290095342561961842, guid: d90913a7f0b00844a8c4482b2afc2c66,
|
||||
type: 3}
|
||||
propertyPath: m_Enabled
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3290095342561961842, guid: d90913a7f0b00844a8c4482b2afc2c66,
|
||||
type: 3}
|
||||
propertyPath: rightHand
|
||||
@@ -10390,6 +10395,11 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: TutorialController
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6405559763661037305, guid: d90913a7f0b00844a8c4482b2afc2c66,
|
||||
type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
|
||||
@@ -168,20 +168,14 @@ public class TutorialAudioListener : MonoBehaviour
|
||||
|
||||
private EventReference GetGrabEvent(GrabSoundType type)
|
||||
{
|
||||
switch (type)
|
||||
return type switch
|
||||
{
|
||||
case GrabSoundType.Bow:
|
||||
return FMODEvents.Instance.BowGrab;
|
||||
|
||||
case GrabSoundType.Sprayer:
|
||||
return FMODEvents.Instance.SprayerGrab;
|
||||
|
||||
GrabSoundType.Bow => FMODEvents.Instance.BowGrab,
|
||||
GrabSoundType.Sprayer => FMODEvents.Instance.SprayerGrab,
|
||||
//Add more objects for grabbing here and do not forget to define them in FMODEvents.cs
|
||||
//Add the GrabAudioProfile.cs component to an object instance
|
||||
|
||||
default:
|
||||
return FMODEvents.Instance.DefaultGrab;
|
||||
}
|
||||
_ => FMODEvents.Instance.DefaultGrab,
|
||||
};
|
||||
}
|
||||
|
||||
private void HandleGrab(XRGrabInteractable grab)
|
||||
@@ -195,10 +189,6 @@ public class TutorialAudioListener : MonoBehaviour
|
||||
: GrabSoundType.Default;
|
||||
|
||||
EventReference grabEvent = GetGrabEvent(type);
|
||||
Debug.Log(grabEvent);
|
||||
AudioManager.Instance.PlayAttachedInstance(grabEvent, grab.gameObject);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@ namespace _PROJECT.NewHandPresence
|
||||
|
||||
private XRControllerHintController _leftHintController;
|
||||
private XRControllerHintController _rightHintController;
|
||||
private XRBaseInteractor lastInteractor = null;
|
||||
|
||||
private SmartHandPresence _leftSmartHandPresence;
|
||||
private SmartHandPresence _rightSmartHandPresence;
|
||||
@@ -244,15 +245,21 @@ namespace _PROJECT.NewHandPresence
|
||||
StopCoroutine(initializationInfoCoroutine);
|
||||
}
|
||||
|
||||
private void OnGripPerformed(SelectEnterEventArgs arg0)
|
||||
private void OnGripPerformed(SelectEnterEventArgs args)
|
||||
{
|
||||
var grab = arg0.interactableObject as XRGrabInteractable;
|
||||
|
||||
// Notify any listeners
|
||||
OnGrab?.Invoke(grab);
|
||||
var interactor = args.interactorObject as XRBaseInteractor;
|
||||
var interactable = args.interactableObject as XRGrabInteractable;
|
||||
|
||||
if (_state != TutorialState.Grip) return;
|
||||
Debug.Log("Grip performed");
|
||||
if (lastInteractor == interactor)
|
||||
return; // same hand grabbing again
|
||||
|
||||
lastInteractor = interactor;
|
||||
|
||||
|
||||
OnGrab?.Invoke(interactable as XRGrabInteractable);
|
||||
|
||||
if (_state == TutorialState.Grip)
|
||||
UpdateState(_state.Next());
|
||||
}
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ namespace _PROJECT.Multiplayer.NewBow
|
||||
|
||||
public void SetLaunchDirection(Vector3 direction)
|
||||
{
|
||||
Debug.Log("Setting launch direction: " + direction);
|
||||
// Debug.Log("Setting launch direction: " + direction);
|
||||
if (direction != Vector3.zero)
|
||||
{
|
||||
_networkBehavior.SetLaunchDirection(direction);
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Assets/_PROJECT/Images/mic_off_grey.png
LFS
Normal file
BIN
Assets/_PROJECT/Images/mic_off_grey.png
LFS
Normal file
Binary file not shown.
148
Assets/_PROJECT/Images/mic_off_grey.png.meta
Normal file
148
Assets/_PROJECT/Images/mic_off_grey.png.meta
Normal file
@@ -0,0 +1,148 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7d9a2d0479a3d2f4fb6ac783fb358703
|
||||
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
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 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: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 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
|
||||
- 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: Server
|
||||
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: Windows Store Apps
|
||||
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: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/_PROJECT/Images/mic_on_green 1.png
LFS
Normal file
BIN
Assets/_PROJECT/Images/mic_on_green 1.png
LFS
Normal file
Binary file not shown.
148
Assets/_PROJECT/Images/mic_on_green 1.png.meta
Normal file
148
Assets/_PROJECT/Images/mic_on_green 1.png.meta
Normal file
@@ -0,0 +1,148 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b542f982d9872074ba861c98124f091b
|
||||
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
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 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: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 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
|
||||
- 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: Server
|
||||
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: Windows Store Apps
|
||||
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: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -7,13 +7,14 @@ Material:
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Green
|
||||
m_Name: EmissiveGreen
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_ValidKeywords:
|
||||
- _EMISSION
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_LightmapFlags: 1
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
@@ -115,7 +116,7 @@ Material:
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0, g: 1, b: 0.0381248, a: 1}
|
||||
- _Color: {r: 0, g: 1, b: 0.0381248, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissionColor: {r: 0.14076614, g: 1, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
--- !u!114 &6221994712197478572
|
||||
@@ -20,15 +20,16 @@ Material:
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Loading
|
||||
m_Name: EmissiveRed
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _EMISSION
|
||||
- _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
|
||||
- _SPECULAR_SETUP
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_LightmapFlags: 1
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 2000
|
||||
@@ -130,6 +131,6 @@ Material:
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _Color: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissionColor: {r: 1, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
BIN
Assets/_PROJECT/Models/ModelGeneration/ServingTray.fbx
LFS
Normal file
BIN
Assets/_PROJECT/Models/ModelGeneration/ServingTray.fbx
LFS
Normal file
Binary file not shown.
108
Assets/_PROJECT/Models/ModelGeneration/ServingTray.fbx.meta
Normal file
108
Assets/_PROJECT/Models/ModelGeneration/ServingTray.fbx.meta
Normal file
@@ -0,0 +1,108 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3d938fc5df676394d8a29eb15002c190
|
||||
ModelImporter:
|
||||
serializedVersion: 22200
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
materials:
|
||||
materialImportMode: 2
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 0
|
||||
removeConstantScaleCurves: 0
|
||||
motionNodeName:
|
||||
rigImportErrors:
|
||||
rigImportWarnings:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
importAnimatedCustomProperties: 0
|
||||
importConstraints: 0
|
||||
animationCompression: 1
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
animationScaleError: 0.5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations: []
|
||||
isReadable: 0
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
sortHierarchyByName: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
nodeNameCollisionStrategy: 1
|
||||
fileIdsGeneration: 2
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
bakeAxisConversion: 0
|
||||
preserveHierarchy: 0
|
||||
skinWeightsMode: 0
|
||||
maxBonesPerVertex: 4
|
||||
minBoneWeight: 0.001
|
||||
optimizeBones: 1
|
||||
meshOptimizationFlags: -1
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVMarginMethod: 1
|
||||
secondaryUVMinLightmapResolution: 40
|
||||
secondaryUVMinObjectScale: 1
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
strictVertexDataChecks: 0
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 1
|
||||
humanDescription:
|
||||
serializedVersion: 3
|
||||
human: []
|
||||
skeleton: []
|
||||
armTwist: 0.5
|
||||
foreArmTwist: 0.5
|
||||
upperLegTwist: 0.5
|
||||
legTwist: 0.5
|
||||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
globalScale: 1
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 0
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||
autoGenerateAvatarMappingIfUnspecified: 1
|
||||
animationType: 2
|
||||
humanoidOversampling: 1
|
||||
avatarSetup: 0
|
||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
||||
importBlendShapeDeformPercent: 1
|
||||
remapMaterialsIfMaterialImportModeIsNone: 0
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -336,6 +336,11 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: Kyle Head
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7343580558529594842, guid: 298653603c8a05d488a30d936543a6bc,
|
||||
type: 3}
|
||||
propertyPath: m_Enabled
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects:
|
||||
@@ -431,7 +436,7 @@ SphereCollider:
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 1
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
m_Enabled: 0
|
||||
serializedVersion: 3
|
||||
m_Radius: 0.1337732
|
||||
m_Center: {x: 0, y: -0.010031074, z: 0.02195441}
|
||||
|
||||
@@ -230,11 +230,11 @@ MonoBehaviour:
|
||||
Path: event:/SFX/Lexus/CarSystem
|
||||
<Click>k__BackingField:
|
||||
Guid:
|
||||
Data1: 2116859508
|
||||
Data2: 1165465729
|
||||
Data3: 2142829992
|
||||
Data4: -912259047
|
||||
Path: event:/UI/Hover
|
||||
Data1: -558038968
|
||||
Data2: 1319696346
|
||||
Data3: 1107837582
|
||||
Data4: -794860702
|
||||
Path: event:/UI/Click
|
||||
<MapOpen>k__BackingField:
|
||||
Guid:
|
||||
Data1: 54902525
|
||||
@@ -244,11 +244,11 @@ MonoBehaviour:
|
||||
Path: event:/UI/MapOpen
|
||||
<Hover>k__BackingField:
|
||||
Guid:
|
||||
Data1: -558038968
|
||||
Data2: 1319696346
|
||||
Data3: 1107837582
|
||||
Data4: -794860702
|
||||
Path: event:/UI/Click
|
||||
Data1: 2116859508
|
||||
Data2: 1165465729
|
||||
Data3: 2142829992
|
||||
Data4: -912259047
|
||||
Path: event:/UI/Hover
|
||||
<LetterEnter>k__BackingField:
|
||||
Guid:
|
||||
Data1: -863141031
|
||||
|
||||
@@ -22,11 +22,11 @@ Material:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: card reader Variant
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: -3846018093981099296, guid: 248e38dcb931fa345a11dbf79e87036f,
|
||||
type: 3}
|
||||
m_Parent: {fileID: 2100000, guid: a3ce1b39b1e52c94398a08157fda1dff, type: 2}
|
||||
m_ModifiedSerializedProperties: 2
|
||||
m_ValidKeywords:
|
||||
- _EMISSION
|
||||
- _SPECULAR_SETUP
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 1
|
||||
m_EnableInstancingVariants: 0
|
||||
@@ -42,6 +42,6 @@ Material:
|
||||
m_Ints: []
|
||||
m_Floats: []
|
||||
m_Colors:
|
||||
- _Color: {r: 0.11653974, g: 0.90640265, b: 0, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0.9622642, b: 0.019420544, a: 0}
|
||||
- _Color: {r: 1, g: 0, b: 0.13618705, a: 1}
|
||||
- _EmissionColor: {r: 0.09420719, g: 0.9607843, b: 0, a: 0}
|
||||
m_BuildTextureStacks: []
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -93,6 +93,7 @@ GameObject:
|
||||
- component: {fileID: 7699707098595015193}
|
||||
- component: {fileID: 1413215456818694348}
|
||||
- component: {fileID: 483845010817450077}
|
||||
- component: {fileID: 8646891389811022226}
|
||||
m_Layer: 0
|
||||
m_Name: ArcheryRangeNPC
|
||||
m_TagString: Untagged
|
||||
@@ -267,7 +268,7 @@ MonoBehaviour:
|
||||
_initializeOrder: 0
|
||||
_defaultDespawnType: 0
|
||||
NetworkObserver: {fileID: 0}
|
||||
<PrefabId>k__BackingField: 18
|
||||
<PrefabId>k__BackingField: 6
|
||||
<SpawnableCollectionId>k__BackingField: 0
|
||||
_scenePathHash: 0
|
||||
<SceneId>k__BackingField: 0
|
||||
@@ -465,6 +466,27 @@ MonoBehaviour:
|
||||
X: 0
|
||||
Y: 0
|
||||
Z: 0
|
||||
--- !u!135 &8646891389811022226
|
||||
SphereCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4663194936290788516}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 1
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Radius: 5
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &7802421088258943189
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@@ -195,6 +195,7 @@ GameObject:
|
||||
- component: {fileID: 7699707098595015193}
|
||||
- component: {fileID: 1413215456818694348}
|
||||
- component: {fileID: 483845010817450077}
|
||||
- component: {fileID: 8270600859684143550}
|
||||
m_Layer: 0
|
||||
m_Name: CafeWaiterNPC
|
||||
m_TagString: Untagged
|
||||
@@ -217,6 +218,7 @@ RectTransform:
|
||||
- {fileID: 6822286665445551211}
|
||||
- {fileID: 1530163177365118906}
|
||||
- {fileID: 9206972526079896025}
|
||||
- {fileID: 532878555782351644}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: -1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
@@ -320,10 +322,14 @@ MonoBehaviour:
|
||||
notepad: {fileID: 4428142794029565387}
|
||||
notepadText: {fileID: 1672365637701508529}
|
||||
pen: {fileID: 8182716950090654063}
|
||||
backRoom: {fileID: 0}
|
||||
plate: {fileID: 0}
|
||||
backRoomMovingTime: 5
|
||||
servingTray: {fileID: 532878555782351644}
|
||||
servingTrayTop: {fileID: 4054385274916025690}
|
||||
servingTrayFoodSpawnPoint: {fileID: 9197682265033829949}
|
||||
servingTrayPresentingPosition: {fileID: 0}
|
||||
servingTrayTopLiftAmount: 0.5
|
||||
spawnedFoodDiameter: 0.5
|
||||
backRoom: {fileID: 0}
|
||||
backRoomMovingTime: 5
|
||||
ignorePlayerCollisionLayer: 2
|
||||
--- !u!114 &7699707098595015193
|
||||
MonoBehaviour:
|
||||
@@ -564,6 +570,27 @@ MonoBehaviour:
|
||||
X: 0
|
||||
Y: 0
|
||||
Z: 0
|
||||
--- !u!135 &8270600859684143550
|
||||
SphereCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4663194936290788516}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 1
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Radius: 5
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &7802421088258943189
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -796,3 +823,119 @@ GameObject:
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 7727616090730660173}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &8665339237764214756
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 5657737279223690836}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1375442583061750018, guid: c43698824b8754f428a6677d8301a04c,
|
||||
type: 3}
|
||||
propertyPath: m_SortingLayer
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5165251572813796828, guid: c43698824b8754f428a6677d8301a04c,
|
||||
type: 3}
|
||||
propertyPath: m_SortingLayer
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8390068347103116866, guid: c43698824b8754f428a6677d8301a04c,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: ServingTray
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9161537809656587512, guid: c43698824b8754f428a6677d8301a04c,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9161537809656587512, guid: c43698824b8754f428a6677d8301a04c,
|
||||
type: 3}
|
||||
propertyPath: m_LocalScale.x
|
||||
value: 0.7872121
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9161537809656587512, guid: c43698824b8754f428a6677d8301a04c,
|
||||
type: 3}
|
||||
propertyPath: m_LocalScale.y
|
||||
value: 0.7872121
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9161537809656587512, guid: c43698824b8754f428a6677d8301a04c,
|
||||
type: 3}
|
||||
propertyPath: m_LocalScale.z
|
||||
value: 0.7872121
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9161537809656587512, guid: c43698824b8754f428a6677d8301a04c,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0.0000016202
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9161537809656587512, guid: c43698824b8754f428a6677d8301a04c,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0.11433
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9161537809656587512, guid: c43698824b8754f428a6677d8301a04c,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0.30001
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9161537809656587512, guid: c43698824b8754f428a6677d8301a04c,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9161537809656587512, guid: c43698824b8754f428a6677d8301a04c,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9161537809656587512, guid: c43698824b8754f428a6677d8301a04c,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9161537809656587512, guid: c43698824b8754f428a6677d8301a04c,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9161537809656587512, guid: c43698824b8754f428a6677d8301a04c,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9161537809656587512, guid: c43698824b8754f428a6677d8301a04c,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9161537809656587512, guid: c43698824b8754f428a6677d8301a04c,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: c43698824b8754f428a6677d8301a04c, type: 3}
|
||||
--- !u!4 &532878555782351644 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 9161537809656587512, guid: c43698824b8754f428a6677d8301a04c,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 8665339237764214756}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!4 &4054385274916025690 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 4613209722915461822, guid: c43698824b8754f428a6677d8301a04c,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 8665339237764214756}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!4 &9197682265033829949 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 569075787185045977, guid: c43698824b8754f428a6677d8301a04c,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 8665339237764214756}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
|
||||
@@ -93,6 +93,7 @@ GameObject:
|
||||
- component: {fileID: 1653195237934660084}
|
||||
- component: {fileID: 1413215456818694348}
|
||||
- component: {fileID: 483845010817450077}
|
||||
- component: {fileID: 1179918406964740421}
|
||||
m_Layer: 0
|
||||
m_Name: ShapeDetectionNPC
|
||||
m_TagString: Untagged
|
||||
@@ -233,10 +234,14 @@ MonoBehaviour:
|
||||
questMarker: {fileID: 0}
|
||||
radio: {fileID: 0}
|
||||
computerKeyboardKey: {fileID: 0}
|
||||
computerPrinter: {fileID: 0}
|
||||
printerInsertionHole: {fileID: 0}
|
||||
computerPrinter: {fileID: 0}
|
||||
shapeScanner: {fileID: 0}
|
||||
staticRadio: {fileID: 0}
|
||||
questMarkerPoint: {fileID: 0}
|
||||
radioAmount: 1
|
||||
movementPath: []
|
||||
moveSpeedPerSecond: 2
|
||||
--- !u!114 &1413215456818694348
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -459,6 +464,27 @@ MonoBehaviour:
|
||||
X: 0
|
||||
Y: 0
|
||||
Z: 0
|
||||
--- !u!135 &1179918406964740421
|
||||
SphereCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4663194936290788516}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 1
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Radius: 5
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &7802421088258943189
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -248,7 +248,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 360}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0.0000009536743, y: 0.014099985}
|
||||
m_AnchoredPosition: {x: 0.0000009536743, y: 0.0073}
|
||||
m_SizeDelta: {x: 100, y: 100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!223 &6732376546868400302
|
||||
@@ -417,7 +417,7 @@ Transform:
|
||||
m_GameObject: {fileID: 8445441351388109183}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.4, y: 0.02, z: 0.4}
|
||||
m_LocalScale: {x: 0.4, y: 0.012, z: 0.4}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3870989277732630730}
|
||||
|
||||
@@ -1,380 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &4291579148315658230
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6761968278529855575}
|
||||
- component: {fileID: 4763701867718457502}
|
||||
- component: {fileID: 7203143526414218131}
|
||||
- component: {fileID: 2568780590385977406}
|
||||
- component: {fileID: 1523408157143897080}
|
||||
m_Layer: 0
|
||||
m_Name: MicrophoneStand_Prototype
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &6761968278529855575
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4291579148315658230}
|
||||
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1850758373829337931}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: -1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &4763701867718457502
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4291579148315658230}
|
||||
m_Mesh: {fileID: -8524547844719368960, guid: 7c81a7464d27596489f008c96d1971c8, type: 3}
|
||||
--- !u!23 &7203143526414218131
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4291579148315658230}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 19c6f99eccf0c69469fd5c281f18b5c0, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!135 &2568780590385977406
|
||||
SphereCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4291579148315658230}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 1
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Radius: 0.47
|
||||
m_Center: {x: 0, y: 0.48, z: 0}
|
||||
--- !u!114 &1523408157143897080
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4291579148315658230}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 357101b2cface4943b04dfd25d4944e3, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
outputText: {fileID: 0}
|
||||
microphoneOffStatus: {fileID: 8977839985090371394}
|
||||
microphoneOnStatus: {fileID: 6537061652288108950}
|
||||
fmodWhisperBridge: {fileID: 0}
|
||||
--- !u!1 &5819798980962142350
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1850758373829337931}
|
||||
- component: {fileID: 2106466490739867277}
|
||||
- component: {fileID: 4587043586550884435}
|
||||
- component: {fileID: 8719646384572601803}
|
||||
m_Layer: 0
|
||||
m_Name: Canvas
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1850758373829337931
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5819798980962142350}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: -0.0405}
|
||||
m_LocalScale: {x: 0.001, y: 0.001, z: 0.001}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 4321634455225286656}
|
||||
- {fileID: 3972028686577586524}
|
||||
m_Father: {fileID: 6761968278529855575}
|
||||
m_RootOrder: -1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0.6033}
|
||||
m_SizeDelta: {x: 100, y: 100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!223 &2106466490739867277
|
||||
Canvas:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5819798980962142350}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_RenderMode: 2
|
||||
m_Camera: {fileID: 0}
|
||||
m_PlaneDistance: 100
|
||||
m_PixelPerfect: 0
|
||||
m_ReceivesEvents: 1
|
||||
m_OverrideSorting: 0
|
||||
m_OverridePixelPerfect: 0
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_AdditionalShaderChannelsFlag: 25
|
||||
m_UpdateRectTransformForStandalone: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 0
|
||||
m_TargetDisplay: 0
|
||||
--- !u!114 &4587043586550884435
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5819798980962142350}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_UiScaleMode: 0
|
||||
m_ReferencePixelsPerUnit: 100
|
||||
m_ScaleFactor: 1
|
||||
m_ReferenceResolution: {x: 800, y: 600}
|
||||
m_ScreenMatchMode: 0
|
||||
m_MatchWidthOrHeight: 0
|
||||
m_PhysicalUnit: 3
|
||||
m_FallbackScreenDPI: 96
|
||||
m_DefaultSpriteDPI: 96
|
||||
m_DynamicPixelsPerUnit: 1
|
||||
m_PresetInfoIsWorld: 1
|
||||
--- !u!114 &8719646384572601803
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5819798980962142350}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreReversedGraphics: 1
|
||||
m_BlockingObjects: 0
|
||||
m_BlockingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
--- !u!1 &6537061652288108950
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3972028686577586524}
|
||||
- component: {fileID: 3263217202320683959}
|
||||
- component: {fileID: 6147207569465961459}
|
||||
m_Layer: 0
|
||||
m_Name: MicrophoneOnStatus
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
--- !u!224 &3972028686577586524
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6537061652288108950}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1850758373829337931}
|
||||
m_RootOrder: -1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 80, y: 80}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &3263217202320683959
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6537061652288108950}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &6147207569465961459
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6537061652288108950}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 3f2516f6ee1cb5c4ba7f85f24c3d4f43, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &8977839985090371394
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4321634455225286656}
|
||||
- component: {fileID: 1842889781999843329}
|
||||
- component: {fileID: 6304871477875013403}
|
||||
m_Layer: 0
|
||||
m_Name: MicrophoneOffStatus
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4321634455225286656
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8977839985090371394}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1850758373829337931}
|
||||
m_RootOrder: -1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 80, y: 80}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &1842889781999843329
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8977839985090371394}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &6304871477875013403
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8977839985090371394}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 68669679d082ba94bb4a39c08fa91e0d, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
File diff suppressed because it is too large
Load Diff
279
Assets/_PROJECT/Prefabs/ModelGeneration/ServingTray.prefab
Normal file
279
Assets/_PROJECT/Prefabs/ModelGeneration/ServingTray.prefab
Normal file
@@ -0,0 +1,279 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &33945096282833667
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4613209722915461822}
|
||||
- component: {fileID: 6192135053139835027}
|
||||
- component: {fileID: 1375442583061750018}
|
||||
- component: {fileID: 2161552460854040793}
|
||||
m_Layer: 0
|
||||
m_Name: Top
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4613209722915461822
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 33945096282833667}
|
||||
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0.23551077, z: -0.00014617827}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 9161537809656587512}
|
||||
m_RootOrder: -1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &6192135053139835027
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 33945096282833667}
|
||||
m_Mesh: {fileID: 4493585093827132993, guid: 3d938fc5df676394d8a29eb15002c190, type: 3}
|
||||
--- !u!23 &1375442583061750018
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 33945096282833667}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 9101636318673992656, guid: 3d938fc5df676394d8a29eb15002c190, type: 3}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!64 &2161552460854040793
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 33945096282833667}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 5
|
||||
m_Convex: 0
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: 4493585093827132993, guid: 3d938fc5df676394d8a29eb15002c190, type: 3}
|
||||
--- !u!1 &1579187116394808824
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 569075787185045977}
|
||||
m_Layer: 0
|
||||
m_Name: FoodSpawnPoint
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &569075787185045977
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1579187116394808824}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0.1709, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 9161537809656587512}
|
||||
m_RootOrder: -1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &8296343995460317559
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5428513804157271965}
|
||||
- component: {fileID: 3650349036290197763}
|
||||
- component: {fileID: 5165251572813796828}
|
||||
- component: {fileID: 4954145746846201402}
|
||||
m_Layer: 0
|
||||
m_Name: Bottom
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &5428513804157271965
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8296343995460317559}
|
||||
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 9161537809656587512}
|
||||
m_RootOrder: -1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &3650349036290197763
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8296343995460317559}
|
||||
m_Mesh: {fileID: -5495902117074765545, guid: 3d938fc5df676394d8a29eb15002c190, type: 3}
|
||||
--- !u!23 &5165251572813796828
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8296343995460317559}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 9101636318673992656, guid: 3d938fc5df676394d8a29eb15002c190, type: 3}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!64 &4954145746846201402
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8296343995460317559}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 5
|
||||
m_Convex: 0
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: -5495902117074765545, guid: 3d938fc5df676394d8a29eb15002c190, type: 3}
|
||||
--- !u!1 &8390068347103116866
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 9161537809656587512}
|
||||
m_Layer: 0
|
||||
m_Name: ServingTray
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &9161537809656587512
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8390068347103116866}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0.131, z: 0.169}
|
||||
m_LocalScale: {x: 0.7446047, y: 0.7446047, z: 0.7446047}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 4613209722915461822}
|
||||
- {fileID: 5428513804157271965}
|
||||
- {fileID: 569075787185045977}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 44b369698b4397b45b9424694c46f2f5
|
||||
guid: c43698824b8754f428a6677d8301a04c
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -29,7 +29,7 @@ Transform:
|
||||
m_GameObject: {fileID: 1659788510314838016}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.4, y: 0.35, z: 0.4}
|
||||
m_LocalScale: {x: 0.4, y: 0.38386, z: 0.4}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 4211436824399037528}
|
||||
@@ -149,7 +149,7 @@ Transform:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4039766663692926199}
|
||||
m_LocalRotation: {x: -0, y: 0.000000014901158, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalPosition: {x: 0, y: -0.36, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,25 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class MicrophoneProximityTrigger : MonoBehaviour
|
||||
{
|
||||
public MicrophoneStand mic;
|
||||
public bool isEnter;
|
||||
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (isEnter && other.gameObject.tag == "Player Head")
|
||||
{
|
||||
mic.OnPlayerApproach();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnTriggerExit(Collider other)
|
||||
{
|
||||
if (!isEnter && other.gameObject.tag == "Player Head")
|
||||
{
|
||||
mic.OnPlayerLeave();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 802e078b61fa28949b02b767f4fe7226
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -10,68 +10,72 @@ public class MicrophoneStand : MonoBehaviour
|
||||
|
||||
public FMODWhisperBridge fmodWhisperBridge;
|
||||
|
||||
public delegate void OnPlayerFinishedSpeakingDelegate();
|
||||
public event OnPlayerFinishedSpeakingDelegate OnPlayerFinishedSpeaking;
|
||||
public delegate void OnPlayerUsedMicrophoneDelegate();
|
||||
public event OnPlayerUsedMicrophoneDelegate OnPlayerUsedMicrophone;
|
||||
|
||||
[Header("Particle System Config")]
|
||||
public ParticleSystem particles;
|
||||
public float baseEmissionRate = 3;
|
||||
public float maxExtraEmissionRate = 50;
|
||||
|
||||
private ParticleSystem.EmissionModule particleEmission;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
microphoneOffStatus.SetActive(true);
|
||||
microphoneOnStatus.SetActive(false);
|
||||
|
||||
particleEmission = particles.emission;
|
||||
particleEmission.enabled = false;
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
if (particleEmission.enabled)
|
||||
{
|
||||
particleEmission.rateOverTime = baseEmissionRate + fmodWhisperBridge.GetNormalizedVolume01() * maxExtraEmissionRate;
|
||||
}
|
||||
}
|
||||
|
||||
void OnTriggerEnter(Collider other)
|
||||
{
|
||||
KbmController controller = other.GetComponent<KbmController>();
|
||||
Debug.Log("Mic stand collided with object " + other.gameObject.name);
|
||||
|
||||
if (controller != null || other.gameObject.tag == "Player Head")
|
||||
public void OnPlayerApproach()
|
||||
{
|
||||
fmodWhisperBridge.ActivateRecording();
|
||||
fmodWhisperBridge.OnWhisperSegmentUpdated += OnPlayerSpeechUpdated;
|
||||
fmodWhisperBridge.OnWhisperSegmentFinished += OnPlayerSpeechFinished;
|
||||
|
||||
microphoneOffStatus.SetActive(false);
|
||||
microphoneOnStatus.SetActive(true);
|
||||
particleEmission.enabled = true;
|
||||
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.RadioButton, gameObject);
|
||||
fmodWhisperBridge.ActivateRecording();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnTriggerExit(Collider other)
|
||||
{
|
||||
KbmController controller = other.GetComponent<KbmController>();
|
||||
if (controller != null | other.gameObject.tag == "Player Head")
|
||||
public void OnPlayerLeave()
|
||||
{
|
||||
fmodWhisperBridge.OnWhisperSegmentUpdated -= OnPlayerSpeechUpdated;
|
||||
fmodWhisperBridge.OnWhisperSegmentFinished -= OnPlayerSpeechFinished;
|
||||
fmodWhisperBridge.DeactivateRecording();
|
||||
|
||||
microphoneOffStatus.SetActive(true);
|
||||
microphoneOnStatus.SetActive(false);
|
||||
particleEmission.enabled = false;
|
||||
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.RadioButton, gameObject);
|
||||
fmodWhisperBridge.DeactivateRecording();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnPlayerSpeechUpdated(string text)
|
||||
{
|
||||
outputText.text = text;
|
||||
OnPlayerFinishedSpeaking?.Invoke();
|
||||
OnPlayerUsedMicrophone?.Invoke();
|
||||
}
|
||||
|
||||
private void OnPlayerSpeechFinished(string playerText)
|
||||
private void OnPlayerSpeechFinished(string text)
|
||||
{
|
||||
OnPlayerFinishedSpeaking?.Invoke();
|
||||
outputText.text = text;
|
||||
OnPlayerUsedMicrophone?.Invoke();
|
||||
}
|
||||
|
||||
public string GetTextOutput()
|
||||
{
|
||||
return outputText.text;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ public class ModelDisplay : MonoBehaviour
|
||||
public float generatedObjectRotationSpeed = 10f;
|
||||
|
||||
private EventInstance printingSound;
|
||||
private ParticleSystem.EmissionModule particleEmission;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
@@ -23,6 +24,9 @@ public class ModelDisplay : MonoBehaviour
|
||||
printingSound.setParameterByName("3DPrinterPrintingJob", 1);
|
||||
printingSound.setParameterByName("Occlusion", 0);
|
||||
printingSound.set3DAttributes(FMODUnity.RuntimeUtils.To3DAttributes(displayPoint));
|
||||
|
||||
particleEmission = GetComponentInChildren<ParticleSystem>().emission;
|
||||
particleEmission.enabled = false;
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
@@ -38,6 +42,7 @@ public class ModelDisplay : MonoBehaviour
|
||||
{
|
||||
printingSound.start();
|
||||
printingSound.setParameterByName("3DPrinterPrintingJob", 0);
|
||||
particleEmission.enabled = true;
|
||||
}
|
||||
|
||||
public void DisplayModel(GameObject modelObject)
|
||||
@@ -57,5 +62,6 @@ public class ModelDisplay : MonoBehaviour
|
||||
Model = modelObject;
|
||||
|
||||
printingSound.setParameterByName("3DPrinterPrintingJob", 1);
|
||||
particleEmission.enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,9 +4,9 @@ using System.Runtime.InteropServices;
|
||||
using UnityEngine;
|
||||
using FMOD;
|
||||
using FMODUnity;
|
||||
using Whisper; // WhisperManager, WhisperStream, WhisperResult
|
||||
using Whisper;
|
||||
using Whisper.Utils;
|
||||
using Debug = UnityEngine.Debug; // AudioChunk
|
||||
using Debug = UnityEngine.Debug;
|
||||
|
||||
/// <summary>
|
||||
/// FMOD mic is initialized once (Start) and runs continuously in a ring buffer.
|
||||
@@ -28,12 +28,6 @@ public class FMODWhisperBridge : MonoBehaviour
|
||||
public int channels = 1;
|
||||
[Range(1, 10)] public int bufferLengthSec = 5;
|
||||
|
||||
[Header("Loopback (monitor your voice)")]
|
||||
public bool playLoopback = true;
|
||||
[Tooltip("If true, loopback plays only while active; otherwise it’s always on.")]
|
||||
public bool loopbackOnlyWhenActive = true;
|
||||
[Range(0f, 2f)] public float loopbackVolume = 1.0f;
|
||||
|
||||
public delegate void OnWhisperSegmentUpdatedDelegate(string result);
|
||||
public event OnWhisperSegmentUpdatedDelegate OnWhisperSegmentUpdated;
|
||||
|
||||
@@ -44,7 +38,6 @@ public class FMODWhisperBridge : MonoBehaviour
|
||||
private FMOD.System _core;
|
||||
private Sound _recSound;
|
||||
private Channel _playChannel;
|
||||
private ChannelGroup _masterGroup;
|
||||
private uint _soundPcmLength; // in samples
|
||||
private int _nativeRate;
|
||||
private int _nativeChannels;
|
||||
@@ -54,7 +47,6 @@ public class FMODWhisperBridge : MonoBehaviour
|
||||
|
||||
// Whisper
|
||||
private WhisperStream _stream;
|
||||
private bool _streamStarted;
|
||||
|
||||
// temp conversion buffer
|
||||
private float[] _floatTmp = new float[0];
|
||||
@@ -64,6 +56,11 @@ public class FMODWhisperBridge : MonoBehaviour
|
||||
private bool isRecordingActivated = false;
|
||||
private bool _skipOneFeedFrame = false;
|
||||
|
||||
// --- Speech Volume Measurement ---
|
||||
private float currentVolumeRms = 0f; // Smoothed RMS for external access
|
||||
private float volumeSmoothing = 0.15f; // How fast the meter reacts (0.1–0.3 good)
|
||||
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (!whisper) whisper = FindObjectOfType<WhisperManager>();
|
||||
@@ -133,24 +130,6 @@ public class FMODWhisperBridge : MonoBehaviour
|
||||
_core.getRecordPosition(recordDriverId, out _lastRecordPos);
|
||||
Debug.Log("[FMOD→Whisper] Recording started.");
|
||||
|
||||
// Loopback channel (optional). Start once; pause when inactive if desired.
|
||||
_core.getMasterChannelGroup(out _masterGroup);
|
||||
if (playLoopback)
|
||||
{
|
||||
res = _core.playSound(_recSound, _masterGroup, false, out _playChannel);
|
||||
if (res == RESULT.OK && _playChannel.hasHandle())
|
||||
{
|
||||
_playChannel.setMode(MODE._2D);
|
||||
_playChannel.setVolume(loopbackVolume);
|
||||
if (loopbackOnlyWhenActive) _playChannel.setPaused(true); // keep muted until Activate
|
||||
Debug.Log("[FMOD→Whisper] Loopback playback ready.");
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning($"[FMOD→Whisper] playSound failed or channel invalid: {res}");
|
||||
}
|
||||
}
|
||||
|
||||
// No Whisper stream here. It will be created on ActivateRecording().
|
||||
await System.Threading.Tasks.Task.Yield();
|
||||
}
|
||||
@@ -174,6 +153,11 @@ public class FMODWhisperBridge : MonoBehaviour
|
||||
|
||||
int rate = (_nativeRate > 0) ? _nativeRate : desiredSampleRate;
|
||||
|
||||
if (_stream != null)
|
||||
{
|
||||
_stream.StopStream();
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
_stream = await whisper.CreateStream(rate, _nativeChannels);
|
||||
@@ -182,7 +166,6 @@ public class FMODWhisperBridge : MonoBehaviour
|
||||
{
|
||||
Debug.LogError($"[FMOD→Whisper] CreateStream exception: {e}");
|
||||
_stream = null;
|
||||
_streamStarted = false;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -203,16 +186,6 @@ public class FMODWhisperBridge : MonoBehaviour
|
||||
whisper.useVad = useVadInStream;
|
||||
|
||||
_stream.StartStream();
|
||||
_streamStarted = true;
|
||||
|
||||
|
||||
// --- NEW: Clear the ring buffer and reset read pointer ---
|
||||
// Pause loopback while we clear (optional, but avoids clicks)
|
||||
if (playLoopback && _playChannel.hasHandle())
|
||||
_playChannel.setPaused(true);
|
||||
|
||||
// Clear buffer bytes
|
||||
ClearRecordRingBuffer();
|
||||
|
||||
// Reset our read pointer to the current write head
|
||||
_core.getRecordPosition(recordDriverId, out _lastRecordPos);
|
||||
@@ -220,13 +193,8 @@ public class FMODWhisperBridge : MonoBehaviour
|
||||
// We’ll skip feeding for one frame to guarantee a clean start
|
||||
_skipOneFeedFrame = true;
|
||||
|
||||
// Unpause loopback if we want it active during recording
|
||||
if (playLoopback && _playChannel.hasHandle() && (!loopbackOnlyWhenActive || isRecordingActivated))
|
||||
_playChannel.setPaused(loopbackOnlyWhenActive ? false : _playChannel.getPaused(out var paused) == FMOD.RESULT.OK && paused ? false : false);
|
||||
|
||||
isRecordingActivated = true;
|
||||
Debug.Log("[FMOD→Whisper] Stream activated (buffer cleared; reading from current head).");
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -234,24 +202,32 @@ public class FMODWhisperBridge : MonoBehaviour
|
||||
/// </summary>
|
||||
public void DeactivateRecording()
|
||||
{
|
||||
if (!isRecordingActivated && !_streamStarted)
|
||||
if (!isRecordingActivated)
|
||||
return;
|
||||
|
||||
isRecordingActivated = false;
|
||||
|
||||
// Pause loopback if it should only be active during recording
|
||||
if (playLoopback && loopbackOnlyWhenActive && _playChannel.hasHandle())
|
||||
_playChannel.setPaused(true);
|
||||
|
||||
// Tear down Whisper stream
|
||||
if (_streamStarted)
|
||||
{
|
||||
try { _stream.StopStream(); } catch { /* ignore */ }
|
||||
_streamStarted = false;
|
||||
}
|
||||
_stream = null;
|
||||
|
||||
Debug.Log("[FMOD→Whisper] Stream deactivated (Whisper stopped; FMOD still recording).");
|
||||
/// <summary>
|
||||
/// Returns current microphone level in dBFS (decibels relative to full-scale).
|
||||
/// 0 dBFS = digital clipping; normal speech is typically around -35 to -20 dBFS.
|
||||
/// </summary>
|
||||
public float GetCurrentVolumeDb()
|
||||
{
|
||||
// Guard from log(0)
|
||||
const float minRms = 1e-7f;
|
||||
float rms = Mathf.Clamp(currentVolumeRms, minRms, 1f);
|
||||
return 20f * Mathf.Log10(rms);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a UI-friendly 0..1 loudness from the current dBFS value.
|
||||
/// Adjust the dB range to your content/environment if needed.
|
||||
/// </summary>
|
||||
public float GetNormalizedVolume01()
|
||||
{
|
||||
float db = GetCurrentVolumeDb(); // typically ~ -60 .. -15 during use
|
||||
return Mathf.Clamp01(Mathf.InverseLerp(-60f, -15f, db));
|
||||
}
|
||||
|
||||
private void Update()
|
||||
@@ -261,8 +237,7 @@ public class FMODWhisperBridge : MonoBehaviour
|
||||
if (!_recSound.hasHandle()) return;
|
||||
|
||||
// Compute how many samples recorded since last frame.
|
||||
uint recPos;
|
||||
_core.getRecordPosition(recordDriverId, out recPos);
|
||||
_core.getRecordPosition(recordDriverId, out uint recPos);
|
||||
|
||||
uint deltaSamples = (recPos >= _lastRecordPos)
|
||||
? (recPos - _lastRecordPos)
|
||||
@@ -275,10 +250,6 @@ public class FMODWhisperBridge : MonoBehaviour
|
||||
return;
|
||||
}
|
||||
|
||||
// If not active, we *still* advance the ring (so we don't backlog data),
|
||||
// but we *don't* push chunks to Whisper.
|
||||
bool shouldFeed = isRecordingActivated && _streamStarted && _stream != null;
|
||||
|
||||
// Calculate byte range to lock (16-bit)
|
||||
uint bytesToRead = deltaSamples * (uint)_nativeChannels * 2; // 2 bytes per sample
|
||||
uint startBytes = _lastRecordPos * (uint)_nativeChannels * 2;
|
||||
@@ -295,11 +266,44 @@ public class FMODWhisperBridge : MonoBehaviour
|
||||
|
||||
try
|
||||
{
|
||||
if (shouldFeed && !_skipOneFeedFrame)
|
||||
float rmsAccumulator = 0f;
|
||||
int rmsSampleCount = 0;
|
||||
|
||||
// 1) Measure volume
|
||||
if (len1 > 0)
|
||||
{
|
||||
ComputeRmsFromPcm16(p1, len1, ref rmsAccumulator, ref rmsSampleCount);
|
||||
}
|
||||
if (len2 > 0)
|
||||
{
|
||||
ComputeRmsFromPcm16(p2, len2, ref rmsAccumulator, ref rmsSampleCount);
|
||||
}
|
||||
|
||||
if (rmsSampleCount > 0)
|
||||
{
|
||||
float rms = Mathf.Sqrt(rmsAccumulator / rmsSampleCount);
|
||||
|
||||
// Smooth the value
|
||||
currentVolumeRms = Mathf.Lerp(currentVolumeRms, rms, 1f - Mathf.Pow(1f - volumeSmoothing, Time.deltaTime * 60f));
|
||||
}
|
||||
|
||||
// 2) Feed audio to Whisper
|
||||
if (_stream != null)
|
||||
{
|
||||
if (isRecordingActivated && !_skipOneFeedFrame)
|
||||
{
|
||||
// Feed real mic
|
||||
if (len1 > 0) CopyPcm16ToFloatAndFeed(p1, len1);
|
||||
if (len2 > 0) CopyPcm16ToFloatAndFeed(p2, len2);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Feed same-size silence instead
|
||||
if (len1 > 0) FeedSilentChunk(len1);
|
||||
if (len2 > 0) FeedSilentChunk(len2);
|
||||
}
|
||||
}
|
||||
|
||||
// If skipping, we just discard this frame to ensure no stale data leaks.
|
||||
}
|
||||
finally
|
||||
@@ -310,12 +314,30 @@ public class FMODWhisperBridge : MonoBehaviour
|
||||
if (_skipOneFeedFrame) _skipOneFeedFrame = false;
|
||||
|
||||
_lastRecordPos = recPos;
|
||||
|
||||
}
|
||||
|
||||
private string PostProcessInput(string input)
|
||||
{
|
||||
return input.Replace("[silence]", "").Replace("[ Silence ]", "").Replace("BLANK_AUDIO", "").Replace("[", "").Replace("]", "").Trim();
|
||||
return input.Replace("[silence]", "").Replace("[ Silence ]", "").Replace("BLANK_AUDIO", "").Replace("[", "").Replace("]", "").Replace("END PLAYBACK", "").Trim();
|
||||
}
|
||||
|
||||
private void FeedSilentChunk(uint byteLen)
|
||||
{
|
||||
int samples = (int)(byteLen / 2);
|
||||
EnsureTmpCapacity(samples);
|
||||
|
||||
// fill existing _floatTmp with zeros (efficient)
|
||||
Array.Clear(_floatTmp, 0, samples);
|
||||
|
||||
var chunk = new AudioChunk
|
||||
{
|
||||
Data = _floatTmp.AsSpan(0, samples).ToArray(),
|
||||
Frequency = (_nativeRate > 0) ? _nativeRate : desiredSampleRate,
|
||||
Channels = _nativeChannels,
|
||||
IsVoiceDetected = false
|
||||
};
|
||||
|
||||
_stream.AddToStream(chunk);
|
||||
}
|
||||
|
||||
private void CopyPcm16ToFloatAndFeed(IntPtr src, uint byteLen)
|
||||
@@ -377,54 +399,30 @@ public class FMODWhisperBridge : MonoBehaviour
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void ClearRecordRingBuffer()
|
||||
/// <summary>
|
||||
/// Computes RMS (root mean square) from a PCM16 block using only safe code.
|
||||
/// Uses the shared _shortOverlay buffer (no allocations).
|
||||
/// Accumulates results into accumulator + sampleCount.
|
||||
/// </summary>
|
||||
private void ComputeRmsFromPcm16(IntPtr src, uint byteLen, ref float accumulator, ref int sampleCount)
|
||||
{
|
||||
if (!_recSound.hasHandle() || _soundPcmLength == 0) return;
|
||||
// Number of PCM16 samples (2 bytes per sample)
|
||||
int samples = (int)(byteLen / 2);
|
||||
if (samples <= 0) return;
|
||||
|
||||
uint totalBytes = _soundPcmLength * (uint)_nativeChannels * 2; // PCM16
|
||||
IntPtr p1, p2;
|
||||
uint len1, len2;
|
||||
// Ensure overlay buffer exists & is large enough
|
||||
EnsureShortOverlay(samples, out short[] sBuf);
|
||||
|
||||
// Lock the whole buffer (start=0, length=totalBytes)
|
||||
var r = _recSound.@lock(0, totalBytes, out p1, out p2, out len1, out len2);
|
||||
if (r != FMOD.RESULT.OK)
|
||||
// Copy PCM16 into managed buffer (safe)
|
||||
Marshal.Copy(src, sBuf, 0, samples);
|
||||
|
||||
// Accumulate squared amplitude
|
||||
for (int i = 0; i < samples; i++)
|
||||
{
|
||||
Debug.LogWarning($"[FMOD→Whisper] Could not lock ring buffer to clear: {r}");
|
||||
return;
|
||||
float v = sBuf[i] / 32768f; // normalize to [-1..1]
|
||||
accumulator += v * v;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (len1 > 0)
|
||||
{
|
||||
// zero p1
|
||||
// We’ll reuse a static zero array to avoid allocating huge buffers repeatedly
|
||||
ZeroMem(p1, (int)len1);
|
||||
}
|
||||
if (len2 > 0)
|
||||
{
|
||||
ZeroMem(p2, (int)len2);
|
||||
sampleCount += samples;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
_recSound.unlock(p1, p2, len1, len2);
|
||||
}
|
||||
}
|
||||
|
||||
// cheap zeroing helper (avoids allocating len-sized arrays each time)
|
||||
private static readonly byte[] _zeroChunk = new byte[16 * 1024]; // 16 KB
|
||||
private static void ZeroMem(IntPtr dst, int byteLen)
|
||||
{
|
||||
int offset = 0;
|
||||
while (byteLen > 0)
|
||||
{
|
||||
int n = Math.Min(_zeroChunk.Length, byteLen);
|
||||
Marshal.Copy(_zeroChunk, 0, dst + offset, n);
|
||||
offset += n;
|
||||
byteLen -= n;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -36,6 +36,7 @@ public class ModelGenerationUtils : MonoBehaviour
|
||||
{
|
||||
XROrigin xrOrigin = FindObjectOfType<XROrigin>(includeInactive: true);
|
||||
xrOrigin.transform.position = minigamePoints[0].position;
|
||||
xrOrigin.transform.rotation = minigamePoints[0].rotation;
|
||||
}
|
||||
|
||||
|
||||
@@ -43,12 +44,14 @@ public class ModelGenerationUtils : MonoBehaviour
|
||||
{
|
||||
XROrigin xrOrigin = FindObjectOfType<XROrigin>(includeInactive: true);
|
||||
xrOrigin.transform.position = minigamePoints[1].position;
|
||||
xrOrigin.transform.rotation = minigamePoints[1].rotation;
|
||||
}
|
||||
|
||||
if (Keyboard.current.digit3Key.wasPressedThisFrame)
|
||||
{
|
||||
XROrigin xrOrigin = FindObjectOfType<XROrigin>(includeInactive: true);
|
||||
xrOrigin.transform.position = minigamePoints[2].position;
|
||||
xrOrigin.transform.rotation = minigamePoints[2].rotation;
|
||||
}
|
||||
|
||||
if (Keyboard.current.digit0Key.wasPressedThisFrame)
|
||||
|
||||
@@ -15,6 +15,7 @@ public class ArcheryRangeNPC : NPCController
|
||||
public ModelDisplay modelDisplay;
|
||||
public float modelDisplaySize = 0.75f;
|
||||
public Transform startTargetQuestMarkerPoint;
|
||||
public KeyboardManager keyboardManager;
|
||||
|
||||
private Texture2D GeneratedTexture;
|
||||
|
||||
@@ -25,6 +26,8 @@ public class ArcheryRangeNPC : NPCController
|
||||
// 3 - player pressed the image generation button
|
||||
// 4 - player pressed the model generation button
|
||||
// 5 - model spawned into the game
|
||||
// 6 - round completed
|
||||
// 7 - name submitted
|
||||
private int state;
|
||||
|
||||
private void Awake()
|
||||
@@ -34,9 +37,11 @@ public class ArcheryRangeNPC : NPCController
|
||||
|
||||
private void Start()
|
||||
{
|
||||
microphoneStand.OnPlayerFinishedSpeaking += OnPlayerUsedMicrophone;
|
||||
microphoneStand.OnPlayerUsedMicrophone += OnPlayerUsedMicrophone;
|
||||
imageGenerationButton.OnButtonPressed += OnImageGenerationButtonPressed;
|
||||
modelGenerationButton.OnButtonPressed += OnModelGenerationButtonPressed;
|
||||
keyboardManager.OnActivate += OnRoundComplete;
|
||||
keyboardManager.OnSubmit += OnNameSubmitted;
|
||||
}
|
||||
|
||||
protected async override void OnPlayerApproach()
|
||||
@@ -62,8 +67,9 @@ public class ArcheryRangeNPC : NPCController
|
||||
|
||||
}
|
||||
|
||||
private void OnPlayerUsedMicrophone()
|
||||
private async void OnPlayerUsedMicrophone()
|
||||
{
|
||||
await Task.Delay(1500);
|
||||
if (state == 1)
|
||||
{
|
||||
SpeakVoiceLine(3);
|
||||
@@ -118,4 +124,23 @@ public class ArcheryRangeNPC : NPCController
|
||||
|
||||
modelGenerationButton.Deactivate();
|
||||
}
|
||||
|
||||
private void OnRoundComplete()
|
||||
{
|
||||
if (state == 5)
|
||||
{
|
||||
state = 6;
|
||||
SpeakVoiceLine(6);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void OnNameSubmitted()
|
||||
{
|
||||
if (state == 6)
|
||||
{
|
||||
state = 7;
|
||||
}
|
||||
SpeakVoiceLine(7);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,20 +6,28 @@ using UnityEngine.XR.Interaction.Toolkit;
|
||||
|
||||
public class CafeWaiterNPC : NPCController
|
||||
{
|
||||
[Header("Delta Cafe Minigame Config")]
|
||||
public FMODWhisperBridge fmodWhisperBridge;
|
||||
|
||||
public GameObject notepad;
|
||||
public TextMeshProUGUI notepadText;
|
||||
public PenWriter pen;
|
||||
|
||||
public Transform backRoom;
|
||||
public Transform plate;
|
||||
public float backRoomMovingTime = 5f;
|
||||
public Transform servingTray;
|
||||
public Transform servingTrayTop;
|
||||
public Transform servingTrayFoodSpawnPoint;
|
||||
public Transform servingTrayPresentingPosition;
|
||||
public float servingTrayTopLiftAmount = 0.5f;
|
||||
public float spawnedFoodDiameter = 0.5f;
|
||||
|
||||
public Transform backRoom;
|
||||
public float backRoomMovingTime = 5f;
|
||||
public int ignorePlayerCollisionLayer = 2;
|
||||
|
||||
private Vector3 notepadOriginalRotation;
|
||||
private Vector3 notepadFlippedRotation;
|
||||
private Vector3 servingTrayOriginalLocalPosition;
|
||||
private Vector3 servingTrayTopOriginalLocalPosition;
|
||||
private Vector3 startingPosition;
|
||||
|
||||
// states:
|
||||
@@ -35,15 +43,18 @@ public class CafeWaiterNPC : NPCController
|
||||
{
|
||||
state = 0;
|
||||
lastPlayerVoiceUpdateTime = Time.time;
|
||||
startingPosition = transform.position;
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
startingPosition = transform.position;
|
||||
notepadOriginalRotation = notepad.transform.localRotation.eulerAngles;
|
||||
notepadFlippedRotation = notepadOriginalRotation + new Vector3(0, 180, 0);
|
||||
servingTrayOriginalLocalPosition = servingTray.transform.localPosition;
|
||||
servingTrayTopOriginalLocalPosition = servingTrayTop.localPosition;
|
||||
notepad.SetActive(false);
|
||||
pen.gameObject.SetActive(false);
|
||||
servingTray.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
protected override void OnPlayerApproach()
|
||||
@@ -71,10 +82,16 @@ public class CafeWaiterNPC : NPCController
|
||||
// If currently not bringing food and the player leaves, then go back to idle state
|
||||
if (state != 3)
|
||||
{
|
||||
notepad.transform.localRotation = Quaternion.Euler(notepadOriginalRotation);
|
||||
notepad.SetActive(false);
|
||||
pen.StopWriting();
|
||||
pen.gameObject.SetActive(false);
|
||||
notepad.transform.localRotation = Quaternion.Euler(notepadOriginalRotation);
|
||||
|
||||
servingTray.parent = transform;
|
||||
servingTray.localPosition = servingTrayOriginalLocalPosition;
|
||||
servingTrayTop.localPosition = servingTrayTopOriginalLocalPosition;
|
||||
servingTray.gameObject.SetActive(false);
|
||||
|
||||
state = 0;
|
||||
}
|
||||
}
|
||||
@@ -105,7 +122,7 @@ public class CafeWaiterNPC : NPCController
|
||||
} else if (state == 2)
|
||||
{
|
||||
fmodWhisperBridge.DeactivateRecording();
|
||||
bool positiveAnswer = playerText.ToLower().Contains("ye") || playerText.ToLower().Contains("correct") | playerText.ToLower().Contains("right");
|
||||
bool positiveAnswer = IsPlayerAnswerPositive(playerText);
|
||||
SpeakVoiceLine(positiveAnswer ? 2 : 3);
|
||||
// Flip notepad back
|
||||
notepad.transform.DOLocalRotate(notepadOriginalRotation, 0.5f).OnComplete(() =>
|
||||
@@ -142,7 +159,18 @@ public class CafeWaiterNPC : NPCController
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private bool IsPlayerAnswerPositive(string playerText)
|
||||
{
|
||||
string lower = playerText.ToLower();
|
||||
return lower.Contains("ye")
|
||||
|| lower.Contains("correct")
|
||||
|| lower.Contains("right")
|
||||
|| lower.Contains("sure")
|
||||
|| lower.Contains("of course")
|
||||
|| lower.Contains("okay")
|
||||
|| lower.Contains("yup")
|
||||
|| lower.Contains("affirmative");
|
||||
}
|
||||
|
||||
private async void BringFood()
|
||||
{
|
||||
@@ -157,20 +185,26 @@ public class CafeWaiterNPC : NPCController
|
||||
GameObject spawnedObject = await ModelGenerationUtils.Instance.SpawnModel(encodedModel, spawnedFoodDiameter);
|
||||
|
||||
// Come back
|
||||
servingTray.gameObject.SetActive(true);
|
||||
transform.DOMove(startingPosition, backRoomMovingTime).OnComplete(() =>
|
||||
{
|
||||
spawnedObject.transform.position = plate.position + new Vector3(0, 1f, 0);
|
||||
servingTray.parent = null;
|
||||
servingTray.DOMove(servingTrayPresentingPosition.position, 1f).OnComplete(() =>
|
||||
{
|
||||
spawnedObject.transform.position = servingTrayFoodSpawnPoint.position;
|
||||
InitializeSpawnedObject(spawnedObject);
|
||||
servingTrayTop.DOLocalMove(servingTrayTop.localPosition + new Vector3(0, servingTrayTopLiftAmount, 0), 1f);
|
||||
|
||||
SpeakVoiceLine(4);
|
||||
|
||||
state = 4;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
private void InitializeSpawnedObject(GameObject spawnedObject)
|
||||
{
|
||||
Rigidbody rigidbody = spawnedObject.AddComponent<Rigidbody>();
|
||||
rigidbody.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic;
|
||||
|
||||
//spawnedObject.AddComponent<NetworkObject>();
|
||||
//spawnedObject.AddComponent<NetworkTransform>();
|
||||
|
||||
@@ -26,25 +26,13 @@ public abstract class NPCController : MonoBehaviour
|
||||
|
||||
private float[] rmsCurve;
|
||||
private EventInstance currentVoicelineEvent;
|
||||
private bool isSpeaking;
|
||||
private float smoothed;
|
||||
|
||||
// If you change RMS window in Python, update this
|
||||
private const float FRAME_DURATION = 0.02f;
|
||||
private float sampleRate = 1f / FRAME_DURATION; // RMS samples per second (20ms windows)
|
||||
private readonly float sampleRate = 1f / FRAME_DURATION; // RMS samples per second (20ms windows)
|
||||
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Awake()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Start()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
@@ -65,7 +53,7 @@ public abstract class NPCController : MonoBehaviour
|
||||
}
|
||||
}
|
||||
|
||||
if (isSpeaking && rmsCurve != null && currentVoicelineEvent.isValid())
|
||||
if (rmsCurve != null && currentVoicelineEvent.isValid())
|
||||
{
|
||||
AnimateMouth();
|
||||
}
|
||||
@@ -105,30 +93,14 @@ public abstract class NPCController : MonoBehaviour
|
||||
mouth.localScale = s;
|
||||
}
|
||||
|
||||
public void PlayerApproach() {
|
||||
|
||||
private void StopSpeaking()
|
||||
{
|
||||
isSpeaking = false;
|
||||
smoothed = inverted ? maxScaleY : minScaleY;
|
||||
|
||||
if (mouth != null)
|
||||
{
|
||||
var scale = mouth.localScale;
|
||||
scale.y = smoothed;
|
||||
mouth.localScale = scale;
|
||||
}
|
||||
|
||||
currentVoicelineEvent.release();
|
||||
}
|
||||
|
||||
public void PlayerApproach(Transform player) {
|
||||
playerTransform = player;
|
||||
OnPlayerApproach();
|
||||
}
|
||||
|
||||
public void PlayerLeave()
|
||||
{
|
||||
playerTransform = null;
|
||||
|
||||
OnPlayerLeave();
|
||||
}
|
||||
|
||||
@@ -136,6 +108,22 @@ public abstract class NPCController : MonoBehaviour
|
||||
|
||||
protected virtual void OnPlayerLeave() {}
|
||||
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (other.gameObject.tag == "Player Head")
|
||||
{
|
||||
playerTransform = other.transform;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnTriggerExit(Collider other)
|
||||
{
|
||||
if (other.gameObject.tag == "Player Head")
|
||||
{
|
||||
playerTransform = null;
|
||||
}
|
||||
}
|
||||
|
||||
public void SpeakVoiceLine(int voiceLineId, GameObject emitter = null, float radioAmount = 0f)
|
||||
{
|
||||
if (voiceLineId < 0 || voiceLineId >= voiceLineKeys.Length)
|
||||
@@ -152,21 +140,15 @@ public abstract class NPCController : MonoBehaviour
|
||||
|
||||
LoadCurve(key); // load RMS data
|
||||
|
||||
emitter = emitter ?? gameObject;
|
||||
emitter = emitter != null ? emitter : gameObject;
|
||||
currentVoicelineEvent = AudioManager.Instance.PlayDialogue(characterSpecificFolder + "/" + key, emitter, radioAmount);
|
||||
if (!currentVoicelineEvent.isValid())
|
||||
{
|
||||
Debug.LogError("Failed to start dialogue event.");
|
||||
return;
|
||||
}
|
||||
isSpeaking = true;
|
||||
|
||||
// Stop mouth on end
|
||||
float voicelineDuration = rmsCurve.Length * FRAME_DURATION;
|
||||
Invoke(nameof(StopSpeaking), voicelineDuration + 0.1f);
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------
|
||||
// Load RMS Timeline (.txt)
|
||||
// ---------------------------
|
||||
|
||||
@@ -24,7 +24,7 @@ public class NPCTriggerArea : MonoBehaviour
|
||||
if (isEnter && other.gameObject.tag == "Player Head")
|
||||
{
|
||||
|
||||
npcController.PlayerApproach(other.transform);
|
||||
npcController.PlayerApproach();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using DG.Tweening;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
|
||||
@@ -7,12 +7,15 @@ public class ShapeDetectionNPC : NPCController
|
||||
[Header("Shape Detection Minigame Config")]
|
||||
public QuestMarker questMarker;
|
||||
public RadioTransmitter radio;
|
||||
public Transform computerKeyboardKey;
|
||||
public ComputerPrinter computerPrinter;
|
||||
public PushableButton computerKeyboardKey;
|
||||
public Printer3DInputHole printerInsertionHole;
|
||||
public Texture2D GeneratedTexture { get; private set; }
|
||||
public ComputerPrinter computerPrinter;
|
||||
public ShapeScanner shapeScanner;
|
||||
public GameObject staticRadio;
|
||||
public Transform questMarkerPoint;
|
||||
public float radioAmount = 1f;
|
||||
public Transform[] movementPath;
|
||||
public float moveSpeedPerSecond = 2f;
|
||||
|
||||
|
||||
// states:
|
||||
@@ -22,6 +25,9 @@ public class ShapeDetectionNPC : NPCController
|
||||
// 3 - player spoke into the radio
|
||||
// 4 - player pressed enter on keyboard
|
||||
// 5 - player inserted picture into printer
|
||||
// 6 - player completed first shape scanner config
|
||||
// 7 - shape scanner completed
|
||||
// 8 - moving away
|
||||
private int state;
|
||||
private float lastPlayerApproachTime;
|
||||
|
||||
@@ -35,8 +41,10 @@ public class ShapeDetectionNPC : NPCController
|
||||
{
|
||||
radio.OnPlayerPickUp += OnPlayerPickedUpRadio;
|
||||
radio.OnPlayerFinishedSpeaking += OnPlayerSpokeIntoRadio;
|
||||
computerPrinter.OnImagePrinted += OnPlayerPrintedImage;
|
||||
printerInsertionHole.OnPlayerInsertedPrintable += OnPlayerInitiatedPrinting;
|
||||
computerPrinter.OnImagePrinted += OnPlayerPrintedImage;
|
||||
shapeScanner.OnConfigCompleted += OnPlayerCompletedFirstConfiguration;
|
||||
shapeScanner.OnAllCompleted += OnShapeScannerCompleted;
|
||||
}
|
||||
|
||||
protected async override void OnPlayerApproach()
|
||||
@@ -100,7 +108,8 @@ public class ShapeDetectionNPC : NPCController
|
||||
{
|
||||
SpeakVoiceLine(3, radio.gameObject, radioAmount);
|
||||
state = 3;
|
||||
questMarker.MoveTo(computerKeyboardKey);
|
||||
questMarker.MoveTo(computerKeyboardKey.transform);
|
||||
computerKeyboardKey.Deactivate();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -123,4 +132,48 @@ public class ShapeDetectionNPC : NPCController
|
||||
questMarker.MoveTo(shapeScanner.transform, true);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnPlayerCompletedFirstConfiguration()
|
||||
{
|
||||
if (state == 5)
|
||||
{
|
||||
SpeakVoiceLine(6, radio.gameObject, radioAmount);
|
||||
state = 6;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnShapeScannerCompleted()
|
||||
{
|
||||
if (state == 6)
|
||||
{
|
||||
state = 7;
|
||||
questMarker.MoveTo(questMarkerPoint);
|
||||
}
|
||||
}
|
||||
|
||||
private void MoveToNextPoint(int pointIndex)
|
||||
{
|
||||
Transform nextPoint = movementPath[pointIndex];
|
||||
float moveDuration = (nextPoint.position - transform.position).magnitude / moveSpeedPerSecond;
|
||||
transform.DOMove(nextPoint.position, moveDuration).SetEase(Ease.Linear).OnComplete(() =>
|
||||
{
|
||||
if (pointIndex < movementPath.Length - 1)
|
||||
{
|
||||
MoveToNextPoint(pointIndex + 1);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public async void OnPlayerEnteredRoom()
|
||||
{
|
||||
if (state == 7)
|
||||
{
|
||||
state = 8;
|
||||
staticRadio.SetActive(false);
|
||||
questMarker.gameObject.SetActive(false);
|
||||
SpeakVoiceLine(7, gameObject, 0);
|
||||
await Task.Delay(6500);
|
||||
MoveToNextPoint(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,15 +12,21 @@ public class ReleasableButton : MonoBehaviour
|
||||
public float moveDuration = 0.25f;
|
||||
public float moveAmount = 0.05f;
|
||||
|
||||
private bool isLocked;
|
||||
private float upPositionY;
|
||||
private float downPositionY;
|
||||
private bool isButtonDown;
|
||||
|
||||
// button state:
|
||||
// 0 - up
|
||||
// 1 - down
|
||||
// 2 - moving
|
||||
private int buttonState;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
upPositionY = movableParts.localPosition.y;
|
||||
downPositionY = movableParts.localPosition.y - moveAmount;
|
||||
isButtonDown = false;
|
||||
buttonState = 0;
|
||||
}
|
||||
|
||||
// Start is called before the first frame update
|
||||
@@ -37,7 +43,8 @@ public class ReleasableButton : MonoBehaviour
|
||||
|
||||
private void OnTriggerEnter(Collider collider)
|
||||
{
|
||||
if (!isButtonDown && collider.gameObject.tag.EndsWith("Hand"))
|
||||
// if button is up, start moving down
|
||||
if (buttonState == 0 &&!isLocked && collider.gameObject.tag.EndsWith("Hand"))
|
||||
{
|
||||
Activate();
|
||||
OnButtonPressed?.Invoke();
|
||||
@@ -46,7 +53,8 @@ public class ReleasableButton : MonoBehaviour
|
||||
|
||||
private void OnTriggerExit(Collider collider)
|
||||
{
|
||||
if (isButtonDown && collider.gameObject.tag.EndsWith("Hand"))
|
||||
// if button is down, start moving up
|
||||
if (buttonState == 1 && !isLocked && collider.gameObject.tag.EndsWith("Hand"))
|
||||
{
|
||||
Deactivate();
|
||||
OnButtonReleased?.Invoke();
|
||||
@@ -55,15 +63,33 @@ public class ReleasableButton : MonoBehaviour
|
||||
|
||||
private void Activate()
|
||||
{
|
||||
movableParts.DOLocalMoveY(downPositionY, moveDuration);
|
||||
isButtonDown = true;
|
||||
buttonState = 2;
|
||||
movableParts.DOLocalMoveY(downPositionY, moveDuration).OnComplete(() =>
|
||||
{
|
||||
buttonState = 1;
|
||||
});
|
||||
|
||||
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.Click, gameObject);
|
||||
}
|
||||
|
||||
private void Deactivate()
|
||||
{
|
||||
movableParts.DOLocalMoveY(upPositionY, moveDuration);
|
||||
isButtonDown = false;
|
||||
buttonState = 2;
|
||||
movableParts.DOLocalMoveY(upPositionY, moveDuration).OnComplete(() =>
|
||||
{
|
||||
buttonState = 0;
|
||||
});
|
||||
|
||||
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.Click, gameObject);
|
||||
}
|
||||
|
||||
public void Lock()
|
||||
{
|
||||
isLocked = true;
|
||||
}
|
||||
|
||||
public void Unlock()
|
||||
{
|
||||
isLocked = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class NPCFinalTriggerArea : MonoBehaviour
|
||||
{
|
||||
public ShapeDetectionNPC npc;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (other.gameObject.tag == "Player Head")
|
||||
{
|
||||
npc.OnPlayerEnteredRoom();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3a356edc14b3aeb48b95081f0d876053
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -11,7 +11,7 @@ public class Printer3D : MonoBehaviour
|
||||
|
||||
private bool isPrinting = false;
|
||||
private EventInstance printingSound;
|
||||
private GameObject GeneratedModel;
|
||||
private ParticleSystem.EmissionModule particleEmission;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
@@ -20,6 +20,9 @@ public class Printer3D : MonoBehaviour
|
||||
printingSound.setParameterByName("3DPrinterPrintingJob", 1);
|
||||
printingSound.setParameterByName("Occlusion", 0);
|
||||
printingSound.set3DAttributes(FMODUnity.RuntimeUtils.To3DAttributes(spawnPoint));
|
||||
|
||||
particleEmission = GetComponentInChildren<ParticleSystem>().emission;
|
||||
particleEmission.enabled = false;
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
@@ -33,26 +36,22 @@ public class Printer3D : MonoBehaviour
|
||||
isPrinting = true;
|
||||
printingSound.start();
|
||||
printingSound.setParameterByName("3DPrinterPrintingJob", 0);
|
||||
particleEmission.enabled = true;
|
||||
|
||||
string encodedTexture = Convert.ToBase64String(texture.EncodeToJPG());
|
||||
byte[] encodedModel = await TrellisClient.Instance.GenerateModel(encodedTexture);
|
||||
|
||||
GameObject spawnedObject = await ModelGenerationUtils.Instance.SpawnModel(encodedModel, printedObjectSize);
|
||||
InitializeSpawnedObject(spawnedObject);
|
||||
if (GeneratedModel != null)
|
||||
{
|
||||
// Destroy previous generated object (first move out of ShapeScanner to trigger OnTriggerExit
|
||||
GeneratedModel.transform.position = Vector3.zero;
|
||||
}
|
||||
GeneratedModel = spawnedObject;
|
||||
|
||||
printingSound.setParameterByName("3DPrinterPrintingJob", 1);
|
||||
particleEmission.enabled = false;
|
||||
isPrinting = false;
|
||||
}
|
||||
|
||||
private void InitializeSpawnedObject(GameObject spawnedObject)
|
||||
{
|
||||
GameObject spawnedObjectParent = new GameObject("SpawnedModelParent");
|
||||
GameObject spawnedObjectParent = new("SpawnedModelParent");
|
||||
spawnedObjectParent.transform.parent = spawnPoint;
|
||||
spawnedObjectParent.transform.position = spawnPoint.transform.position;
|
||||
spawnedObjectParent.layer = ignorePlayerCollisionLayer;
|
||||
|
||||
@@ -40,7 +40,6 @@ public class Printer3DInputHole : MonoBehaviour
|
||||
{
|
||||
ReleaseFromPlayer(printable);
|
||||
InsertPrintable(printable);
|
||||
OnPlayerInsertedPrintable?.Invoke();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -82,6 +81,7 @@ public class Printer3DInputHole : MonoBehaviour
|
||||
{
|
||||
printer.PrintObject(printable.GetTexture());
|
||||
Destroy(printable.gameObject);
|
||||
OnPlayerInsertedPrintable?.Invoke();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using System.Threading.Tasks;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.XR.Interaction.Toolkit;
|
||||
@@ -14,49 +15,88 @@ public class RadioTransmitter : XRGrabInteractable
|
||||
public ReleasableButton radioButton;
|
||||
public TextMeshProUGUI computerScreen;
|
||||
|
||||
[Header("Particle System Config")]
|
||||
public ParticleSystem particles;
|
||||
public float baseEmissionRate = 3;
|
||||
public float maxExtraEmissionRate = 50;
|
||||
|
||||
private bool isRecording;
|
||||
private ParticleSystem.EmissionModule particleEmission;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
radioButton.OnButtonPressed += OnRadioButtonPressed;
|
||||
radioButton.OnButtonReleased += OnRadioButtonReleased;
|
||||
radioButton.Lock();
|
||||
isRecording = false;
|
||||
|
||||
particleEmission = particles.emission;
|
||||
particleEmission.enabled = false;
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
if (particleEmission.enabled)
|
||||
{
|
||||
particles.transform.LookAt(computerScreen.transform.position);
|
||||
if (isRecording)
|
||||
{
|
||||
particleEmission.rateOverTime = baseEmissionRate + fmodWhisperBridge.GetNormalizedVolume01() * maxExtraEmissionRate;
|
||||
} else
|
||||
{
|
||||
particleEmission.rateOverTime = baseEmissionRate;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnSelectEntered(SelectEnterEventArgs args)
|
||||
protected async override void OnSelectEntered(SelectEnterEventArgs args)
|
||||
{
|
||||
base.OnSelectEntered(args);
|
||||
OnPlayerPickUp?.Invoke();
|
||||
|
||||
await Task.Delay(100);
|
||||
radioButton.Unlock();
|
||||
}
|
||||
|
||||
protected override void OnSelectExited(SelectExitEventArgs args)
|
||||
{
|
||||
base.OnSelectExited(args);
|
||||
radioButton.Lock();
|
||||
}
|
||||
|
||||
private void OnRadioButtonPressed()
|
||||
{
|
||||
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.RadioButton, gameObject);
|
||||
fmodWhisperBridge.OnWhisperSegmentUpdated += OnPlayerSpeechUpdated;
|
||||
fmodWhisperBridge.OnWhisperSegmentFinished += OnPlayerSpeechFinished;
|
||||
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.RadioButton, gameObject);
|
||||
fmodWhisperBridge.ActivateRecording();
|
||||
|
||||
isRecording = true;
|
||||
particleEmission.enabled = true;
|
||||
}
|
||||
|
||||
private void OnRadioButtonReleased()
|
||||
{
|
||||
fmodWhisperBridge.OnWhisperSegmentUpdated -= OnPlayerSpeechUpdated;
|
||||
fmodWhisperBridge.OnWhisperSegmentFinished -= OnPlayerSpeechFinished;
|
||||
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.RadioButton, gameObject);
|
||||
fmodWhisperBridge.DeactivateRecording();
|
||||
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.RadioButton, gameObject);
|
||||
|
||||
isRecording = false;
|
||||
}
|
||||
|
||||
private void OnPlayerSpeechUpdated(string text)
|
||||
{
|
||||
computerScreen.text = text;
|
||||
OnPlayerFinishedSpeaking?.Invoke();
|
||||
}
|
||||
|
||||
private void OnPlayerSpeechFinished(string playerText)
|
||||
{
|
||||
computerScreen.text = playerText;
|
||||
OnPlayerFinishedSpeaking?.Invoke();
|
||||
fmodWhisperBridge.OnWhisperSegmentUpdated -= OnPlayerSpeechUpdated;
|
||||
fmodWhisperBridge.OnWhisperSegmentFinished -= OnPlayerSpeechFinished;
|
||||
|
||||
particleEmission.enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +1,21 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.XR.Interaction.Toolkit;
|
||||
|
||||
|
||||
[Serializable]
|
||||
public class BoolRow
|
||||
{
|
||||
public List<bool> cells = new();
|
||||
|
||||
public BoolRow(List<bool> cells)
|
||||
{
|
||||
this.cells = cells;
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
@@ -17,93 +24,95 @@ public class ShapeScannerConfiguration
|
||||
public int columns = 6;
|
||||
public float requiredCorrectPercentage = 80.0f;
|
||||
public List<BoolRow> rows = new();
|
||||
public ShapeScannerConfiguration(int columns, float requiredCorrectPercentage, List<BoolRow> rows)
|
||||
{
|
||||
this.columns = columns;
|
||||
this.requiredCorrectPercentage = requiredCorrectPercentage;
|
||||
this.rows = rows;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public class ShapeScanner : MonoBehaviour
|
||||
{
|
||||
public List<ShapeScannerConfiguration> configurations = new List<ShapeScannerConfiguration>();
|
||||
public delegate void OnConfigCompletedDelegate();
|
||||
public event OnConfigCompletedDelegate OnConfigCompleted;
|
||||
public delegate void OnAllCompletedDelegate();
|
||||
public event OnAllCompletedDelegate OnAllCompleted;
|
||||
|
||||
[Header("Static References")]
|
||||
public List<ShapeScannerConfiguration> configurations = new();
|
||||
public ShapeScannerRay rayPrefab;
|
||||
public Transform raySpawnCorner1;
|
||||
public Transform raySpawnCorner2;
|
||||
public Transform rayParent;
|
||||
public TextMeshProUGUI currentConfigurationDisplay;
|
||||
public TextMeshProUGUI correctPercentageDisplay;
|
||||
public ParticleSystem particles;
|
||||
public XRInteractionManager interactionManager;
|
||||
|
||||
[Header("Materials")]
|
||||
public Material requiredAndActive;
|
||||
public Material requiredAndPassive;
|
||||
public Material notRequiredAndActive;
|
||||
public Material notRequiredAndPassive;
|
||||
|
||||
private List<GameObject> existingRays;
|
||||
[Header("On Completion")]
|
||||
public LineRenderer lineRenderer;
|
||||
public Transform lineStart;
|
||||
public Transform lineEnd;
|
||||
public MeshRenderer activatableRenderer;
|
||||
public Material activatableActiveMaterial;
|
||||
public HingeJoint doorJoint;
|
||||
public Collider doorInvisibleWall;
|
||||
|
||||
private List<ShapeScannerRay> existingRays;
|
||||
private float raySpawnDistanceX;
|
||||
private float raySpawnDistanceZ;
|
||||
private int currentConfiguration;
|
||||
private int rayCount;
|
||||
private int correctRayStates;
|
||||
|
||||
private GameObject currentlyScannableObject;
|
||||
private int totalRayCount;
|
||||
private int correctRayCount;
|
||||
private bool isCompleted;
|
||||
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
existingRays = new List<GameObject>();
|
||||
existingRays = new List<ShapeScannerRay>();
|
||||
raySpawnDistanceX = raySpawnCorner2.localPosition.x - raySpawnCorner1.localPosition.x;
|
||||
raySpawnDistanceZ = raySpawnCorner2.localPosition.z - raySpawnCorner1.localPosition.z;
|
||||
|
||||
lineRenderer.enabled = false;
|
||||
isCompleted = false;
|
||||
currentConfiguration = 0;
|
||||
InitializeConfiguration();
|
||||
InitializeConfiguration(configurations[0]);
|
||||
UpdateCurrentConfigurationDisplay(currentConfiguration);
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void OnTriggerEnter(Collider other)
|
||||
if (lineRenderer.enabled)
|
||||
{
|
||||
if (other.tag == rayPrefab.scannableTag)
|
||||
{
|
||||
currentlyScannableObject = other.gameObject;
|
||||
lineRenderer.SetPosition(0, lineStart.position);
|
||||
lineRenderer.SetPosition(1, lineEnd.position);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnTriggerExit(Collider other)
|
||||
private void InitializeConfiguration(ShapeScannerConfiguration configuration)
|
||||
{
|
||||
if (other.tag == rayPrefab.scannableTag)
|
||||
{
|
||||
currentlyScannableObject = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void InitializeConfiguration()
|
||||
{
|
||||
// Delete all existing rays first
|
||||
foreach (GameObject ray in existingRays)
|
||||
{
|
||||
Destroy(ray);
|
||||
}
|
||||
if (currentlyScannableObject != null)
|
||||
{
|
||||
currentlyScannableObject.transform.position = Vector3.zero;
|
||||
Destroy(currentlyScannableObject);
|
||||
}
|
||||
|
||||
ShapeScannerConfiguration configuration = configurations[currentConfiguration];
|
||||
// Create rays
|
||||
int rayRowCount = configuration.rows.Count;
|
||||
for (int i = 0; i < rayRowCount; i++)
|
||||
{
|
||||
float rayPosX = raySpawnCorner1.localPosition.x + i * raySpawnDistanceX / (rayRowCount - 1);
|
||||
float rayPosZ = raySpawnCorner1.localPosition.z + i * raySpawnDistanceZ / (rayRowCount - 1);
|
||||
for (int j = 0; j < rayRowCount; j++)
|
||||
{
|
||||
// Local position
|
||||
float rayPosZ = raySpawnCorner1.localPosition.z + j * raySpawnDistanceZ / (rayRowCount - 1);
|
||||
float rayPosX = raySpawnCorner1.localPosition.x + j * raySpawnDistanceX / (rayRowCount - 1);
|
||||
Vector3 rayPos = new Vector3(rayPosX, 0, rayPosZ);
|
||||
ShapeScannerRay ray = Instantiate(rayPrefab, rayParent);
|
||||
ray.transform.localPosition = rayPos;
|
||||
existingRays.Add(ray.gameObject);
|
||||
existingRays.Add(ray);
|
||||
|
||||
bool rayCollisionRequired = configuration.rows[i].cells[j];
|
||||
if (rayCollisionRequired)
|
||||
@@ -117,41 +126,88 @@ public class ShapeScanner : MonoBehaviour
|
||||
}
|
||||
}
|
||||
// Count total rays and required collision rays
|
||||
rayCount = configuration.rows.SelectMany(row => row.cells).Count();
|
||||
correctRayStates = configuration.rows.SelectMany(row => row.cells).Count(cell => !cell);
|
||||
UpdateDisplay(calculateCorrectPercentage());
|
||||
totalRayCount = configuration.rows.SelectMany(row => row.cells).Count();
|
||||
correctRayCount = configuration.rows.SelectMany(row => row.cells).Count(cell => !cell);
|
||||
|
||||
float percentage = CalculateCorrectPercentage();
|
||||
UpdateDisplay(percentage);
|
||||
}
|
||||
|
||||
private float calculateCorrectPercentage()
|
||||
private void OnConfigurationComplete()
|
||||
{
|
||||
return Mathf.RoundToInt((float)correctRayStates / rayCount * 100);
|
||||
// Destroy colliding scannable objects
|
||||
HashSet<GameObject> allCollidingObjects = new();
|
||||
foreach (ShapeScannerRay ray in existingRays)
|
||||
{
|
||||
allCollidingObjects.UnionWith(ray.GetCollidingObjects());
|
||||
}
|
||||
foreach (GameObject collidingObject in allCollidingObjects)
|
||||
{
|
||||
// Release player holding it
|
||||
var grab = collidingObject.GetComponent<XRGrabInteractable>();
|
||||
if (grab != null && grab.isSelected)
|
||||
{
|
||||
grab.enabled = false;
|
||||
}
|
||||
collidingObject.transform.position = Vector3.zero;
|
||||
Destroy(collidingObject);
|
||||
}
|
||||
|
||||
public void IncrementCorrectRayCount()
|
||||
// Destroy all existing rays
|
||||
foreach (ShapeScannerRay ray in existingRays)
|
||||
{
|
||||
correctRayStates++;
|
||||
float correctPercentage = calculateCorrectPercentage();
|
||||
Destroy(ray.gameObject);
|
||||
}
|
||||
existingRays.Clear();
|
||||
correctRayCount = 0;
|
||||
|
||||
// Play sound effect and emit particles
|
||||
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.ShapeScannerSuccess, gameObject);
|
||||
if (!particles.isPlaying) particles.Play();
|
||||
particles.Emit(100);
|
||||
|
||||
OnConfigCompleted?.Invoke();
|
||||
}
|
||||
|
||||
private float CalculateCorrectPercentage()
|
||||
{
|
||||
return (float) correctRayCount / totalRayCount * 100;
|
||||
}
|
||||
|
||||
public async void IncrementCorrectRayCount()
|
||||
{
|
||||
correctRayCount++;
|
||||
float correctPercentage = CalculateCorrectPercentage();
|
||||
UpdateDisplay(correctPercentage);
|
||||
if (isCompleted)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (correctPercentage >= configurations[currentConfiguration].requiredCorrectPercentage)
|
||||
{
|
||||
OnConfigurationComplete();
|
||||
await Task.Delay(1000);
|
||||
|
||||
UpdateCurrentConfigurationDisplay(currentConfiguration + 1);
|
||||
if (currentConfiguration + 1 < configurations.Count)
|
||||
{
|
||||
currentConfiguration++;
|
||||
InitializeConfiguration();
|
||||
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.ShapeScannerSuccess, gameObject);
|
||||
InitializeConfiguration(configurations[currentConfiguration]);
|
||||
} else
|
||||
{
|
||||
Debug.Log("Shape checker completed");
|
||||
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.ShapeScannerSuccess, gameObject);
|
||||
// Initialize configuration with no rays requiring collision
|
||||
List<BoolRow> rows = Enumerable.Repeat(new BoolRow(Enumerable.Repeat(false, 6).ToList()), 6).ToList();
|
||||
ShapeScannerConfiguration configuration = new ShapeScannerConfiguration(6, 100, rows);
|
||||
InitializeConfiguration(configuration);
|
||||
OnCompleteAll();
|
||||
}
|
||||
}
|
||||
UpdateDisplay(correctPercentage);
|
||||
}
|
||||
|
||||
public void DecrementCorrectRayCount()
|
||||
{
|
||||
correctRayStates--;
|
||||
UpdateDisplay(calculateCorrectPercentage());
|
||||
correctRayCount--;
|
||||
UpdateDisplay(CalculateCorrectPercentage());
|
||||
}
|
||||
|
||||
private void UpdateDisplay(float percentage)
|
||||
@@ -163,4 +219,26 @@ public class ShapeScanner : MonoBehaviour
|
||||
{
|
||||
currentConfigurationDisplay.text = confNumber.ToString() + " / " + configurations.Count;
|
||||
}
|
||||
|
||||
private void OnCompleteAll()
|
||||
{
|
||||
isCompleted = true;
|
||||
|
||||
// Change card reader color to green
|
||||
activatableRenderer.material = activatableActiveMaterial;
|
||||
|
||||
// Enable door to be opened
|
||||
JointLimits doorJointLimits = doorJoint.limits;
|
||||
doorJointLimits.min = -90f;
|
||||
doorJointLimits.max = 90f;
|
||||
doorJoint.limits = doorJointLimits;
|
||||
|
||||
// Disable invisible wall
|
||||
doorInvisibleWall.enabled = false;
|
||||
|
||||
// Create line renderer from shape scanner to door card reader
|
||||
lineRenderer.enabled = true;
|
||||
|
||||
OnAllCompleted?.Invoke();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,11 +10,13 @@ public class ShapeScannerRay : MonoBehaviour
|
||||
|
||||
private ShapeScanner _scanner;
|
||||
private MeshRenderer[] meshRenderers;
|
||||
private HashSet<GameObject> collidingObjects;
|
||||
private bool _collisionRequired;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
meshRenderers = GetComponentsInChildren<MeshRenderer>();
|
||||
collidingObjects = new HashSet<GameObject>();
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
@@ -38,7 +40,12 @@ public class ShapeScannerRay : MonoBehaviour
|
||||
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (other.gameObject.tag == scannableTag)
|
||||
if (other.gameObject.CompareTag(scannableTag))
|
||||
{
|
||||
GameObject parent = other.transform.parent.gameObject;
|
||||
collidingObjects.Add(parent);
|
||||
// Only activate when this was the first object that entered collision
|
||||
if (collidingObjects.Count == 1)
|
||||
{
|
||||
foreach (MeshRenderer meshRenderer in meshRenderers)
|
||||
{
|
||||
@@ -47,17 +54,22 @@ public class ShapeScannerRay : MonoBehaviour
|
||||
if (_collisionRequired)
|
||||
{
|
||||
_scanner.IncrementCorrectRayCount();
|
||||
} else
|
||||
}
|
||||
else
|
||||
{
|
||||
_scanner.DecrementCorrectRayCount();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnTriggerExit(Collider other)
|
||||
{
|
||||
if (other.gameObject.tag == "ShapeScannable")
|
||||
if (other.gameObject.CompareTag(scannableTag))
|
||||
{
|
||||
GameObject parent = other.transform.parent.gameObject;
|
||||
collidingObjects.Remove(parent);
|
||||
if (collidingObjects.Count == 0)
|
||||
{
|
||||
foreach (MeshRenderer meshRenderer in meshRenderers)
|
||||
{
|
||||
@@ -66,10 +78,17 @@ public class ShapeScannerRay : MonoBehaviour
|
||||
if (_collisionRequired)
|
||||
{
|
||||
_scanner.DecrementCorrectRayCount();
|
||||
} else
|
||||
}
|
||||
else
|
||||
{
|
||||
_scanner.IncrementCorrectRayCount();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public HashSet<GameObject> GetCollidingObjects()
|
||||
{
|
||||
return collidingObjects;
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user