Update audio manager
This commit is contained in:
File diff suppressed because one or more lines are too long
BIN
.gemini-workspace-history/session-2026-04-30-21-47.json.gz
Normal file
BIN
.gemini-workspace-history/session-2026-04-30-21-47.json.gz
Normal file
Binary file not shown.
14
.idea/.idea.HALLUCINATE/.idea/workspace.xml
generated
14
.idea/.idea.HALLUCINATE/.idea/workspace.xml
generated
@@ -5,7 +5,16 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="f9183c68-daf0-43b8-be4c-fad79983f91b" name="Changes" comment="">
|
<list default="true" id="f9183c68-daf0-43b8-be4c-fad79983f91b" name="Changes" comment="">
|
||||||
|
<change beforePath="$PROJECT_DIR$/.gemini-workspace-history/active-context.md" beforeDir="false" afterPath="$PROJECT_DIR$/.gemini-workspace-history/active-context.md" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/.idea.HALLUCINATE/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.HALLUCINATE/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/.idea.HALLUCINATE/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.HALLUCINATE/.idea/workspace.xml" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/Audio/UI.mixer" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/Audio/UI.mixer.meta" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/CuaDangPrototype[Don'tMove]/Seagram tfb SDF.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/CuaDangPrototype[Don'tMove]/Seagram tfb SDF.asset" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Audio/AudioManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Audio/AudioManager.cs" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/SettingsController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/SettingsController.cs" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/UIManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/UIManager.cs" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/Settings/Project Setting/AudioDatabase.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Settings/Project Setting/AudioDatabase.asset" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/Third Parties/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Third Parties/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
@@ -13,7 +22,7 @@
|
|||||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||||
</component>
|
</component>
|
||||||
<component name="EmbeddingIndexingInfo">
|
<component name="EmbeddingIndexingInfo">
|
||||||
<option name="cachedIndexableFilesCount" value="13" />
|
<option name="cachedIndexableFilesCount" value="15" />
|
||||||
<option name="fileBasedEmbeddingIndicesEnabled" value="true" />
|
<option name="fileBasedEmbeddingIndicesEnabled" value="true" />
|
||||||
</component>
|
</component>
|
||||||
<component name="Git.Settings">
|
<component name="Git.Settings">
|
||||||
@@ -146,7 +155,8 @@
|
|||||||
<workItem from="1777376778745" duration="10727000" />
|
<workItem from="1777376778745" duration="10727000" />
|
||||||
<workItem from="1777392719306" duration="13382000" />
|
<workItem from="1777392719306" duration="13382000" />
|
||||||
<workItem from="1777443280908" duration="5223000" />
|
<workItem from="1777443280908" duration="5223000" />
|
||||||
<workItem from="1777484328779" duration="29344000" />
|
<workItem from="1777484328779" duration="32427000" />
|
||||||
|
<workItem from="1777568077522" duration="5137000" />
|
||||||
</task>
|
</task>
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
|
|||||||
218
Assets/Audio/MainMixer.mixer
Normal file
218
Assets/Audio/MainMixer.mixer
Normal file
@@ -0,0 +1,218 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!243 &-6431947565845596828
|
||||||
|
AudioMixerGroupController:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: UI
|
||||||
|
m_AudioMixer: {fileID: 24100000}
|
||||||
|
m_GroupID: 08e27948b88ac0b42a416d718edb17c0
|
||||||
|
m_Children: []
|
||||||
|
m_Volume: cff6dd6ce8758cd4dae7e14ae4652999
|
||||||
|
m_Pitch: 6a8f2ec253d1ca44780ec280ecc9a962
|
||||||
|
m_Send: 00000000000000000000000000000000
|
||||||
|
m_Effects:
|
||||||
|
- {fileID: -5023060638215396674}
|
||||||
|
m_UserColorIndex: 0
|
||||||
|
m_Mute: 0
|
||||||
|
m_Solo: 0
|
||||||
|
m_BypassEffects: 0
|
||||||
|
--- !u!243 &-6021856956552147437
|
||||||
|
AudioMixerGroupController:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Music
|
||||||
|
m_AudioMixer: {fileID: 24100000}
|
||||||
|
m_GroupID: 0fe7eccc1b943f14cb7dd0fe99d212a0
|
||||||
|
m_Children: []
|
||||||
|
m_Volume: f78d37150b1160c42835fdd3acc80419
|
||||||
|
m_Pitch: a19937e3ff86e0c4dbc4f2b22d7f51fb
|
||||||
|
m_Send: 00000000000000000000000000000000
|
||||||
|
m_Effects:
|
||||||
|
- {fileID: 1876758863269364064}
|
||||||
|
m_UserColorIndex: 0
|
||||||
|
m_Mute: 0
|
||||||
|
m_Solo: 0
|
||||||
|
m_BypassEffects: 0
|
||||||
|
--- !u!244 &-5023060638215396674
|
||||||
|
AudioMixerEffectController:
|
||||||
|
m_ObjectHideFlags: 3
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name:
|
||||||
|
m_EffectID: 7a6d00ec541efe14991fab0268bc7789
|
||||||
|
m_EffectName: Attenuation
|
||||||
|
m_MixLevel: cd404eab1b4bc7b47858f5d806ad2127
|
||||||
|
m_Parameters: []
|
||||||
|
m_SendTarget: {fileID: 0}
|
||||||
|
m_EnableWetMix: 0
|
||||||
|
m_Bypass: 0
|
||||||
|
--- !u!244 &-4735665692033575105
|
||||||
|
AudioMixerEffectController:
|
||||||
|
m_ObjectHideFlags: 3
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name:
|
||||||
|
m_EffectID: 99b4802d78d59af4a9d80fa51aaf8988
|
||||||
|
m_EffectName: Attenuation
|
||||||
|
m_MixLevel: 57ee0498571e05143ac81a47522f98dd
|
||||||
|
m_Parameters: []
|
||||||
|
m_SendTarget: {fileID: 0}
|
||||||
|
m_EnableWetMix: 0
|
||||||
|
m_Bypass: 0
|
||||||
|
--- !u!243 &-4700234642923864785
|
||||||
|
AudioMixerGroupController:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: VFX
|
||||||
|
m_AudioMixer: {fileID: 24100000}
|
||||||
|
m_GroupID: 09fab5b9bf43ccc419ad6fa12379ed03
|
||||||
|
m_Children: []
|
||||||
|
m_Volume: 3e949b4e1ef6b2e4da38dc5ede9bdc0f
|
||||||
|
m_Pitch: 6cba8da6210ffe341b284ee7af40b74d
|
||||||
|
m_Send: 00000000000000000000000000000000
|
||||||
|
m_Effects:
|
||||||
|
- {fileID: -4735665692033575105}
|
||||||
|
m_UserColorIndex: 0
|
||||||
|
m_Mute: 0
|
||||||
|
m_Solo: 0
|
||||||
|
m_BypassEffects: 0
|
||||||
|
--- !u!244 &-233787013272730643
|
||||||
|
AudioMixerEffectController:
|
||||||
|
m_ObjectHideFlags: 3
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name:
|
||||||
|
m_EffectID: dadc06cef90e6e741925b12d70aedf35
|
||||||
|
m_EffectName: Attenuation
|
||||||
|
m_MixLevel: 854b23372ef4a084ea3dff87e64efe7b
|
||||||
|
m_Parameters: []
|
||||||
|
m_SendTarget: {fileID: 0}
|
||||||
|
m_EnableWetMix: 0
|
||||||
|
m_Bypass: 0
|
||||||
|
--- !u!241 &24100000
|
||||||
|
AudioMixerController:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: MainMixer
|
||||||
|
m_OutputGroup: {fileID: 0}
|
||||||
|
m_MasterGroup: {fileID: 24300002}
|
||||||
|
m_Snapshots:
|
||||||
|
- {fileID: 24500006}
|
||||||
|
m_StartSnapshot: {fileID: 24500006}
|
||||||
|
m_SuspendThreshold: -80
|
||||||
|
m_EnableSuspend: 1
|
||||||
|
m_UpdateMode: 0
|
||||||
|
m_ExposedParameters:
|
||||||
|
- guid: b4d6e1f3e3ef67b4f8c9769b4e5c4c12
|
||||||
|
name: MasterVolume
|
||||||
|
- guid: f78d37150b1160c42835fdd3acc80419
|
||||||
|
name: MusicVolume
|
||||||
|
- guid: ac393bc15bcf90f439746ed2111fdcdf
|
||||||
|
name: PlayerVolume
|
||||||
|
- guid: cff6dd6ce8758cd4dae7e14ae4652999
|
||||||
|
name: UIVolume
|
||||||
|
- guid: 3e949b4e1ef6b2e4da38dc5ede9bdc0f
|
||||||
|
name: VFXVolume
|
||||||
|
m_AudioMixerGroupViews:
|
||||||
|
- guids:
|
||||||
|
- 92c420f631765d9428b1e6bdeb3d374b
|
||||||
|
- 0fe7eccc1b943f14cb7dd0fe99d212a0
|
||||||
|
- 09fab5b9bf43ccc419ad6fa12379ed03
|
||||||
|
- 08e27948b88ac0b42a416d718edb17c0
|
||||||
|
- 02dbab7fb589edf40a80dc16f47b895d
|
||||||
|
name: View
|
||||||
|
m_CurrentViewIndex: 0
|
||||||
|
m_TargetSnapshot: {fileID: 24500006}
|
||||||
|
--- !u!243 &24300002
|
||||||
|
AudioMixerGroupController:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Master
|
||||||
|
m_AudioMixer: {fileID: 24100000}
|
||||||
|
m_GroupID: 92c420f631765d9428b1e6bdeb3d374b
|
||||||
|
m_Children:
|
||||||
|
- {fileID: -6021856956552147437}
|
||||||
|
- {fileID: -4700234642923864785}
|
||||||
|
- {fileID: -6431947565845596828}
|
||||||
|
- {fileID: 5458705978263712925}
|
||||||
|
m_Volume: b4d6e1f3e3ef67b4f8c9769b4e5c4c12
|
||||||
|
m_Pitch: eb965b68ec544064b9f6381276cf09ef
|
||||||
|
m_Send: 00000000000000000000000000000000
|
||||||
|
m_Effects:
|
||||||
|
- {fileID: 24400004}
|
||||||
|
m_UserColorIndex: 0
|
||||||
|
m_Mute: 0
|
||||||
|
m_Solo: 0
|
||||||
|
m_BypassEffects: 0
|
||||||
|
--- !u!244 &24400004
|
||||||
|
AudioMixerEffectController:
|
||||||
|
m_ObjectHideFlags: 3
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name:
|
||||||
|
m_EffectID: d380a836e9d148c49be2931d8b74877f
|
||||||
|
m_EffectName: Attenuation
|
||||||
|
m_MixLevel: 08d6aaae3443a5a4299f8b8b55ed0991
|
||||||
|
m_Parameters: []
|
||||||
|
m_SendTarget: {fileID: 0}
|
||||||
|
m_EnableWetMix: 0
|
||||||
|
m_Bypass: 0
|
||||||
|
--- !u!245 &24500006
|
||||||
|
AudioMixerSnapshotController:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Snapshot
|
||||||
|
m_AudioMixer: {fileID: 24100000}
|
||||||
|
m_SnapshotID: 817fd0c74ed3b3440bd51ffbb5cc90a3
|
||||||
|
m_FloatValues: {}
|
||||||
|
m_TransitionOverrides: {}
|
||||||
|
--- !u!244 &1876758863269364064
|
||||||
|
AudioMixerEffectController:
|
||||||
|
m_ObjectHideFlags: 3
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name:
|
||||||
|
m_EffectID: 2f7a221eb240c13439d12ce1c978a41d
|
||||||
|
m_EffectName: Attenuation
|
||||||
|
m_MixLevel: aa1f8d271c9ce884f813b72b5d42ef3b
|
||||||
|
m_Parameters: []
|
||||||
|
m_SendTarget: {fileID: 0}
|
||||||
|
m_EnableWetMix: 0
|
||||||
|
m_Bypass: 0
|
||||||
|
--- !u!243 &5458705978263712925
|
||||||
|
AudioMixerGroupController:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Player
|
||||||
|
m_AudioMixer: {fileID: 24100000}
|
||||||
|
m_GroupID: 02dbab7fb589edf40a80dc16f47b895d
|
||||||
|
m_Children: []
|
||||||
|
m_Volume: ac393bc15bcf90f439746ed2111fdcdf
|
||||||
|
m_Pitch: 8937f5f6d4f6f0d42be05ea133b41007
|
||||||
|
m_Send: 00000000000000000000000000000000
|
||||||
|
m_Effects:
|
||||||
|
- {fileID: -233787013272730643}
|
||||||
|
m_UserColorIndex: 0
|
||||||
|
m_Mute: 0
|
||||||
|
m_Solo: 0
|
||||||
|
m_BypassEffects: 0
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!241 &24100000
|
|
||||||
AudioMixerController:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: UI
|
|
||||||
m_OutputGroup: {fileID: 0}
|
|
||||||
m_MasterGroup: {fileID: 24300002}
|
|
||||||
m_Snapshots:
|
|
||||||
- {fileID: 24500006}
|
|
||||||
m_StartSnapshot: {fileID: 24500006}
|
|
||||||
m_SuspendThreshold: -80
|
|
||||||
m_EnableSuspend: 1
|
|
||||||
m_UpdateMode: 0
|
|
||||||
m_ExposedParameters: []
|
|
||||||
m_AudioMixerGroupViews: []
|
|
||||||
m_CurrentViewIndex: 0
|
|
||||||
m_TargetSnapshot: {fileID: 24500006}
|
|
||||||
--- !u!243 &24300002
|
|
||||||
AudioMixerGroupController:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Master
|
|
||||||
m_AudioMixer: {fileID: 24100000}
|
|
||||||
m_GroupID: 92c420f631765d9428b1e6bdeb3d374b
|
|
||||||
m_Children: []
|
|
||||||
m_Volume: b4d6e1f3e3ef67b4f8c9769b4e5c4c12
|
|
||||||
m_Pitch: eb965b68ec544064b9f6381276cf09ef
|
|
||||||
m_Send: 00000000000000000000000000000000
|
|
||||||
m_Effects:
|
|
||||||
- {fileID: 24400004}
|
|
||||||
m_UserColorIndex: 0
|
|
||||||
m_Mute: 0
|
|
||||||
m_Solo: 0
|
|
||||||
m_BypassEffects: 0
|
|
||||||
--- !u!244 &24400004
|
|
||||||
AudioMixerEffectController:
|
|
||||||
m_ObjectHideFlags: 3
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name:
|
|
||||||
m_EffectID: d380a836e9d148c49be2931d8b74877f
|
|
||||||
m_EffectName: Attenuation
|
|
||||||
m_MixLevel: 08d6aaae3443a5a4299f8b8b55ed0991
|
|
||||||
m_Parameters: []
|
|
||||||
m_SendTarget: {fileID: 0}
|
|
||||||
m_EnableWetMix: 0
|
|
||||||
m_Bypass: 0
|
|
||||||
--- !u!245 &24500006
|
|
||||||
AudioMixerSnapshotController:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Snapshot
|
|
||||||
m_AudioMixer: {fileID: 24100000}
|
|
||||||
m_SnapshotID: 817fd0c74ed3b3440bd51ffbb5cc90a3
|
|
||||||
m_FloatValues: {}
|
|
||||||
m_TransitionOverrides: {}
|
|
||||||
File diff suppressed because one or more lines are too long
@@ -30,6 +30,11 @@ namespace Hallucinate.Audio
|
|||||||
if (database != null) database.Initialize();
|
if (database != null) database.Initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
ApplyAllVolumes();
|
||||||
|
}
|
||||||
|
|
||||||
private void InitializePool()
|
private void InitializePool()
|
||||||
{
|
{
|
||||||
_pool = new List<AudioSource>();
|
_pool = new List<AudioSource>();
|
||||||
@@ -43,6 +48,27 @@ namespace Hallucinate.Audio
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ApplyAllVolumes()
|
||||||
|
{
|
||||||
|
SetVolume("MasterVolume", PlayerPrefs.GetFloat("MasterVolume", 80f));
|
||||||
|
SetVolume("MusicVolume", PlayerPrefs.GetFloat("MusicVolume", 80f));
|
||||||
|
SetVolume("VFXVolume", PlayerPrefs.GetFloat("VFXVolume", 80f));
|
||||||
|
SetVolume("PlayerVolume", PlayerPrefs.GetFloat("PlayerVolume", 80f));
|
||||||
|
SetVolume("UIVolume", PlayerPrefs.GetFloat("UIVolume", 80f));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetVolume(string key, float volume)
|
||||||
|
{
|
||||||
|
if (defaultGroup == null || defaultGroup.audioMixer == null) return;
|
||||||
|
|
||||||
|
// Chuyển đổi từ 0-100 sang dB (-80f đến 0f hoặc 20f tùy mixer)
|
||||||
|
// Công thức: dB = 20 * log10(volume / 100)
|
||||||
|
float db = volume <= 0.001f ? -80f : Mathf.Log10(volume / 100f) * 20f;
|
||||||
|
|
||||||
|
// Đảm bảo Parameter đã được EXPOSE trong AudioMixer với tên tương ứng (MasterVolume, MusicVolume, etc.)
|
||||||
|
defaultGroup.audioMixer.SetFloat(key, db);
|
||||||
|
}
|
||||||
|
|
||||||
public void Play(string sampleName, float volumeMult = 1f, float pitchMult = 1f, Vector3? position = null)
|
public void Play(string sampleName, float volumeMult = 1f, float pitchMult = 1f, Vector3? position = null)
|
||||||
{
|
{
|
||||||
if (database == null) return;
|
if (database == null) return;
|
||||||
|
|||||||
@@ -31,9 +31,13 @@ namespace Hallucinate.UI
|
|||||||
private float _sliderMin, _sliderMax;
|
private float _sliderMin, _sliderMax;
|
||||||
|
|
||||||
// Osu-style Volume Overlay
|
// Osu-style Volume Overlay
|
||||||
private VisualElement _volumeOverlay;
|
private VisualElement _volumeContainer;
|
||||||
|
private VisualElement _masterRing;
|
||||||
private Label _masterVolLabel;
|
private Label _masterVolLabel;
|
||||||
|
private Dictionary<string, (VisualElement ring, Label label)> _subRings = new Dictionary<string, (VisualElement, Label)>();
|
||||||
|
private string _hoveredSubVolume = null;
|
||||||
private float _masterVol = 80f;
|
private float _masterVol = 80f;
|
||||||
|
private int _overlayActiveCount = 0;
|
||||||
|
|
||||||
public override void Initialize(VisualElement uxmlRoot, UIManager manager)
|
public override void Initialize(VisualElement uxmlRoot, UIManager manager)
|
||||||
{
|
{
|
||||||
@@ -43,9 +47,9 @@ namespace Hallucinate.UI
|
|||||||
_tabTitle = root.Q<Label>("TabTitle");
|
_tabTitle = root.Q<Label>("TabTitle");
|
||||||
_content = root.Q<ScrollView>("SettingsContent");
|
_content = root.Q<ScrollView>("SettingsContent");
|
||||||
|
|
||||||
// Osu Volume Logic - Registering on Root for Global Wheel Catch
|
// Global Volume Catch - Use TrickleDown to catch events before they are consumed by children (like ScrollViews)
|
||||||
root.RegisterCallback<WheelEvent>(OnMouseWheel);
|
uiManager.Root.RegisterCallback<WheelEvent>(OnMouseWheel, TrickleDown.TrickleDown);
|
||||||
SetupVolumeOverlay();
|
SetupHierarchicalVolumeOverlay();
|
||||||
|
|
||||||
root.RegisterCallback<PointerDownEvent>(evt => {
|
root.RegisterCallback<PointerDownEvent>(evt => {
|
||||||
if (evt.target == root) uiManager.ToggleSettings();
|
if (evt.target == root) uiManager.ToggleSettings();
|
||||||
@@ -67,88 +71,191 @@ namespace Hallucinate.UI
|
|||||||
SwitchTab("GENERAL");
|
SwitchTab("GENERAL");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetupVolumeOverlay()
|
private void SetupHierarchicalVolumeOverlay()
|
||||||
{
|
{
|
||||||
_volumeOverlay = new VisualElement();
|
_volumeContainer = new VisualElement();
|
||||||
_volumeOverlay.style.position = Position.Absolute;
|
_volumeContainer.name = "GlobalVolumeOverlay";
|
||||||
_volumeOverlay.style.right = 40;
|
_volumeContainer.style.position = Position.Absolute;
|
||||||
_volumeOverlay.style.top = Length.Percent(40);
|
_volumeContainer.style.right = 50;
|
||||||
_volumeOverlay.style.width = 120;
|
_volumeContainer.style.bottom = 50;
|
||||||
_volumeOverlay.style.height = 120;
|
_volumeContainer.style.width = 300;
|
||||||
_volumeOverlay.style.backgroundColor = new Color(0, 0, 0, 0.8f);
|
_volumeContainer.style.height = 300;
|
||||||
_volumeOverlay.style.borderTopLeftRadius = 60;
|
_volumeContainer.style.display = DisplayStyle.None;
|
||||||
_volumeOverlay.style.borderTopRightRadius = 60;
|
_volumeContainer.pickingMode = PickingMode.Ignore;
|
||||||
_volumeOverlay.style.borderBottomLeftRadius = 60;
|
|
||||||
_volumeOverlay.style.borderBottomRightRadius = 60;
|
// Add to UIManager root so it stays even when Settings is hidden
|
||||||
_volumeOverlay.style.borderTopWidth = 4;
|
uiManager.Root.Add(_volumeContainer);
|
||||||
_volumeOverlay.style.borderBottomWidth = 4;
|
|
||||||
_volumeOverlay.style.borderLeftWidth = 4;
|
|
||||||
_volumeOverlay.style.borderRightWidth = 4;
|
|
||||||
_volumeOverlay.style.borderTopColor = Color.cyan;
|
|
||||||
_volumeOverlay.style.borderBottomColor = Color.cyan;
|
|
||||||
_volumeOverlay.style.borderLeftColor = Color.cyan;
|
|
||||||
_volumeOverlay.style.borderRightColor = Color.cyan;
|
|
||||||
_volumeOverlay.style.justifyContent = Justify.Center;
|
|
||||||
_volumeOverlay.style.alignItems = Align.Center;
|
|
||||||
_volumeOverlay.style.display = DisplayStyle.None;
|
|
||||||
_volumeOverlay.pickingMode = PickingMode.Ignore;
|
|
||||||
|
|
||||||
_masterVolLabel = new Label("80%");
|
// Master Ring (Bottom Right)
|
||||||
_masterVolLabel.style.color = Color.white;
|
_masterRing = CreateRing("Master", 120, cyan: true);
|
||||||
_masterVolLabel.style.fontSize = 24;
|
_masterRing.style.right = 0;
|
||||||
_masterVolLabel.style.unityFontStyleAndWeight = FontStyle.Bold;
|
_masterRing.style.bottom = 0;
|
||||||
_volumeOverlay.Add(_masterVolLabel);
|
_masterVolLabel = _masterRing.Q<Label>();
|
||||||
|
_volumeContainer.Add(_masterRing);
|
||||||
|
|
||||||
root.Add(_volumeOverlay);
|
// Sub Rings (Music, VFX, Player, UI)
|
||||||
|
string[] subs = { "MusicVolume", "VFXVolume", "PlayerVolume", "UIVolume" };
|
||||||
|
string[] shortNames = { "MUS", "VFX", "PLY", "UI" };
|
||||||
|
|
||||||
|
// Layout sub-rings in an arc around Master
|
||||||
|
for (int i = 0; i < subs.Length; i++)
|
||||||
|
{
|
||||||
|
var ring = CreateRing(shortNames[i], 70, false);
|
||||||
|
|
||||||
|
// Angle 0 = Top, Angle 90 = Left
|
||||||
|
float angle = (i * 30f) * Mathf.Deg2Rad;
|
||||||
|
float radius = 140f;
|
||||||
|
|
||||||
|
// right moves element to the LEFT, bottom moves element UP
|
||||||
|
// Starting from top (right=25, bottom=140+25) to left (right=140+25, bottom=25)
|
||||||
|
ring.style.right = 25 + Mathf.Sin(angle) * radius;
|
||||||
|
ring.style.bottom = 25 + Mathf.Cos(angle) * radius;
|
||||||
|
|
||||||
|
string key = subs[i];
|
||||||
|
ring.RegisterCallback<PointerEnterEvent>(evt => _hoveredSubVolume = key);
|
||||||
|
ring.RegisterCallback<PointerLeaveEvent>(evt => { if (_hoveredSubVolume == key) _hoveredSubVolume = null; });
|
||||||
|
ring.pickingMode = PickingMode.Position; // Allow hover detection
|
||||||
|
|
||||||
|
_subRings[key] = (ring, ring.Q<Label>());
|
||||||
|
_volumeContainer.Add(ring);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private VisualElement CreateRing(string text, float size, bool cyan)
|
||||||
|
{
|
||||||
|
var ring = new VisualElement();
|
||||||
|
ring.style.width = size;
|
||||||
|
ring.style.height = size;
|
||||||
|
ring.style.backgroundColor = new Color(0, 0, 0, 0.85f);
|
||||||
|
ring.style.borderTopLeftRadius = size / 2;
|
||||||
|
ring.style.borderTopRightRadius = size / 2;
|
||||||
|
ring.style.borderBottomLeftRadius = size / 2;
|
||||||
|
ring.style.borderBottomRightRadius = size / 2;
|
||||||
|
ring.style.borderTopWidth = 3;
|
||||||
|
ring.style.borderBottomWidth = 3;
|
||||||
|
ring.style.borderLeftWidth = 3;
|
||||||
|
ring.style.borderRightWidth = 3;
|
||||||
|
ring.style.borderTopColor = ring.style.borderBottomColor = ring.style.borderLeftColor = ring.style.borderRightColor = cyan ? Color.cyan : new Color(0.7f, 0.7f, 0.7f);
|
||||||
|
ring.style.justifyContent = Justify.Center;
|
||||||
|
ring.style.alignItems = Align.Center;
|
||||||
|
ring.style.position = Position.Absolute;
|
||||||
|
|
||||||
|
var label = new Label("80%");
|
||||||
|
label.style.color = Color.white;
|
||||||
|
label.style.fontSize = size * 0.25f;
|
||||||
|
label.style.unityFontStyleAndWeight = FontStyle.Bold;
|
||||||
|
ring.Add(label);
|
||||||
|
|
||||||
|
var title = new Label(text);
|
||||||
|
title.style.color = Color.gray;
|
||||||
|
title.style.fontSize = size * 0.15f;
|
||||||
|
title.style.position = Position.Absolute;
|
||||||
|
title.style.bottom = size * 0.15f;
|
||||||
|
ring.Add(title);
|
||||||
|
|
||||||
|
return ring;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnMouseWheel(WheelEvent evt)
|
private void OnMouseWheel(WheelEvent evt)
|
||||||
{
|
{
|
||||||
// Osu style: Volume control with scroll wheel
|
// Debug Log to see if event is even reaching here
|
||||||
// Only apply if in the SOUND tab
|
Debug.Log($"[SettingsController] Mouse Wheel Detected. Settings Open: {uiManager.IsSettingsOpen}");
|
||||||
if (_activeTab != "SOUND") return;
|
|
||||||
|
|
||||||
if (_hoveredSlider != null)
|
// Do not control volume if we are in MainMenu (unless Settings is explicitly open)
|
||||||
|
// Fix: Check if MainMenu is actually visible (Flex), not just exists in hierarchy
|
||||||
|
var mainMenuRoot = uiManager.Root.Q<VisualElement>("MainMenuRoot");
|
||||||
|
bool isMainMenuVisible = mainMenuRoot != null && mainMenuRoot.style.display == DisplayStyle.Flex;
|
||||||
|
|
||||||
|
if (!uiManager.IsSettingsOpen && isMainMenuVisible)
|
||||||
{
|
{
|
||||||
// Adjust the hovered slider's value
|
Debug.Log("[SettingsController] Volume control suppressed: Currently at Main Menu.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Osu style volume control
|
||||||
|
_overlayActiveCount++;
|
||||||
|
ShowVolumeOverlay();
|
||||||
|
// ... rest of method unchanged
|
||||||
|
|
||||||
|
if (_hoveredSubVolume != null)
|
||||||
|
{
|
||||||
|
Debug.Log($"[SettingsController] Adjusting Sub Volume: {_hoveredSubVolume}");
|
||||||
|
UpdateSubVolume(_hoveredSubVolume, -evt.delta.y * 2f);
|
||||||
|
}
|
||||||
|
else if (_hoveredSlider != null && _activeTab == "SOUND")
|
||||||
|
{
|
||||||
|
// If hovering a slider in the Sound tab, adjust that
|
||||||
float currentVal = _hoveredSlider.value;
|
float currentVal = _hoveredSlider.value;
|
||||||
// Determine step size: default to 1% of range, adjusted for 0-100 range.
|
|
||||||
float step = (_sliderMax - _sliderMin) / 100f;
|
float step = (_sliderMax - _sliderMin) / 100f;
|
||||||
float newVal = Mathf.Clamp(currentVal - (evt.delta.y * step * 5f), _sliderMin, _sliderMax); // Multiply by a factor to make scroll smoother
|
float newVal = Mathf.Clamp(currentVal - (evt.delta.y * step * 5f), _sliderMin, _sliderMax);
|
||||||
|
|
||||||
_hoveredSlider.value = newVal;
|
_hoveredSlider.value = newVal;
|
||||||
|
|
||||||
// Trigger the associated OnValueChanged callback to save PlayerPrefs etc.
|
|
||||||
_hoveredOnChanged?.Invoke(newVal);
|
_hoveredOnChanged?.Invoke(newVal);
|
||||||
|
|
||||||
evt.StopPropagation(); // Consume the event so it doesn't affect other elements
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// If not hovering a specific slider, control Master Volume
|
Debug.Log("[SettingsController] Adjusting Master Volume.");
|
||||||
UpdateMasterVolume(-evt.delta.y * 2f);
|
UpdateMasterVolume(-evt.delta.y * 2f);
|
||||||
evt.StopPropagation(); // Consume the event
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
evt.StopPropagation();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateMasterVolume(float delta)
|
private void UpdateMasterVolume(float delta)
|
||||||
{
|
{
|
||||||
_masterVol = Mathf.Clamp(_masterVol + delta, 0f, 100f);
|
_masterVol = Mathf.Clamp(_masterVol + delta, 0f, 100f);
|
||||||
PlayerPrefs.SetFloat("MasterVolume", _masterVol);
|
PlayerPrefs.SetFloat("MasterVolume", _masterVol);
|
||||||
|
AudioManager.Instance?.SetVolume("MasterVolume", _masterVol);
|
||||||
_masterVolLabel.text = $"{Mathf.RoundToInt(_masterVol)}%";
|
_masterVolLabel.text = $"{Mathf.RoundToInt(_masterVol)}%";
|
||||||
ShowVolumeOverlay();
|
|
||||||
|
// Refresh Sound Tab UI if visible
|
||||||
|
if (_activeTab == "SOUND") SwitchTab("SOUND");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateSubVolume(string key, float delta)
|
||||||
|
{
|
||||||
|
float current = PlayerPrefs.GetFloat(key, 80f);
|
||||||
|
float newVal = Mathf.Clamp(current + delta, 0f, 100f);
|
||||||
|
PlayerPrefs.SetFloat(key, newVal);
|
||||||
|
AudioManager.Instance?.SetVolume(key, newVal);
|
||||||
|
|
||||||
|
if (_subRings.TryGetValue(key, out var data))
|
||||||
|
data.label.text = $"{Mathf.RoundToInt(newVal)}%";
|
||||||
|
|
||||||
|
if (_activeTab == "SOUND") SwitchTab("SOUND");
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void ShowVolumeOverlay()
|
private async void ShowVolumeOverlay()
|
||||||
{
|
{
|
||||||
_volumeOverlay.style.display = DisplayStyle.Flex;
|
Debug.Log("[SettingsController] Showing Volume Overlay.");
|
||||||
_volumeOverlay.style.opacity = 1f;
|
// Ensure overlay is on top of other UI screens
|
||||||
await Task.Delay(1500);
|
_volumeContainer.BringToFront();
|
||||||
if (_volumeOverlay.style.opacity == 1f)
|
|
||||||
|
// CRITICAL: Ensure Virtual Cursor is ALWAYS on top of the volume rings
|
||||||
|
uiManager.Root.Q<VisualElement>("CursorLayer")?.BringToFront();
|
||||||
|
|
||||||
|
_volumeContainer.style.display = DisplayStyle.Flex;
|
||||||
|
_volumeContainer.style.opacity = 1f;
|
||||||
|
|
||||||
|
// Refresh all sub labels
|
||||||
|
foreach (var kvp in _subRings)
|
||||||
{
|
{
|
||||||
Tween.Custom(1f, 0f, duration: 0.5f, onValueChange: val => _volumeOverlay.style.opacity = val)
|
float val = PlayerPrefs.GetFloat(kvp.Key, 80f);
|
||||||
.OnComplete(() => _volumeOverlay.style.display = DisplayStyle.None);
|
kvp.Value.label.text = $"{Mathf.RoundToInt(val)}%";
|
||||||
|
}
|
||||||
|
_masterVolLabel.text = $"{Mathf.RoundToInt(_masterVol)}%";
|
||||||
|
|
||||||
|
int currentId = _overlayActiveCount;
|
||||||
|
await Task.Delay(3000); // Wait 3s as requested
|
||||||
|
|
||||||
|
// Only fade out if no new scroll activity happened
|
||||||
|
if (currentId == _overlayActiveCount && _hoveredSubVolume == null)
|
||||||
|
{
|
||||||
|
Debug.Log("[SettingsController] Fading out Volume Overlay.");
|
||||||
|
Tween.Custom(1f, 0f, duration: 0.5f, onValueChange: val => _volumeContainer.style.opacity = val)
|
||||||
|
.OnComplete(() => {
|
||||||
|
if (_volumeContainer.style.opacity == 0f)
|
||||||
|
_volumeContainer.style.display = DisplayStyle.None;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -292,13 +399,17 @@ namespace Hallucinate.UI
|
|||||||
|
|
||||||
private VisualElement CreateAudioSlider(string label, string prefKey)
|
private VisualElement CreateAudioSlider(string label, string prefKey)
|
||||||
{
|
{
|
||||||
var sliderRow = CreateSliderWithInput(label, 0, 100, PlayerPrefs.GetFloat(prefKey, 80), val => PlayerPrefs.SetFloat(prefKey, val));
|
var sliderRow = CreateSliderWithInput(label, 0, 100, PlayerPrefs.GetFloat(prefKey, 80), val => {
|
||||||
|
PlayerPrefs.SetFloat(prefKey, val);
|
||||||
|
AudioManager.Instance?.SetVolume(prefKey, val);
|
||||||
|
});
|
||||||
|
|
||||||
// Register wheel specifically on this row
|
// Register wheel specifically on this row
|
||||||
sliderRow.RegisterCallback<WheelEvent>(evt => {
|
sliderRow.RegisterCallback<WheelEvent>(evt => {
|
||||||
float current = PlayerPrefs.GetFloat(prefKey, 80f);
|
float current = PlayerPrefs.GetFloat(prefKey, 80f);
|
||||||
float newVal = Mathf.Clamp(current - (evt.delta.y * 2f), 0f, 100f);
|
float newVal = Mathf.Clamp(current - (evt.delta.y * 2f), 0f, 100f);
|
||||||
PlayerPrefs.SetFloat(prefKey, newVal);
|
PlayerPrefs.SetFloat(prefKey, newVal);
|
||||||
|
AudioManager.Instance?.SetVolume(prefKey, newVal);
|
||||||
|
|
||||||
// Visual update only (to avoid heavy re-render of whole list)
|
// Visual update only (to avoid heavy re-render of whole list)
|
||||||
var slider = sliderRow.Q<Slider>();
|
var slider = sliderRow.Q<Slider>();
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ namespace Hallucinate.UI
|
|||||||
|
|
||||||
private UIDocument _uiDocument;
|
private UIDocument _uiDocument;
|
||||||
private VisualElement _rootElement;
|
private VisualElement _rootElement;
|
||||||
|
public VisualElement Root => _rootElement;
|
||||||
private VisualElement _cursorLayer;
|
private VisualElement _cursorLayer;
|
||||||
private VisualElement _mainCursor;
|
private VisualElement _mainCursor;
|
||||||
|
|
||||||
@@ -60,6 +61,7 @@ namespace Hallucinate.UI
|
|||||||
private Vector2 _lastMousePos;
|
private Vector2 _lastMousePos;
|
||||||
private float _trailOpacity = 1f;
|
private float _trailOpacity = 1f;
|
||||||
private bool _isSettingsOpen = false;
|
private bool _isSettingsOpen = false;
|
||||||
|
public bool IsSettingsOpen => _isSettingsOpen;
|
||||||
|
|
||||||
private const string UI_SCALE_KEY = "UIScale";
|
private const string UI_SCALE_KEY = "UIScale";
|
||||||
|
|
||||||
|
|||||||
@@ -17,47 +17,47 @@ MonoBehaviour:
|
|||||||
Clip: {fileID: 8300000, guid: 811444c0714824740a05502fe969c790, type: 3}
|
Clip: {fileID: 8300000, guid: 811444c0714824740a05502fe969c790, type: 3}
|
||||||
DefaultVolume: 0.35
|
DefaultVolume: 0.35
|
||||||
DefaultPitch: 1
|
DefaultPitch: 1
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: key-press-2
|
- Name: key-press-2
|
||||||
Clip: {fileID: 8300000, guid: 71cfbe0c1eb8128408a6586d5714b279, type: 3}
|
Clip: {fileID: 8300000, guid: 71cfbe0c1eb8128408a6586d5714b279, type: 3}
|
||||||
DefaultVolume: 0.35
|
DefaultVolume: 0.35
|
||||||
DefaultPitch: 1.05
|
DefaultPitch: 1.05
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: key-press-3
|
- Name: key-press-3
|
||||||
Clip: {fileID: 8300000, guid: 21d31f1a9750c3442b2090dd5941e876, type: 3}
|
Clip: {fileID: 8300000, guid: 21d31f1a9750c3442b2090dd5941e876, type: 3}
|
||||||
DefaultVolume: 0.35
|
DefaultVolume: 0.35
|
||||||
DefaultPitch: 0.95
|
DefaultPitch: 0.95
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: key-press-4
|
- Name: key-press-4
|
||||||
Clip: {fileID: 8300000, guid: e3f0dca1e709dae4c97d49ca85b9a3b7, type: 3}
|
Clip: {fileID: 8300000, guid: e3f0dca1e709dae4c97d49ca85b9a3b7, type: 3}
|
||||||
DefaultVolume: 0.35
|
DefaultVolume: 0.35
|
||||||
DefaultPitch: 1.1
|
DefaultPitch: 1.1
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: key-confirm
|
- Name: key-confirm
|
||||||
Clip: {fileID: 8300000, guid: 045d19ad3f303e749990e6b0d2667dbb, type: 3}
|
Clip: {fileID: 8300000, guid: 045d19ad3f303e749990e6b0d2667dbb, type: 3}
|
||||||
DefaultVolume: 0.6
|
DefaultVolume: 0.6
|
||||||
DefaultPitch: 1
|
DefaultPitch: 1
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: key-delete
|
- Name: key-delete
|
||||||
Clip: {fileID: 8300000, guid: 5ab37717dcad90346972273e7cb52ba0, type: 3}
|
Clip: {fileID: 8300000, guid: 5ab37717dcad90346972273e7cb52ba0, type: 3}
|
||||||
DefaultVolume: 0.4
|
DefaultVolume: 0.4
|
||||||
DefaultPitch: 0.9
|
DefaultPitch: 0.9
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: key-caps
|
- Name: key-caps
|
||||||
Clip: {fileID: 8300000, guid: 5724c9b6ea245fd4795737122cf22879, type: 3}
|
Clip: {fileID: 8300000, guid: 5724c9b6ea245fd4795737122cf22879, type: 3}
|
||||||
DefaultVolume: 0.5
|
DefaultVolume: 0.5
|
||||||
DefaultPitch: 1.2
|
DefaultPitch: 1.2
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: key-movement
|
- Name: key-movement
|
||||||
Clip: {fileID: 8300000, guid: ff184cc35711e2d4cbeb4b2e39fb6e6a, type: 3}
|
Clip: {fileID: 8300000, guid: ff184cc35711e2d4cbeb4b2e39fb6e6a, type: 3}
|
||||||
DefaultVolume: 0.3
|
DefaultVolume: 0.3
|
||||||
DefaultPitch: 1.1
|
DefaultPitch: 1.1
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: menuclick
|
- Name: menuclick
|
||||||
Clip: {fileID: 8300000, guid: 0e77a34a88618c947a6f28d62211e533, type: 3}
|
Clip: {fileID: 8300000, guid: 0e77a34a88618c947a6f28d62211e533, type: 3}
|
||||||
DefaultVolume: 0.5
|
DefaultVolume: 0.5
|
||||||
DefaultPitch: 1
|
DefaultPitch: 1
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: menu-play-hover
|
- Name: menu-play-hover
|
||||||
Clip: {fileID: 8300000, guid: c209fbd95b1b02a4cb75a027ce0713aa, type: 3}
|
Clip: {fileID: 8300000, guid: c209fbd95b1b02a4cb75a027ce0713aa, type: 3}
|
||||||
DefaultVolume: 0.4
|
DefaultVolume: 0.4
|
||||||
@@ -67,84 +67,84 @@ MonoBehaviour:
|
|||||||
Clip: {fileID: 8300000, guid: 3408227a2bcd6d8468df7a6bdb185972, type: 3}
|
Clip: {fileID: 8300000, guid: 3408227a2bcd6d8468df7a6bdb185972, type: 3}
|
||||||
DefaultVolume: 0.4
|
DefaultVolume: 0.4
|
||||||
DefaultPitch: 1.05
|
DefaultPitch: 1.05
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: menu-options-hover
|
- Name: menu-options-hover
|
||||||
Clip: {fileID: 8300000, guid: 7e58115b9cec4cf45a79c858b76077b1, type: 3}
|
Clip: {fileID: 8300000, guid: 7e58115b9cec4cf45a79c858b76077b1, type: 3}
|
||||||
DefaultVolume: 0.4
|
DefaultVolume: 0.4
|
||||||
DefaultPitch: 1.05
|
DefaultPitch: 1.05
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: menu-exit-hover
|
- Name: menu-exit-hover
|
||||||
Clip: {fileID: 8300000, guid: 3fed8036f4c5ad943b1d907d5e29d22c, type: 3}
|
Clip: {fileID: 8300000, guid: 3fed8036f4c5ad943b1d907d5e29d22c, type: 3}
|
||||||
DefaultVolume: 0.4
|
DefaultVolume: 0.4
|
||||||
DefaultPitch: 0.95
|
DefaultPitch: 0.95
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: menu-play-click
|
- Name: menu-play-click
|
||||||
Clip: {fileID: 8300000, guid: ebd4de3e32d29714eb4cfd6338ec1d1a, type: 3}
|
Clip: {fileID: 8300000, guid: ebd4de3e32d29714eb4cfd6338ec1d1a, type: 3}
|
||||||
DefaultVolume: 0.8
|
DefaultVolume: 0.8
|
||||||
DefaultPitch: 1
|
DefaultPitch: 1
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: menu-back-click
|
- Name: menu-back-click
|
||||||
Clip: {fileID: 8300000, guid: 5ba84b0e2cf43df408d587976da49d63, type: 3}
|
Clip: {fileID: 8300000, guid: 5ba84b0e2cf43df408d587976da49d63, type: 3}
|
||||||
DefaultVolume: 0.7
|
DefaultVolume: 0.7
|
||||||
DefaultPitch: 0.9
|
DefaultPitch: 0.9
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: click-short-confirm
|
- Name: click-short-confirm
|
||||||
Clip: {fileID: 8300000, guid: 55eef2d804c271946a2c47337fa27ce4, type: 3}
|
Clip: {fileID: 8300000, guid: 55eef2d804c271946a2c47337fa27ce4, type: 3}
|
||||||
DefaultVolume: 0.9
|
DefaultVolume: 0.9
|
||||||
DefaultPitch: 1
|
DefaultPitch: 1
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: click-close
|
- Name: click-close
|
||||||
Clip: {fileID: 8300000, guid: 4ca23ada6817c7348a52ecbd49801702, type: 3}
|
Clip: {fileID: 8300000, guid: 4ca23ada6817c7348a52ecbd49801702, type: 3}
|
||||||
DefaultVolume: 0.6
|
DefaultVolume: 0.6
|
||||||
DefaultPitch: 0.8
|
DefaultPitch: 0.8
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: pause-retry-click
|
- Name: pause-retry-click
|
||||||
Clip: {fileID: 8300000, guid: a4ab3d4f1ae6ac940a5d16119a73a4e4, type: 3}
|
Clip: {fileID: 8300000, guid: a4ab3d4f1ae6ac940a5d16119a73a4e4, type: 3}
|
||||||
DefaultVolume: 0.8
|
DefaultVolume: 0.8
|
||||||
DefaultPitch: 1.1
|
DefaultPitch: 1.1
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: menu-options-click
|
- Name: menu-options-click
|
||||||
Clip: {fileID: 8300000, guid: 5f51b36760658354a91d710ecab055a1, type: 3}
|
Clip: {fileID: 8300000, guid: 5f51b36760658354a91d710ecab055a1, type: 3}
|
||||||
DefaultVolume: 0.7
|
DefaultVolume: 0.7
|
||||||
DefaultPitch: 1
|
DefaultPitch: 1
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: menu-exit-click
|
- Name: menu-exit-click
|
||||||
Clip: {fileID: 8300000, guid: 872d2756e2154fd44a1b07b67596b94a, type: 3}
|
Clip: {fileID: 8300000, guid: 872d2756e2154fd44a1b07b67596b94a, type: 3}
|
||||||
DefaultVolume: 0.7
|
DefaultVolume: 0.7
|
||||||
DefaultPitch: 0.85
|
DefaultPitch: 0.85
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: check-on
|
- Name: check-on
|
||||||
Clip: {fileID: 8300000, guid: 0467ea34c3274e449b7dd5b6c820db4e, type: 3}
|
Clip: {fileID: 8300000, guid: 0467ea34c3274e449b7dd5b6c820db4e, type: 3}
|
||||||
DefaultVolume: 0.6
|
DefaultVolume: 0.6
|
||||||
DefaultPitch: 1.2
|
DefaultPitch: 1.2
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: check-off
|
- Name: check-off
|
||||||
Clip: {fileID: 8300000, guid: 843d92b9180c16f4fb3a878aa7aacc9b, type: 3}
|
Clip: {fileID: 8300000, guid: 843d92b9180c16f4fb3a878aa7aacc9b, type: 3}
|
||||||
DefaultVolume: 0.6
|
DefaultVolume: 0.6
|
||||||
DefaultPitch: 0.8
|
DefaultPitch: 0.8
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: UI_Focus
|
- Name: UI_Focus
|
||||||
Clip: {fileID: 8300000, guid: 843d92b9180c16f4fb3a878aa7aacc9b, type: 3}
|
Clip: {fileID: 8300000, guid: 843d92b9180c16f4fb3a878aa7aacc9b, type: 3}
|
||||||
DefaultVolume: 0.4
|
DefaultVolume: 0.4
|
||||||
DefaultPitch: 1
|
DefaultPitch: 1
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: heartbeat
|
- Name: heartbeat
|
||||||
Clip: {fileID: 8300000, guid: 843d92b9180c16f4fb3a878aa7aacc9b, type: 3}
|
Clip: {fileID: 8300000, guid: 843d92b9180c16f4fb3a878aa7aacc9b, type: 3}
|
||||||
DefaultVolume: 0.8
|
DefaultVolume: 0.8
|
||||||
DefaultPitch: 1
|
DefaultPitch: 1
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: menuHit
|
- Name: menuHit
|
||||||
Clip: {fileID: 8300000, guid: 843d92b9180c16f4fb3a878aa7aacc9b, type: 3}
|
Clip: {fileID: 8300000, guid: 843d92b9180c16f4fb3a878aa7aacc9b, type: 3}
|
||||||
DefaultVolume: 1
|
DefaultVolume: 1
|
||||||
DefaultPitch: 1
|
DefaultPitch: 1
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: sectionpass
|
- Name: sectionpass
|
||||||
Clip: {fileID: 8300000, guid: 843d92b9180c16f4fb3a878aa7aacc9b, type: 3}
|
Clip: {fileID: 8300000, guid: 843d92b9180c16f4fb3a878aa7aacc9b, type: 3}
|
||||||
DefaultVolume: 0.9
|
DefaultVolume: 0.9
|
||||||
DefaultPitch: 1
|
DefaultPitch: 1
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
- Name: sectionfail
|
- Name: sectionfail
|
||||||
Clip: {fileID: 8300000, guid: 843d92b9180c16f4fb3a878aa7aacc9b, type: 3}
|
Clip: {fileID: 8300000, guid: 843d92b9180c16f4fb3a878aa7aacc9b, type: 3}
|
||||||
DefaultVolume: 0.9
|
DefaultVolume: 0.9
|
||||||
DefaultPitch: 1
|
DefaultPitch: 1
|
||||||
MixerGroup: {fileID: 24300002, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
MixerGroup: {fileID: -6431947565845596828, guid: 914a8292e2b2b594e9b7cb3ee0c7e77d, type: 2}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -21,7 +21,7 @@ MonoBehaviour:
|
|||||||
m_ScaleMode: 1
|
m_ScaleMode: 1
|
||||||
m_ReferenceSpritePixelsPerUnit: 100
|
m_ReferenceSpritePixelsPerUnit: 100
|
||||||
m_PixelsPerUnit: 100
|
m_PixelsPerUnit: 100
|
||||||
m_Scale: 1
|
m_Scale: 0.65
|
||||||
m_ReferenceDpi: 96
|
m_ReferenceDpi: 96
|
||||||
m_FallbackDpi: 96
|
m_FallbackDpi: 96
|
||||||
m_ReferenceResolution: {x: 1200, y: 800}
|
m_ReferenceResolution: {x: 1200, y: 800}
|
||||||
|
|||||||
Reference in New Issue
Block a user