Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit be91caa

Browse files
committed
feat: chat과 Voice Manager 추가
1 parent 9d2f222 commit be91caa

28 files changed

+1804
-413
lines changed

‎Assets/App/Scenes/MainSence.unity‎

Lines changed: 346 additions & 51 deletions
Large diffs are not rendered by default.
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
#nullable enable
2+
using UnityEngine;
3+
using UnityEngine.Audio;
4+
5+
namespace ProjectVG.Core.Audio
6+
{
7+
public class AudioControllerCore : MonoBehaviour
8+
{
9+
[SerializeField] protected AudioSource _audioSource;
10+
[SerializeField] protected AudioMixerGroup _audioMixerGroup;
11+
12+
protected float _volume = 1f;
13+
protected string _volumeParameterName = "";
14+
15+
public virtual void Initialize(string volumeParameterName)
16+
{
17+
_volumeParameterName = volumeParameterName;
18+
19+
// AudioSource가 없으면 자동 생성
20+
if (_audioSource == null)
21+
{
22+
_audioSource = gameObject.AddComponent<AudioSource>();
23+
_audioSource.playOnAwake = false;
24+
_audioSource.loop = false;
25+
_audioSource.volume = _volume;
26+
}
27+
28+
// AudioMixerGroup이 설정되지 않은 경우 AudioManager에서 자동 할당
29+
if (_audioMixerGroup == null)
30+
{
31+
_audioMixerGroup = GetAudioMixerGroupFromManager();
32+
}
33+
34+
if (_audioSource != null && _audioMixerGroup != null)
35+
{
36+
_audioSource.outputAudioMixerGroup = _audioMixerGroup;
37+
}
38+
}
39+
40+
protected virtual AudioMixerGroup? GetAudioMixerGroupFromManager()
41+
{
42+
// 하위 클래스에서 오버라이드하여 적절한 그룹 반환
43+
return null;
44+
}
45+
46+
public virtual void SetVolume(float volume)
47+
{
48+
_volume = Mathf.Clamp01(volume);
49+
50+
if (_audioMixerGroup != null && !string.IsNullOrEmpty(_volumeParameterName))
51+
{
52+
float dbValue = _volume > 0 ? 20f * Mathf.Log10(_volume) : -80f;
53+
_audioMixerGroup.audioMixer.SetFloat(_volumeParameterName, dbValue);
54+
}
55+
}
56+
57+
public virtual void Stop()
58+
{
59+
if (_audioSource != null)
60+
{
61+
_audioSource.Stop();
62+
}
63+
}
64+
65+
public virtual bool IsPlaying()
66+
{
67+
return _audioSource != null && _audioSource.isPlaying;
68+
}
69+
70+
public virtual float GetVolume()
71+
{
72+
return _volume;
73+
}
74+
75+
public AudioSource GetAudioSource() => _audioSource;
76+
public AudioMixerGroup GetAudioMixerGroup() => _audioMixerGroup;
77+
}
78+
}

‎Assets/Core/Audio/AudioControllerCore.cs.meta‎

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /