1
0
forked from cgvr/DeltaVR

26 Commits

Author SHA1 Message Date
24000ec80c add some voicelines to archery range minigame 2026-01-25 16:11:08 +02:00
ec45c402af add sound effects to button, mic stand, model generation, shape scanner 2026-01-25 15:10:42 +02:00
75bd66fc36 add back minigames after merge 2026-01-25 13:11:58 +02:00
19f8efc6a7 Merge remote-tracking branch 'upstream/master' 2026-01-25 12:31:58 +02:00
14c85c83a7 forgot to assign a variable 2026-01-21 19:35:54 +02:00
ca0a7dcc21 fixing merge issue 2026-01-21 19:33:40 +02:00
c620b9000d forgot to build the zip 2026-01-21 19:30:17 +02:00
4ee6dbb92d Final changes 2026-01-21 19:29:02 +02:00
36d6ff6d9b Merging into master 2026-01-21 19:21:36 +02:00
52701f3231 Erased debug element 2026-01-21 19:00:38 +02:00
Timur Nizamov
aeee055e18 voiceover vca and volume slider added to Unity and FMOD 2026-01-21 15:51:17 +02:00
Timur Nizamov
389707b5f7 added some sound in FMOD 2026-01-16 22:40:02 +02:00
Timur Nizamov
6def60df98 More voicelines added, PlayDialogue function updated 2026-01-16 17:37:42 +02:00
Timur Nizamov
641fe43472 Voiceline adding logic, fmod asset folder cleaning, fmod tweaks 2026-01-15 22:25:02 +02:00
31145f9735 Update README.md 2026-01-13 14:46:41 +00:00
91275418e4 fixed backwards doors issue 2026-01-11 18:08:49 +02:00
85edf6b43f fixed elevator buttons issue 2026-01-11 17:10:44 +02:00
Timur Nizamov
e6db72778b Colliders with Probuilder, FMOD Programmer Instrument API code start 2026-01-11 04:14:27 +02:00
Timur Nizamov
27fc11f8b2 A few reverb additions 2026-01-05 16:01:07 +02:00
a8bec4f5ff Update README.md 2026-01-03 14:50:22 +00:00
13c1e8a0f6 Changes in sound attributions 2025-12-27 12:17:15 +00:00
Ranno Samuel Adson
ee0b46f451 messed up the lightmap 2024-12-27 16:49:57 +02:00
Ranno Samuel Adson
2bf7f50802 worked on ground moddelling. Doing a quicksave before doing a large model alteration. 2024-12-27 16:23:50 +02:00
Ranno Samuel Adson
e9404b9b51 worked on ground moddelling. Doing a quicksave before doing a large model alteration. 2024-12-27 16:23:25 +02:00
Ranno Samuel Adson
28819a12a6 worked on ground moddelling. Doing a quicksave before altering materials. 2024-12-27 15:24:51 +02:00
Ranno Samuel Adson
7f4c83d397 making changes to lighting. This is a backup just in case 2024-12-27 14:11:36 +02:00
437 changed files with 6634 additions and 249 deletions

View File

@@ -1,26 +1,28 @@
### TODO
* glTF loading: vahetada ära shader Universal render pipelin Lit, mitte panna buildi kaasa glTf oma
* shape scanner initialisation correct number of confs
* user flow: grab item? mida krabada
* user prefs: settinguid meelde jätta
* võtta spawnitud mudeli mõõtmed: mehscollideri max x, max y, etc? bounding box?
* võtta spawnitud mudeli mõõtmed: meshcollideri max x, max y, etc? bounding box?
* mängija collide'ib spawnitud mudeliga - ei tohiks
* shape scanner:
* initialisation correct number of confs
* mitte-liigutatavaks, aga samal ajal kõrgus dünaamiliselt õige. või lihtsalt piisavalt madalale asetada või väljaulatuv kang millest krabada
* peenikesemad kiired
* mitte lihtsalt ontriggerenter ja -exit, sest kui mitu objekti lähevad samal ajal sisse
* kui mudel despawnib shape scanneri kiirte sees olles siis collision detection läheb katki
* mustad kiired on halvasti nähtavad pruuni materjali taustal
* kui üks config completed, siis mängijale aru saada: sound effect, "loading"
* mikri vana tekst ei kao ära
* speech-to-text:
* vana tekst ei kao ära
* kogu tekst muutub ootamatult "Silence"-iks
* archery range:
* kui midagi laeb (wire aktiivne), siis particle'id voolavad mööda toru
* kui midagi laeb (wire aktiivne), siis particle'id võiks voolata mööda toru
* highscore json tühjaks
* quest marker järjest järgmise tegevuse kohal: mikrofon, siis nupud
* character billboard:
* peaks vaatama pea poole, mitte xr origin
* klaas on näha temast eespool
* pööramine kaamera poole - sujuvalt (slerp)
* küsida Danielilt asukoha kohta
### Notes

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6a5c837d928416b468e7886bb15a44ea
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 659e5b6b771c6e84288fab70870e71ca
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 9d9d2a3944a244a4cb506fe9a06b6eab
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 45fe15686901bcf4d806b3fcfa9767af
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 18de2bee3762c3d42aade5e9a1105f2d
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 98d6925b0e4041d4cb810364c9e59186
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 1064f096f3015c74c943703650d7406b
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 254823b7963809f489ac39e4edfc6a46
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6da26a4752be7ce43a29e0e1bf247e72
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 477e8c72e4a98d84bb70bfb6e1399699
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 35b818bce640964478f8e964b97d2294
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 1629c3cacc79199489bb6696a90c6b74
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 0322733d2ec0a5e4880d27eba19da8d4
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 92658b78307678e4790910a8d7799650
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 3dadebd0d94106b44a80fbcb1965d6de
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 9270b2bbe46c8fe4fb76644cf9e0c2a2
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 53dac4a8b4a6e5845b4ca1c859e81866
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 620343e30e35adf4aaf3fe1296540e0f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 497e3485a60147a41a9a6df9ff32b6b6
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 8d725d2a72e75474da7b2012a77b2039
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 3301bed657a92434fb8f62ac4bd61406
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 634c2a7aac3130544aeae124c4c49bb0
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -30,7 +30,6 @@ public class ArcheryRange : NetworkBehaviour
public ArcheryRangeModelGenerationController modelGenerationController;
public KeyboardManager keyboardManager;
public NPCController npcController;
private List<ArcheryTarget> _targets;
@@ -59,11 +58,6 @@ public class ArcheryRange : NetworkBehaviour
StartCoroutine(DelayedSetHighScoreText(10f)); // Cannot immediately assign these values because fishnet needs time.
}
private void Start()
{
npcController.StartTalking();
}
private System.Collections.IEnumerator DelayedSetHighScoreText(float delaySeconds)
{
yield return new WaitForSeconds(delaySeconds);

View File

@@ -2551,7 +2551,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: ebe1ab889a9bed940995d4f47bc743ef, type: 3}
m_Name:
m_EditorClassIdentifier:
target: 2
target: 5
--- !u!1 &3847096334227967442
GameObject:
m_ObjectHideFlags: 0
@@ -3539,8 +3539,8 @@ RectTransform:
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: -2000.1, y: 34.7}
m_SizeDelta: {x: 117.7, y: 49.6}
m_AnchoredPosition: {x: -2404.8, y: 34.7}
m_SizeDelta: {x: 220, y: 49.6}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2306375091028476275
CanvasRenderer:
@@ -3570,7 +3570,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 'Music:'
m_text: 'Voiceovers:'
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: d564a6b9a8a781b438125b614edcc297, type: 2}
m_sharedMaterial: {fileID: 2467261418627247352, guid: d564a6b9a8a781b438125b614edcc297,
@@ -4890,7 +4890,7 @@ GameObject:
- component: {fileID: 9123126080211807181}
- component: {fileID: 2844805864736818914}
m_Layer: 5
m_Name: Music Slider
m_Name: Voiceover Slider
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

View File

@@ -8,7 +8,8 @@ public class SliderToVCA : MonoBehaviour
Ambiences,
Music,
SFX,
UI
UI,
Voiceovers
}
public VCATarget target;
@@ -40,6 +41,8 @@ private float GetInitialValueFromAudioManager()
return AudioManager.Instance.SFXVolume;
case VCATarget.UI:
return AudioManager.Instance.UIVolume;
case VCATarget.Voiceovers:
return AudioManager.Instance.VoiceoverVolume;
default:
return 0.5f;
}
@@ -76,6 +79,10 @@ private float GetInitialValueFromAudioManager()
case VCATarget.UI:
AudioManager.Instance.SetUIVCA(value);
break;
case VCATarget.Voiceovers:
AudioManager.Instance.SetVoiceoverVCA(value);
break;
}
}
}

View File

@@ -184,8 +184,6 @@ public class TutorialAudioListener : MonoBehaviour
}
}
private void HandleGrab(XRGrabInteractable grab)
{
if (grab == null)

View File

@@ -131,4 +131,4 @@ MonoBehaviour:
PlayerOcclusionWidening: 1
OcclusionLayer:
serializedVersion: 2
m_Bits: 0
m_Bits: 268438528

View File

@@ -20,6 +20,7 @@ public class AudioManager : MonoBehaviour
private VCA sfxVCA;
private VCA uiVCA;
private VCA ambienceVCA;
private VCA voiceoverVCA;
[SerializeField]
[Header("Volume")]
@@ -40,6 +41,9 @@ public class AudioManager : MonoBehaviour
public float UIVolume = 0.5f;
[Range(0, 1)]
public float VoiceoverVolume = 0.5f;
[Range(0, 1)]
private Bus masterBus;
private Bus ambientBus;
private Bus musicBus;
@@ -63,6 +67,7 @@ public class AudioManager : MonoBehaviour
// public static AudioManager instance;
private static EventInstance musicEventInstance;
private EVENT_CALLBACK dialogueCallback;
// public access for the Singleton
// and lazy instantiation if not exists
@@ -108,18 +113,22 @@ public class AudioManager : MonoBehaviour
_instance.sfxBus = RuntimeManager.GetBus("bus:/SFX");
_instance.uiBus = RuntimeManager.GetBus("bus:/UI");
_instance.masterVCA = RuntimeManager.GetVCA("vca:/Master");
_instance.musicVCA = RuntimeManager.GetVCA("vca:/Music");
_instance.ambienceVCA = RuntimeManager.GetVCA("vca:/Ambiences");
_instance.sfxVCA = RuntimeManager.GetVCA("vca:/SFX");
_instance.uiVCA = RuntimeManager.GetVCA("vca:/UI");
_instance.voiceoverVCA = RuntimeManager.GetVCA("vca:/Voiceovers");
_instance.masterVCA.setVolume(_instance.MasterVolume);
_instance.musicVCA.setVolume(_instance.MusicVolume);
_instance.ambienceVCA.setVolume(_instance.AmbienceVolume);
_instance.sfxVCA.setVolume(_instance.SFXVolume);
_instance.uiVCA.setVolume(_instance.UIVolume);
_instance.voiceoverVCA.setVolume(_instance.VoiceoverVolume);
_instance.dialogueCallback = new EVENT_CALLBACK(DialogueEventCallback);
}
@@ -152,6 +161,11 @@ public class AudioManager : MonoBehaviour
UIVolume = value;
uiVCA.setVolume(UIVolume);
}
public void SetVoiceoverVCA(float value)
{
VoiceoverVolume = value;
voiceoverVCA.setVolume(VoiceoverVolume);
}
private void Awake()
@@ -207,7 +221,7 @@ public class AudioManager : MonoBehaviour
EventInstance instance = RuntimeManager.CreateInstance(sound);
RuntimeManager.AttachInstanceToGameObject(instance, go);
instance.start();
// instance.release();
instance.release();
eventInstances.Add(instance);
return instance;
@@ -280,6 +294,106 @@ public class AudioManager : MonoBehaviour
//=====//
//=====//
public void PlayDialogue(string audioTableKey, GameObject emitter = null, float radioAmount = 0f)
{
var dialogueEvent = FMODEvents.Instance.VoiceoverAll;
if (dialogueEvent.IsNull)
{
Debug.LogWarning("Dialogue EventReference is not assigned!");
return;
}
EventInstance instance = RuntimeManager.CreateInstance(dialogueEvent);
if (emitter != null)
{
RuntimeManager.AttachInstanceToGameObject(instance, emitter);
instance.set3DAttributes(FMODUnity.RuntimeUtils.To3DAttributes(emitter.gameObject));
}
// Assign the FMOD parameter value (in this case: Continous type)
instance.setParameterByName("Radio", radioAmount);
// Pin the key for programmer sound callback
GCHandle stringHandle = GCHandle.Alloc(audioTableKey);
instance.setUserData(GCHandle.ToIntPtr(stringHandle));
// Set the callback for programmer sounds
instance.setCallback(dialogueCallback);
// Add occlusion if available on the emitter
if (emitter != null)
{
FirstPersonOcclusion occlusion = emitter.GetComponent<FirstPersonOcclusion>();
if (occlusion != null)
{
occlusion.InitialiseWithInstance(instance);
}
}
instance.start();
instance.release();
}
[AOT.MonoPInvokeCallback(typeof(EVENT_CALLBACK))]
private static FMOD.RESULT DialogueEventCallback(
EVENT_CALLBACK_TYPE type,
IntPtr instancePtr,
IntPtr parameterPtr)
{
EventInstance instance = new EventInstance(instancePtr);
instance.getUserData(out IntPtr stringPtr);
GCHandle stringHandle = GCHandle.FromIntPtr(stringPtr);
string key = stringHandle.Target as string;
switch (type)
{
case EVENT_CALLBACK_TYPE.CREATE_PROGRAMMER_SOUND:
{
var parameter = Marshal.PtrToStructure<PROGRAMMER_SOUND_PROPERTIES>(parameterPtr);
FMOD.Studio.SOUND_INFO soundInfo;
var result = RuntimeManager.StudioSystem.getSoundInfo(key, out soundInfo);
if (result != FMOD.RESULT.OK)
break;
FMOD.Sound sound;
RuntimeManager.CoreSystem.createSound(
soundInfo.name_or_data,
soundInfo.mode | FMOD.MODE.CREATECOMPRESSEDSAMPLE,
ref soundInfo.exinfo,
out sound
);
parameter.sound = sound.handle;
parameter.subsoundIndex = soundInfo.subsoundindex;
Marshal.StructureToPtr(parameter, parameterPtr, false);
break;
}
case EVENT_CALLBACK_TYPE.DESTROY_PROGRAMMER_SOUND:
{
var parameter = Marshal.PtrToStructure<PROGRAMMER_SOUND_PROPERTIES>(parameterPtr);
var sound = new FMOD.Sound(parameter.sound);
sound.release();
break;
}
case EVENT_CALLBACK_TYPE.DESTROYED:
{
// Release pinned string
stringHandle.Free();
break;
}
}
return FMOD.RESULT.OK;
}
public void StopSFX()
{
sfxBus.stopAllEvents(FMOD.Studio.STOP_MODE.IMMEDIATE);

View File

@@ -3,6 +3,9 @@ using UnityEngine;
public class FMODEvents : MonoBehaviour
{
[field: Header("Voiceline FMOD Programmer Event")]
[field: SerializeField] public EventReference VoiceoverAll { get; private set; }
[field: Header("Musical Ambiences")]
[field: SerializeField] public EventReference Kosmos { get; private set; }
@@ -19,6 +22,9 @@ public class FMODEvents : MonoBehaviour
[field: SerializeField] public EventReference BowGrab { get; private set; }
[field: SerializeField] public EventReference Spray { get; private set; }
[field: SerializeField] public EventReference Coughing { get; private set; }
[field: SerializeField] public EventReference KitchenPlate { get; private set; }
[field: SerializeField] public EventReference ShapeScannerSuccess { get; private set; }
[field: SerializeField] public EventReference Printing { get; private set; }
[field: Header("CAR")]
[field: SerializeField] public EventReference DoorOpen { get; private set; }
@@ -31,6 +37,7 @@ public class FMODEvents : MonoBehaviour
[field: SerializeField] public EventReference Hover { get; private set; }
[field: SerializeField] public EventReference LetterEnter { get; private set; }
[field: SerializeField] public EventReference LetterHover { get; private set; }
[field: SerializeField] public EventReference RadioButton { get; private set; }
[field: Header("Initial events")]
[field: SerializeField] public EventReference PortalSpacial { get; private set; }

View File

@@ -0,0 +1,13 @@
using UnityEngine;
public class VoiceoverTester : MonoBehaviour
{
//[Tooltip("Audio Table key")]
public string dialogueKey = "Chef/Ulrich_Terribly_Sorry1";
private void OnTriggerEnter(Collider other)
{
AudioManager.Instance.PlayDialogue(dialogueKey, gameObject, 0f);
//Debug.LogError("Voiceline played (in 3D)");
}
}

View File

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

View File

@@ -1,6 +1,7 @@
using System;
using UnityEngine;
using UnityEngine.UI;
using FMOD.Studio;
public class ArcheryRangeModelGenerationController : MonoBehaviour
{
@@ -18,8 +19,10 @@ public class ArcheryRangeModelGenerationController : MonoBehaviour
public Material modelDisplayActiveMaterial;
public Transform wire;
public Material wireActiveMaterial;
public NPCController npcController;
private bool modelGenerationInProgress;
private EventInstance printingSound;
// Start is called before the first frame update
void Start()
@@ -27,6 +30,9 @@ public class ArcheryRangeModelGenerationController : MonoBehaviour
imageGenerationButton.OnButtonPressed += InvokeImageGeneration;
modelGenerationButton.OnButtonPressed += InvokeModelGeneration;
modelGenerationInProgress = false;
printingSound = AudioManager.Instance.CreateInstance(FMODEvents.Instance.Printing);
printingSound.setParameterByName("3DPrinterPrintingJob", 1);
}
// Update is called once per frame
@@ -51,11 +57,17 @@ public class ArcheryRangeModelGenerationController : MonoBehaviour
{
modelGenerationButton.Deactivate();
}
npcController.SpeakVoiceLine(3);
}
private async void InvokeModelGeneration()
{
modelGenerationInProgress = true;
printingSound.start();
printingSound.setParameterByName("3DPrinterPrintingJob", 0);
string encodedTexture = Convert.ToBase64String(GeneratedTexture.EncodeToJPG());
byte[] encodedModel = await TrellisClient.Instance.GenerateModel(encodedTexture);
@@ -66,6 +78,9 @@ public class ArcheryRangeModelGenerationController : MonoBehaviour
spawnedObject.transform.position = modelDisplay.position;
GeneratedModel = spawnedObject;
printingSound.setParameterByName("3DPrinterPrintingJob", 1);
npcController.SpeakVoiceLine(4);
OnModelReady();
modelGenerationButton.Deactivate();
modelGenerationInProgress = false;
@@ -79,5 +94,6 @@ public class ArcheryRangeModelGenerationController : MonoBehaviour
}
modelDisplay.GetComponent<MeshRenderer>().material = modelDisplayActiveMaterial;
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.ShapeScannerSuccess, gameObject);
}
}

View File

@@ -8,6 +8,7 @@ public class MicrophoneStand : MonoBehaviour
public GameObject microphoneOffStatus;
public GameObject microphoneOnStatus;
public NPCController npcController;
public FMODWhisperBridge fmodWhisperBridge;
// Start is called before the first frame update
@@ -34,6 +35,8 @@ public class MicrophoneStand : MonoBehaviour
{
microphoneOffStatus.SetActive(false);
microphoneOnStatus.SetActive(true);
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.RadioButton, gameObject);
npcController.SpeakVoiceLine(1);
fmodWhisperBridge.ActivateRecording();
}
}
@@ -45,6 +48,8 @@ public class MicrophoneStand : MonoBehaviour
{
microphoneOffStatus.SetActive(true);
microphoneOnStatus.SetActive(false);
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.RadioButton, gameObject);
npcController.SpeakVoiceLine(2);
fmodWhisperBridge.DeactivateRecording();
}
}

View File

@@ -21,19 +21,17 @@ public class InvokeAiClient : MonoBehaviour
private void Awake()
{
httpClient = new HttpClient
{
Timeout = TimeSpan.FromSeconds(120)
};
httpClient.BaseAddress = new Uri(ConfigManager.Instance.Config.invokeAIUrl);
Instance = this;
}
// Start is called before the first frame update
void Start()
{
httpClient = new HttpClient
{
Timeout = TimeSpan.FromSeconds(120)
};
httpClient.BaseAddress = new Uri(ConfigManager.Instance.Config.invokeAIUrl);
}
// Update is called once per frame

View File

@@ -57,6 +57,7 @@ public class PushableButton : MonoBehaviour
{
movableParts.DOLocalMoveY(downPositionY, moveDuration);
isButtonDown = true;
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.Click, gameObject);
if (wire != null)
{
@@ -71,6 +72,7 @@ public class PushableButton : MonoBehaviour
{
movableParts.DOLocalMoveY(upPositionY, moveDuration);
isButtonDown = false;
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.Click, gameObject);
if (wire != null)
{

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