add project files

This commit is contained in:
Boris Nikolaev
2026-08-14 01:58:31 +03:00
parent 9134cad79b
commit 5f1e94b653
4399 changed files with 12286903 additions and 0 deletions
@@ -0,0 +1,57 @@
using System;
using UnityEngine;
using UnityEngine.Audio;
namespace OHM.UnityToolkit
{
[Serializable]
public class SFX
{
public SFXInstance customPrefab;
public AudioClip clip;
public AudioMixerGroup group;
public SFXInstance Play(Transform parent)
{
if (customPrefab == null && clip == null)
{
return null;
}
SFXInstance instance = Instanciate(parent);
if (instance.audioSource != null)
{
instance.audioSource.clip = clip;
}
if (group != null)
{
instance.audioSource.outputAudioMixerGroup = group;
}
instance.name = ((instance.audioSource.clip != null) ? ("SFX_" + instance.audioSource.clip.name) : "SFX_noclip");
instance.audioSource.Play();
return instance;
}
private SFXInstance Instanciate(Transform parent)
{
SFXInstance prefab = ((customPrefab != null) ? customPrefab : createDefaultInstance());
SFXInstance instance = UnityEngine.Object.Instantiate(prefab);
instance.gameObject.transform.parent = parent;
instance.gameObject.transform.localPosition = Vector3.zero;
return instance;
}
private SFXInstance createDefaultInstance()
{
var go = new GameObject();
AudioSource source = go.AddComponent<AudioSource>();
source.spatialBlend = 0f;
source.playOnAwake = true;
SFXInstance instance = go.AddComponent<SFXInstance>();
instance.autoDestroyOnEnd = true;
return instance;
}
}
}