2 working sounds, updated scripts, fmod events

This commit is contained in:
Timur Nizamov
2025-10-15 23:34:25 +03:00
parent f542c4c57e
commit 16c4680d6c
291 changed files with 7031 additions and 11 deletions

View File

@@ -7,6 +7,8 @@ using UnityEditor;
using UnityEngine;
using UnityEngine.SceneManagement;
using STOP_MODE = FMOD.Studio.STOP_MODE;
public class AudioManager : MonoBehaviour
{
[Header("Volume")]
@@ -133,6 +135,48 @@ public class AudioManager : MonoBehaviour
Debug.LogWarning("EventReference is null, ignoring...");
}
}
public void PlayOneShot3D(EventReference sound, Vector3 position)
{
if (!IsEventReferenceValid(sound))
{
Debug.LogWarning("Tried to play invalid FMOD event (3D)");
return;
}
RuntimeManager.PlayOneShot(sound, position);
}
public EventInstance PlayAttachedInstance(EventReference sound, GameObject go)
{
if (!IsEventReferenceValid(sound))
{
Debug.LogWarning("Tried to play invalid FMOD event (attached)");
return default;
}
EventInstance instance = RuntimeManager.CreateInstance(sound);
RuntimeManager.AttachInstanceToGameObject(instance, go);
instance.start();
eventInstances.Add(instance);
return instance;
}
public void StopInstance(EventInstance instance, STOP_MODE mode = STOP_MODE.ALLOWFADEOUT)
{
if (!instance.isValid()) return;
instance.stop(mode);
instance.release();
eventInstances.Remove(instance);
}
public void SetParameter(EventInstance instance, string parameterName, float value)
{
if (!instance.isValid()) return;
instance.setParameterByName(parameterName, value);
}
public void InitializeMusic(EventReference musicEventReference)
{
if (musicEventReference.Guid == nullGuid)

View File

@@ -4,12 +4,21 @@ using UnityEngine;
public class FMODEvents : MonoBehaviour
{
[field: Header("SFX")]
[field: SerializeField] public EventReference TestSound { get; private set; }
[field: SerializeField] public EventReference Steps { get; private set; }
[field: SerializeField] public EventReference Teleport { get; private set; }
[field: SerializeField] public EventReference UFODestroy { get; private set; }
[field: SerializeField] public EventReference PortalEnter { get; private set; }
[field: SerializeField] public EventReference SprayerTake { get; private set; }
[field: SerializeField] public EventReference Spray { get; private set; }
[field: Header("CAR")]
[field: SerializeField] public EventReference DoorOpen { get; private set; }
[field: SerializeField] public EventReference DoorClose { get; private set; }
[field: Header("UI")]
[field: SerializeField] public EventReference ButtonClick { get; private set; }
[field: SerializeField] public EventReference ButtonSelect { get; private set; }
[field: SerializeField] public EventReference Click { get; private set; }
[field: SerializeField] public EventReference MapOpen { get; private set; }
[field: SerializeField] public EventReference Hover { get; private set; }
public static FMODEvents Instance { get; private set; }

View File

@@ -0,0 +1,35 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LoadBankAndScene : MonoBehaviour
{
[FMODUnity.BankRef]
public List<string> banks;
public static event Action OnBanksLoaded;
private void Awake()
{
LoadBanks();
}
public void LoadBanks()
{
foreach (string b in banks)
{
FMODUnity.RuntimeManager.LoadBank(b, true);
Debug.Log("Loaded bank " + b);
}
StartCoroutine(CheckBanksLoaded());
}
IEnumerator CheckBanksLoaded()
{
while (!FMODUnity.RuntimeManager.HaveAllBanksLoaded)
{
yield return null;
}
OnBanksLoaded?.Invoke();
}
}

View File

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