├── .collabignore ├── .gitignore ├── Assets ├── TSM.meta └── TSM │ ├── Editor.meta │ ├── Editor │ ├── AudioAssetPostProcessor.cs │ └── AudioAssetPostProcessor.cs.meta │ ├── Mixer.meta │ ├── Mixer │ ├── MainMixer.mixer │ └── MainMixer.mixer.meta │ ├── Prefabs.meta │ ├── Prefabs │ ├── SoundManager.prefab │ └── SoundManager.prefab.meta │ ├── Samples.meta │ ├── Samples │ ├── Common.meta │ ├── Common │ │ ├── Scripts.meta │ │ └── Scripts │ │ │ ├── EnvironmentPlayer.cs │ │ │ ├── EnvironmentPlayer.cs.meta │ │ │ ├── InGameAudioPlayerBase.cs │ │ │ ├── InGameAudioPlayerBase.cs.meta │ │ │ ├── InGameSePlayer.cs │ │ │ ├── InGameSePlayer.cs.meta │ │ │ ├── Rotater.cs │ │ │ ├── Rotater.cs.meta │ │ │ ├── SwitchFuncButton.cs │ │ │ ├── SwitchFuncButton.cs.meta │ │ │ ├── VolumeConfigUI.cs │ │ │ ├── VolumeConfigUI.cs.meta │ │ │ ├── uGUIUtil.cs │ │ │ └── uGUIUtil.cs.meta │ ├── SoundTestSample.meta │ └── SoundTestSample │ │ ├── AudioClips.meta │ │ ├── AudioClips │ │ ├── BGM.meta │ │ ├── BGM │ │ │ ├── Dysipe.wav │ │ │ ├── Dysipe.wav.meta │ │ │ ├── Fepu.aif │ │ │ └── Fepu.aif.meta │ │ ├── Environment.meta │ │ ├── GameSe.meta │ │ ├── GameSe │ │ │ ├── Damage.wav │ │ │ ├── Damage.wav.meta │ │ │ ├── Heal.wav │ │ │ └── Heal.wav.meta │ │ ├── Jingle.meta │ │ ├── Jingle │ │ │ ├── Notice.wav │ │ │ └── Notice.wav.meta │ │ ├── MenuSe.meta │ │ └── MenuSe │ │ │ ├── Dead.wav │ │ │ ├── Dead.wav.meta │ │ │ ├── Laser.wav │ │ │ └── Laser.wav.meta │ │ ├── Scripts.meta │ │ ├── Scripts │ │ ├── SoundTestMain.cs │ │ ├── SoundTestMain.cs.meta │ │ ├── SoundTestUI.cs │ │ └── SoundTestUI.cs.meta │ │ ├── SoundTestSample.unity │ │ └── SoundTestSample.unity.meta │ ├── Scripts.meta │ └── Scripts │ ├── AudioMiexerExtention.cs │ ├── AudioMiexerExtention.cs.meta │ ├── AudioMixerManager.cs │ ├── AudioMixerManager.cs.meta │ ├── AudioSourceExtention.cs │ ├── AudioSourceExtention.cs.meta │ ├── Interface.meta │ ├── Interface │ ├── IAudioPausable.cs │ └── IAudioPausable.cs.meta │ ├── SoundManager.cs │ └── SoundManager.cs.meta ├── LICENSE ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── Physics2DSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset └── TimeManager.asset ├── README.md └── img ├── TSMDemoScreenshot1.png └── TSMDemoScreenshot2.png /.collabignore: -------------------------------------------------------------------------------- 1 | # =========================== 2 | # Default Collab Ignore Rules 3 | # =========================== 4 | 5 | # OS Generated 6 | # ============ 7 | .DS_Store 8 | ._* 9 | .Spotlight-V100 10 | .Trashes 11 | Icon? 12 | ehthumbs.db 13 | [Tt]humbs.db 14 | [Dd]esktop.ini 15 | 16 | # Visual Studio / MonoDevelop generated 17 | # ===================================== 18 | [Ee]xported[Oo]bj/ 19 | *.userprefs 20 | *.csproj 21 | *.pidb 22 | *.suo 23 | *.sln 24 | *.user 25 | *.unityproj 26 | *.booproj 27 | 28 | # Unity generated 29 | # =============== 30 | [Oo]bj/ 31 | [Bb]uild 32 | sysinfo.txt 33 | *.stackdump 34 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /[Ll]ibrary/ 2 | /[Tt]emp/ 3 | /[Oo]bj/ 4 | /[Bb]uild/ 5 | /[Bb]uilds/ 6 | /Assets/AssetStoreTools* 7 | /ProjectSettings* 8 | 9 | 10 | /Assets/TSM/Samples/AdventureSample* 11 | /Assets/TSM/Editor/NotInclude* 12 | /Assets/TSM/Samples/MinimumAudioPlaySample* 13 | .vs 14 | 15 | # Autogenerated VS/MD solution and project files 16 | ExportedObj/ 17 | *.csproj 18 | *.unityproj 19 | *.sln 20 | *.suo 21 | *.tmp 22 | *.user 23 | *.userprefs 24 | *.pidb 25 | *.booproj 26 | *.svd 27 | 28 | # Unity3D generated meta files 29 | *.pidb.meta 30 | 31 | # Unity3D Generated File On Crash Reports 32 | sysinfo.txt 33 | 34 | # Builds 35 | *.apk -------------------------------------------------------------------------------- /Assets/TSM.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c080eeecf657ce54593739c8b3f480ba 3 | folderAsset: yes 4 | timeCreated: 1515296086 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TSM/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3c7d9880caebd634eac092608553e3af 3 | folderAsset: yes 4 | timeCreated: 1519728538 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TSM/Editor/AudioAssetPostProcessor.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | 4 | public class AudioAssetPostProcessor : AssetPostprocessor 5 | { 6 | private static readonly string AUDIOCLIP_FOLDER = "AudioClips/"; 7 | private static readonly string BGM = "BGM"; 8 | private static readonly string GAMESE = "GameSe"; 9 | private static readonly string MENUSE = "MenuSe"; 10 | private static readonly string JINGLE = "Jingle"; 11 | private static readonly string VOICE = "Voice"; 12 | private static readonly string ENVIRONMENT = "Environment"; 13 | 14 | private static readonly string PLATFORM_Android = "Android"; 15 | private static readonly string PLATFORM_Standalone = "Standalone"; 16 | 17 | private void OnPostprocessAudio(AudioClip audioClip) 18 | { 19 | AudioImporter audioImporter = assetImporter as AudioImporter; 20 | 21 | string path = audioImporter.assetPath; 22 | 23 | if (!path.Contains(AUDIOCLIP_FOLDER)) 24 | { 25 | return; 26 | } 27 | 28 | //AudioClips/以降のパスを切り出し// 29 | path = path.Substring(path.IndexOf(AUDIOCLIP_FOLDER) + AUDIOCLIP_FOLDER.Length); 30 | 31 | //SE系は全部モノラル化// 32 | audioImporter.forceToMono = path.Contains(MENUSE) || path.Contains(GAMESE); 33 | 34 | //BGMは全部バックグラウンド読み込み// 35 | audioImporter.loadInBackground = path.Contains(BGM); 36 | 37 | 38 | //Defaultの設定// 39 | AudioImporterSampleSettings defaultSettings = audioImporter.defaultSampleSettings; 40 | 41 | if (path.Contains(BGM) || path.Contains(VOICE)) 42 | { 43 | //BGMまたはボイスならストリーミング再生// 44 | defaultSettings.loadType = AudioClipLoadType.Streaming; 45 | } 46 | else 47 | { 48 | //それ以外はメモリ内圧縮// 49 | defaultSettings.loadType = AudioClipLoadType.CompressedInMemory; 50 | 51 | //Androidの圧縮設定(再生レイテンシーのためにメモリに展開するという想定)// 52 | AudioImporterSampleSettings androidSettings = audioImporter.GetOverrideSampleSettings(PLATFORM_Android); 53 | androidSettings.loadType = AudioClipLoadType.DecompressOnLoad; 54 | audioImporter.SetOverrideSampleSettings(PLATFORM_Android, androidSettings); 55 | } 56 | 57 | //圧縮設定// 58 | defaultSettings.compressionFormat = AudioCompressionFormat.Vorbis; 59 | defaultSettings.quality = 0.2f; 60 | 61 | audioImporter.defaultSampleSettings = defaultSettings; 62 | 63 | //PC、Macのは圧縮率を低めに(ファイル容量に余裕があるという想定)// 64 | AudioImporterSampleSettings standaloneSettings = audioImporter.GetOverrideSampleSettings(PLATFORM_Standalone); 65 | standaloneSettings.quality = 0.8f; 66 | audioImporter.SetOverrideSampleSettings(PLATFORM_Standalone, standaloneSettings); 67 | 68 | } 69 | 70 | private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) 71 | { 72 | //ディレクトリ移動の場合もインポートを発生させてOnPostprocessAudioを呼ぶ// 73 | foreach (string path in movedAssets) 74 | { 75 | if (path.Contains(AUDIOCLIP_FOLDER)) 76 | { 77 | AssetDatabase.ImportAsset(path, ImportAssetOptions.ForceUpdate); 78 | } 79 | } 80 | } 81 | 82 | } -------------------------------------------------------------------------------- /Assets/TSM/Editor/AudioAssetPostProcessor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1deec70d5c058c145a5fbd7e7ad3d351 3 | timeCreated: 1520869333 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/TSM/Mixer.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9b8b1b170c2a108458c8cf5c888024b5 3 | folderAsset: yes 4 | timeCreated: 1515495702 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TSM/Mixer/MainMixer.mixer: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!241 &24100000 4 | AudioMixerController: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: MainMixer 9 | m_OutputGroup: {fileID: 0} 10 | m_MasterGroup: {fileID: 24300002} 11 | m_Snapshots: 12 | - {fileID: 24500006} 13 | m_StartSnapshot: {fileID: 24500006} 14 | m_SuspendThreshold: -80 15 | m_EnableSuspend: 1 16 | m_UpdateMode: 0 17 | m_ExposedParameters: 18 | - guid: d0d3f22e27eae614d894aa0c972fc5fe 19 | name: BGMVolume 20 | - guid: 319658b99e2c6de48905b7e8382ec762 21 | name: GameSEVolume 22 | - guid: 01123e28839061c48803301040ea546a 23 | name: MasterVolume 24 | m_AudioMixerGroupViews: 25 | - guids: 26 | - 323d0f2280cab1740ba55cbd2d5ef3bf 27 | - bb9f4ae083eca46498fc0df03d92cbdf 28 | - df77c065cb1a606469943e9d543e168d 29 | - 66dc28a9390457e43a81a8904c8b919d 30 | - fe813d4babbdc1e4285a131cba509a4f 31 | - 6682852f3df11304f8e3b090f723a1b8 32 | - a670a5491cdbb504682a0afac1893546 33 | name: View 34 | m_CurrentViewIndex: 0 35 | m_TargetSnapshot: {fileID: 24500006} 36 | --- !u!243 &24300002 37 | AudioMixerGroupController: 38 | m_ObjectHideFlags: 0 39 | m_PrefabParentObject: {fileID: 0} 40 | m_PrefabInternal: {fileID: 0} 41 | m_Name: Master 42 | m_AudioMixer: {fileID: 24100000} 43 | m_GroupID: 323d0f2280cab1740ba55cbd2d5ef3bf 44 | m_Children: 45 | - {fileID: 243183214261574758} 46 | - {fileID: 243102211508376876} 47 | - {fileID: 243504967571775006} 48 | - {fileID: 243128139564549372} 49 | - {fileID: 243080728132002748} 50 | - {fileID: 243359806670065938} 51 | m_Volume: 01123e28839061c48803301040ea546a 52 | m_Pitch: 8398068ee83d09542a8cf178b357eabb 53 | m_Effects: 54 | - {fileID: 24400004} 55 | m_UserColorIndex: 0 56 | m_Mute: 0 57 | m_Solo: 0 58 | m_BypassEffects: 0 59 | --- !u!244 &24400004 60 | AudioMixerEffectController: 61 | m_ObjectHideFlags: 3 62 | m_PrefabParentObject: {fileID: 0} 63 | m_PrefabInternal: {fileID: 0} 64 | m_Name: 65 | m_EffectID: c6e5da9fecbc1354ea87ff9733d02113 66 | m_EffectName: Attenuation 67 | m_MixLevel: 3b89e70281d3a4d4bb5c708c339ffa1e 68 | m_Parameters: [] 69 | m_SendTarget: {fileID: 0} 70 | m_EnableWetMix: 0 71 | m_Bypass: 0 72 | --- !u!245 &24500006 73 | AudioMixerSnapshotController: 74 | m_ObjectHideFlags: 0 75 | m_PrefabParentObject: {fileID: 0} 76 | m_PrefabInternal: {fileID: 0} 77 | m_Name: Snapshot 78 | m_AudioMixer: {fileID: 24100000} 79 | m_SnapshotID: 56840b58e4042a74bb932bbac1725cff 80 | m_FloatValues: 81 | 7dcb630258efa5f4fb2a99c878047280: 2.3499997 82 | 586653e28ab996047b93139ebe06ea87: -37 83 | f019d1f264a014a48bf60729faf7d665: 0 84 | 0a00c1943a59ab149b3f570ace5d6aeb: 1 85 | 90a002955d1199441a44975ac1a3158b: 0 86 | b46a04c5c85731b44b256e09ccbef9e6: 1 87 | 07bfbdd57be93434d9c826f8f068948a: 0.1 88 | 01123e28839061c48803301040ea546a: -5.7224774 89 | 319658b99e2c6de48905b7e8382ec762: 0.10800299 90 | 9688693a058cbc5428cb7e72f97c2607: 0.1 91 | 8ba1658d1ca5f56449191cd5a6361312: 10 92 | d0d3f22e27eae614d894aa0c972fc5fe: 0.04171297 93 | m_TransitionOverrides: {} 94 | --- !u!243 &243080728132002748 95 | AudioMixerGroupController: 96 | m_ObjectHideFlags: 0 97 | m_PrefabParentObject: {fileID: 0} 98 | m_PrefabInternal: {fileID: 0} 99 | m_Name: Jingle 100 | m_AudioMixer: {fileID: 24100000} 101 | m_GroupID: 6682852f3df11304f8e3b090f723a1b8 102 | m_Children: [] 103 | m_Volume: 2bd1348b6b091f543942d86e3eaddaf7 104 | m_Pitch: e7d9491971a98414f83d8f1b8ac7b7ec 105 | m_Effects: 106 | - {fileID: 244117540199958236} 107 | - {fileID: 244473335762955976} 108 | m_UserColorIndex: 6 109 | m_Mute: 0 110 | m_Solo: 0 111 | m_BypassEffects: 0 112 | --- !u!243 &243102211508376876 113 | AudioMixerGroupController: 114 | m_ObjectHideFlags: 0 115 | m_PrefabParentObject: {fileID: 0} 116 | m_PrefabInternal: {fileID: 0} 117 | m_Name: MenuSE 118 | m_AudioMixer: {fileID: 24100000} 119 | m_GroupID: df77c065cb1a606469943e9d543e168d 120 | m_Children: [] 121 | m_Volume: 16087819265472b40bf2faddbffaabac 122 | m_Pitch: 5c6fc33a7d80533409709aa2fba257e8 123 | m_Effects: 124 | - {fileID: 244232589821107368} 125 | m_UserColorIndex: 2 126 | m_Mute: 0 127 | m_Solo: 0 128 | m_BypassEffects: 0 129 | --- !u!243 &243128139564549372 130 | AudioMixerGroupController: 131 | m_ObjectHideFlags: 0 132 | m_PrefabParentObject: {fileID: 0} 133 | m_PrefabInternal: {fileID: 0} 134 | m_Name: Environment 135 | m_AudioMixer: {fileID: 24100000} 136 | m_GroupID: fe813d4babbdc1e4285a131cba509a4f 137 | m_Children: [] 138 | m_Volume: bdf752026beef9a41bb6b87f44a954fc 139 | m_Pitch: 9fa4aa3efd14f26498a132ac448ac0b3 140 | m_Effects: 141 | - {fileID: 244537476879336056} 142 | m_UserColorIndex: 4 143 | m_Mute: 0 144 | m_Solo: 0 145 | m_BypassEffects: 0 146 | --- !u!243 &243183214261574758 147 | AudioMixerGroupController: 148 | m_ObjectHideFlags: 0 149 | m_PrefabParentObject: {fileID: 0} 150 | m_PrefabInternal: {fileID: 0} 151 | m_Name: BGM 152 | m_AudioMixer: {fileID: 24100000} 153 | m_GroupID: bb9f4ae083eca46498fc0df03d92cbdf 154 | m_Children: [] 155 | m_Volume: d0d3f22e27eae614d894aa0c972fc5fe 156 | m_Pitch: 0a00c1943a59ab149b3f570ace5d6aeb 157 | m_Effects: 158 | - {fileID: 244522233218829458} 159 | - {fileID: 244003416101847136} 160 | m_UserColorIndex: 1 161 | m_Mute: 0 162 | m_Solo: 0 163 | m_BypassEffects: 0 164 | --- !u!243 &243359806670065938 165 | AudioMixerGroupController: 166 | m_ObjectHideFlags: 0 167 | m_PrefabParentObject: {fileID: 0} 168 | m_PrefabInternal: {fileID: 0} 169 | m_Name: Voice 170 | m_AudioMixer: {fileID: 24100000} 171 | m_GroupID: a670a5491cdbb504682a0afac1893546 172 | m_Children: [] 173 | m_Volume: 5483be7def1aa3449a9b363ae3e38dc6 174 | m_Pitch: c4151a5d9bd560b47a38790326d5e524 175 | m_Effects: 176 | - {fileID: 244729068871384542} 177 | m_UserColorIndex: 7 178 | m_Mute: 0 179 | m_Solo: 0 180 | m_BypassEffects: 0 181 | --- !u!243 &243504967571775006 182 | AudioMixerGroupController: 183 | m_ObjectHideFlags: 0 184 | m_PrefabParentObject: {fileID: 0} 185 | m_PrefabInternal: {fileID: 0} 186 | m_Name: GameSE 187 | m_AudioMixer: {fileID: 24100000} 188 | m_GroupID: 66dc28a9390457e43a81a8904c8b919d 189 | m_Children: [] 190 | m_Volume: 319658b99e2c6de48905b7e8382ec762 191 | m_Pitch: 599a6f763bcd8f04297b1f49ab09b378 192 | m_Effects: 193 | - {fileID: 244526974958783960} 194 | m_UserColorIndex: 3 195 | m_Mute: 0 196 | m_Solo: 0 197 | m_BypassEffects: 0 198 | --- !u!244 &244003416101847136 199 | AudioMixerEffectController: 200 | m_ObjectHideFlags: 3 201 | m_PrefabParentObject: {fileID: 0} 202 | m_PrefabInternal: {fileID: 0} 203 | m_Name: 204 | m_EffectID: d3e220e21247f104a9378b79f7290848 205 | m_EffectName: Duck Volume 206 | m_MixLevel: da314c024806cdd45812df6e6818f9d6 207 | m_Parameters: 208 | - m_ParameterName: Threshold 209 | m_GUID: 586653e28ab996047b93139ebe06ea87 210 | - m_ParameterName: Ratio 211 | m_GUID: 7dcb630258efa5f4fb2a99c878047280 212 | - m_ParameterName: Attack Time 213 | m_GUID: 9688693a058cbc5428cb7e72f97c2607 214 | - m_ParameterName: Release Time 215 | m_GUID: 07bfbdd57be93434d9c826f8f068948a 216 | - m_ParameterName: Make-up Gain 217 | m_GUID: 90a002955d1199441a44975ac1a3158b 218 | - m_ParameterName: Knee 219 | m_GUID: 8ba1658d1ca5f56449191cd5a6361312 220 | - m_ParameterName: Sidechain Mix 221 | m_GUID: b46a04c5c85731b44b256e09ccbef9e6 222 | m_SendTarget: {fileID: 0} 223 | m_EnableWetMix: 0 224 | m_Bypass: 0 225 | --- !u!244 &244117540199958236 226 | AudioMixerEffectController: 227 | m_ObjectHideFlags: 3 228 | m_PrefabParentObject: {fileID: 0} 229 | m_PrefabInternal: {fileID: 0} 230 | m_Name: 231 | m_EffectID: 30a6ed9c8e44f294bb5b5039a71f709f 232 | m_EffectName: Attenuation 233 | m_MixLevel: 9d5b30b48e6dfc14ab86c84b4b411262 234 | m_Parameters: [] 235 | m_SendTarget: {fileID: 0} 236 | m_EnableWetMix: 0 237 | m_Bypass: 0 238 | --- !u!244 &244232589821107368 239 | AudioMixerEffectController: 240 | m_ObjectHideFlags: 3 241 | m_PrefabParentObject: {fileID: 0} 242 | m_PrefabInternal: {fileID: 0} 243 | m_Name: 244 | m_EffectID: eb307f8ac2cacc04db67eb3161df6e45 245 | m_EffectName: Attenuation 246 | m_MixLevel: 181cf56987912614ca7194d751389bcc 247 | m_Parameters: [] 248 | m_SendTarget: {fileID: 0} 249 | m_EnableWetMix: 0 250 | m_Bypass: 0 251 | --- !u!244 &244473335762955976 252 | AudioMixerEffectController: 253 | m_ObjectHideFlags: 3 254 | m_PrefabParentObject: {fileID: 0} 255 | m_PrefabInternal: {fileID: 0} 256 | m_Name: 257 | m_EffectID: 07e023fe0b2e6224bac41b2d2e2950cf 258 | m_EffectName: Send 259 | m_MixLevel: f019d1f264a014a48bf60729faf7d665 260 | m_Parameters: [] 261 | m_SendTarget: {fileID: 244003416101847136} 262 | m_EnableWetMix: 0 263 | m_Bypass: 0 264 | --- !u!244 &244522233218829458 265 | AudioMixerEffectController: 266 | m_ObjectHideFlags: 3 267 | m_PrefabParentObject: {fileID: 0} 268 | m_PrefabInternal: {fileID: 0} 269 | m_Name: 270 | m_EffectID: e857cb109d97a404abd3b04e578cdc9e 271 | m_EffectName: Attenuation 272 | m_MixLevel: a1331687e64dae4449c0f409587b25fb 273 | m_Parameters: [] 274 | m_SendTarget: {fileID: 0} 275 | m_EnableWetMix: 0 276 | m_Bypass: 0 277 | --- !u!244 &244526974958783960 278 | AudioMixerEffectController: 279 | m_ObjectHideFlags: 3 280 | m_PrefabParentObject: {fileID: 0} 281 | m_PrefabInternal: {fileID: 0} 282 | m_Name: 283 | m_EffectID: 4afa846b7b58d864dbc1325199207cab 284 | m_EffectName: Attenuation 285 | m_MixLevel: defc701bec1b0264b9e6350f9227b37d 286 | m_Parameters: [] 287 | m_SendTarget: {fileID: 0} 288 | m_EnableWetMix: 0 289 | m_Bypass: 0 290 | --- !u!244 &244537476879336056 291 | AudioMixerEffectController: 292 | m_ObjectHideFlags: 3 293 | m_PrefabParentObject: {fileID: 0} 294 | m_PrefabInternal: {fileID: 0} 295 | m_Name: 296 | m_EffectID: 268a507eaf23f4b43a59bcca023267e0 297 | m_EffectName: Attenuation 298 | m_MixLevel: b8368a1d44705524fb0248daacbcaf2c 299 | m_Parameters: [] 300 | m_SendTarget: {fileID: 0} 301 | m_EnableWetMix: 0 302 | m_Bypass: 0 303 | --- !u!244 &244729068871384542 304 | AudioMixerEffectController: 305 | m_ObjectHideFlags: 3 306 | m_PrefabParentObject: {fileID: 0} 307 | m_PrefabInternal: {fileID: 0} 308 | m_Name: 309 | m_EffectID: b5d086fe39e5b07439009dc9ba43b8f4 310 | m_EffectName: Attenuation 311 | m_MixLevel: 3eba9c0c8de9b7f479628859649b6dec 312 | m_Parameters: [] 313 | m_SendTarget: {fileID: 0} 314 | m_EnableWetMix: 0 315 | m_Bypass: 0 316 | -------------------------------------------------------------------------------- /Assets/TSM/Mixer/MainMixer.mixer.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d751c68879be7164cb42b9f56a559e55 3 | timeCreated: 1515315130 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 24100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TSM/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0e33ba524eb28b244baabda52c2e996d 3 | folderAsset: yes 4 | timeCreated: 1519720876 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TSM/Prefabs/SoundManager.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_ParentPrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1122329839682064} 13 | m_IsPrefabParent: 1 14 | --- !u!1 &1122329839682064 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_PrefabParentObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 5 20 | m_Component: 21 | - component: {fileID: 4273098418744078} 22 | - component: {fileID: 114074309852803038} 23 | - component: {fileID: 114575246403319008} 24 | - component: {fileID: 82686422989272002} 25 | - component: {fileID: 82682412150939026} 26 | - component: {fileID: 82398847482741580} 27 | - component: {fileID: 82176826309701630} 28 | m_Layer: 0 29 | m_Name: SoundManager 30 | m_TagString: Untagged 31 | m_Icon: {fileID: 0} 32 | m_NavMeshLayer: 0 33 | m_StaticEditorFlags: 0 34 | m_IsActive: 1 35 | --- !u!1 &1905103532630804 36 | GameObject: 37 | m_ObjectHideFlags: 0 38 | m_PrefabParentObject: {fileID: 0} 39 | m_PrefabInternal: {fileID: 100100000} 40 | serializedVersion: 5 41 | m_Component: 42 | - component: {fileID: 4767225426985496} 43 | - component: {fileID: 81227399913729192} 44 | m_Layer: 0 45 | m_Name: AudioListener 46 | m_TagString: Untagged 47 | m_Icon: {fileID: 0} 48 | m_NavMeshLayer: 0 49 | m_StaticEditorFlags: 0 50 | m_IsActive: 1 51 | --- !u!4 &4273098418744078 52 | Transform: 53 | m_ObjectHideFlags: 1 54 | m_PrefabParentObject: {fileID: 0} 55 | m_PrefabInternal: {fileID: 100100000} 56 | m_GameObject: {fileID: 1122329839682064} 57 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 58 | m_LocalPosition: {x: 0, y: 0, z: 0} 59 | m_LocalScale: {x: 1, y: 1, z: 1} 60 | m_Children: 61 | - {fileID: 4767225426985496} 62 | m_Father: {fileID: 0} 63 | m_RootOrder: 0 64 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 65 | --- !u!4 &4767225426985496 66 | Transform: 67 | m_ObjectHideFlags: 1 68 | m_PrefabParentObject: {fileID: 0} 69 | m_PrefabInternal: {fileID: 100100000} 70 | m_GameObject: {fileID: 1905103532630804} 71 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 72 | m_LocalPosition: {x: 0, y: 0, z: 0} 73 | m_LocalScale: {x: 1, y: 1, z: 1} 74 | m_Children: [] 75 | m_Father: {fileID: 4273098418744078} 76 | m_RootOrder: 0 77 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 78 | --- !u!81 &81227399913729192 79 | AudioListener: 80 | m_ObjectHideFlags: 1 81 | m_PrefabParentObject: {fileID: 0} 82 | m_PrefabInternal: {fileID: 100100000} 83 | m_GameObject: {fileID: 1905103532630804} 84 | m_Enabled: 1 85 | --- !u!82 &82176826309701630 86 | AudioSource: 87 | m_ObjectHideFlags: 1 88 | m_PrefabParentObject: {fileID: 0} 89 | m_PrefabInternal: {fileID: 100100000} 90 | m_GameObject: {fileID: 1122329839682064} 91 | m_Enabled: 1 92 | serializedVersion: 4 93 | OutputAudioMixerGroup: {fileID: 243080728132002748, guid: d751c68879be7164cb42b9f56a559e55, 94 | type: 2} 95 | m_audioClip: {fileID: 0} 96 | m_PlayOnAwake: 1 97 | m_Volume: 1 98 | m_Pitch: 1 99 | Loop: 0 100 | Mute: 0 101 | Spatialize: 0 102 | SpatializePostEffects: 0 103 | Priority: 128 104 | DopplerLevel: 1 105 | MinDistance: 1 106 | MaxDistance: 500 107 | Pan2D: 0 108 | rolloffMode: 0 109 | BypassEffects: 0 110 | BypassListenerEffects: 0 111 | BypassReverbZones: 0 112 | rolloffCustomCurve: 113 | serializedVersion: 2 114 | m_Curve: 115 | - serializedVersion: 2 116 | time: 0 117 | value: 1 118 | inSlope: 0 119 | outSlope: 0 120 | tangentMode: 0 121 | - serializedVersion: 2 122 | time: 1 123 | value: 0 124 | inSlope: 0 125 | outSlope: 0 126 | tangentMode: 0 127 | m_PreInfinity: 2 128 | m_PostInfinity: 2 129 | m_RotationOrder: 4 130 | panLevelCustomCurve: 131 | serializedVersion: 2 132 | m_Curve: 133 | - serializedVersion: 2 134 | time: 0 135 | value: 0 136 | inSlope: 0 137 | outSlope: 0 138 | tangentMode: 0 139 | m_PreInfinity: 2 140 | m_PostInfinity: 2 141 | m_RotationOrder: 0 142 | spreadCustomCurve: 143 | serializedVersion: 2 144 | m_Curve: 145 | - serializedVersion: 2 146 | time: 0 147 | value: 0 148 | inSlope: 0 149 | outSlope: 0 150 | tangentMode: 0 151 | m_PreInfinity: 2 152 | m_PostInfinity: 2 153 | m_RotationOrder: 0 154 | reverbZoneMixCustomCurve: 155 | serializedVersion: 2 156 | m_Curve: 157 | - serializedVersion: 2 158 | time: 0 159 | value: 1 160 | inSlope: 0 161 | outSlope: 0 162 | tangentMode: 0 163 | m_PreInfinity: 2 164 | m_PostInfinity: 2 165 | m_RotationOrder: 0 166 | --- !u!82 &82398847482741580 167 | AudioSource: 168 | m_ObjectHideFlags: 1 169 | m_PrefabParentObject: {fileID: 0} 170 | m_PrefabInternal: {fileID: 100100000} 171 | m_GameObject: {fileID: 1122329839682064} 172 | m_Enabled: 1 173 | serializedVersion: 4 174 | OutputAudioMixerGroup: {fileID: 243183214261574758, guid: d751c68879be7164cb42b9f56a559e55, 175 | type: 2} 176 | m_audioClip: {fileID: 0} 177 | m_PlayOnAwake: 0 178 | m_Volume: 1 179 | m_Pitch: 1 180 | Loop: 1 181 | Mute: 0 182 | Spatialize: 0 183 | SpatializePostEffects: 0 184 | Priority: 128 185 | DopplerLevel: 1 186 | MinDistance: 1 187 | MaxDistance: 500 188 | Pan2D: 0 189 | rolloffMode: 0 190 | BypassEffects: 0 191 | BypassListenerEffects: 0 192 | BypassReverbZones: 0 193 | rolloffCustomCurve: 194 | serializedVersion: 2 195 | m_Curve: 196 | - serializedVersion: 2 197 | time: 0 198 | value: 1 199 | inSlope: 0 200 | outSlope: 0 201 | tangentMode: 0 202 | - serializedVersion: 2 203 | time: 1 204 | value: 0 205 | inSlope: 0 206 | outSlope: 0 207 | tangentMode: 0 208 | m_PreInfinity: 2 209 | m_PostInfinity: 2 210 | m_RotationOrder: 4 211 | panLevelCustomCurve: 212 | serializedVersion: 2 213 | m_Curve: 214 | - serializedVersion: 2 215 | time: 0 216 | value: 0 217 | inSlope: 0 218 | outSlope: 0 219 | tangentMode: 0 220 | m_PreInfinity: 2 221 | m_PostInfinity: 2 222 | m_RotationOrder: 0 223 | spreadCustomCurve: 224 | serializedVersion: 2 225 | m_Curve: 226 | - serializedVersion: 2 227 | time: 0 228 | value: 0 229 | inSlope: 0 230 | outSlope: 0 231 | tangentMode: 0 232 | m_PreInfinity: 2 233 | m_PostInfinity: 2 234 | m_RotationOrder: 0 235 | reverbZoneMixCustomCurve: 236 | serializedVersion: 2 237 | m_Curve: 238 | - serializedVersion: 2 239 | time: 0 240 | value: 1 241 | inSlope: 0 242 | outSlope: 0 243 | tangentMode: 0 244 | m_PreInfinity: 2 245 | m_PostInfinity: 2 246 | m_RotationOrder: 0 247 | --- !u!82 &82682412150939026 248 | AudioSource: 249 | m_ObjectHideFlags: 1 250 | m_PrefabParentObject: {fileID: 0} 251 | m_PrefabInternal: {fileID: 100100000} 252 | m_GameObject: {fileID: 1122329839682064} 253 | m_Enabled: 1 254 | serializedVersion: 4 255 | OutputAudioMixerGroup: {fileID: 243183214261574758, guid: d751c68879be7164cb42b9f56a559e55, 256 | type: 2} 257 | m_audioClip: {fileID: 0} 258 | m_PlayOnAwake: 0 259 | m_Volume: 1 260 | m_Pitch: 1 261 | Loop: 1 262 | Mute: 0 263 | Spatialize: 0 264 | SpatializePostEffects: 0 265 | Priority: 128 266 | DopplerLevel: 1 267 | MinDistance: 1 268 | MaxDistance: 500 269 | Pan2D: 0 270 | rolloffMode: 0 271 | BypassEffects: 0 272 | BypassListenerEffects: 0 273 | BypassReverbZones: 0 274 | rolloffCustomCurve: 275 | serializedVersion: 2 276 | m_Curve: 277 | - serializedVersion: 2 278 | time: 0 279 | value: 1 280 | inSlope: 0 281 | outSlope: 0 282 | tangentMode: 0 283 | - serializedVersion: 2 284 | time: 1 285 | value: 0 286 | inSlope: 0 287 | outSlope: 0 288 | tangentMode: 0 289 | m_PreInfinity: 2 290 | m_PostInfinity: 2 291 | m_RotationOrder: 4 292 | panLevelCustomCurve: 293 | serializedVersion: 2 294 | m_Curve: 295 | - serializedVersion: 2 296 | time: 0 297 | value: 0 298 | inSlope: 0 299 | outSlope: 0 300 | tangentMode: 0 301 | m_PreInfinity: 2 302 | m_PostInfinity: 2 303 | m_RotationOrder: 0 304 | spreadCustomCurve: 305 | serializedVersion: 2 306 | m_Curve: 307 | - serializedVersion: 2 308 | time: 0 309 | value: 0 310 | inSlope: 0 311 | outSlope: 0 312 | tangentMode: 0 313 | m_PreInfinity: 2 314 | m_PostInfinity: 2 315 | m_RotationOrder: 0 316 | reverbZoneMixCustomCurve: 317 | serializedVersion: 2 318 | m_Curve: 319 | - serializedVersion: 2 320 | time: 0 321 | value: 1 322 | inSlope: 0 323 | outSlope: 0 324 | tangentMode: 0 325 | m_PreInfinity: 2 326 | m_PostInfinity: 2 327 | m_RotationOrder: 0 328 | --- !u!82 &82686422989272002 329 | AudioSource: 330 | m_ObjectHideFlags: 1 331 | m_PrefabParentObject: {fileID: 0} 332 | m_PrefabInternal: {fileID: 100100000} 333 | m_GameObject: {fileID: 1122329839682064} 334 | m_Enabled: 1 335 | serializedVersion: 4 336 | OutputAudioMixerGroup: {fileID: 243102211508376876, guid: d751c68879be7164cb42b9f56a559e55, 337 | type: 2} 338 | m_audioClip: {fileID: 0} 339 | m_PlayOnAwake: 0 340 | m_Volume: 1 341 | m_Pitch: 1 342 | Loop: 0 343 | Mute: 0 344 | Spatialize: 0 345 | SpatializePostEffects: 0 346 | Priority: 128 347 | DopplerLevel: 1 348 | MinDistance: 1 349 | MaxDistance: 500 350 | Pan2D: 0 351 | rolloffMode: 0 352 | BypassEffects: 0 353 | BypassListenerEffects: 0 354 | BypassReverbZones: 0 355 | rolloffCustomCurve: 356 | serializedVersion: 2 357 | m_Curve: 358 | - serializedVersion: 2 359 | time: 0 360 | value: 1 361 | inSlope: 0 362 | outSlope: 0 363 | tangentMode: 0 364 | - serializedVersion: 2 365 | time: 1 366 | value: 0 367 | inSlope: 0 368 | outSlope: 0 369 | tangentMode: 0 370 | m_PreInfinity: 2 371 | m_PostInfinity: 2 372 | m_RotationOrder: 4 373 | panLevelCustomCurve: 374 | serializedVersion: 2 375 | m_Curve: 376 | - serializedVersion: 2 377 | time: 0 378 | value: 0 379 | inSlope: 0 380 | outSlope: 0 381 | tangentMode: 0 382 | m_PreInfinity: 2 383 | m_PostInfinity: 2 384 | m_RotationOrder: 0 385 | spreadCustomCurve: 386 | serializedVersion: 2 387 | m_Curve: 388 | - serializedVersion: 2 389 | time: 0 390 | value: 0 391 | inSlope: 0 392 | outSlope: 0 393 | tangentMode: 0 394 | m_PreInfinity: 2 395 | m_PostInfinity: 2 396 | m_RotationOrder: 0 397 | reverbZoneMixCustomCurve: 398 | serializedVersion: 2 399 | m_Curve: 400 | - serializedVersion: 2 401 | time: 0 402 | value: 1 403 | inSlope: 0 404 | outSlope: 0 405 | tangentMode: 0 406 | m_PreInfinity: 2 407 | m_PostInfinity: 2 408 | m_RotationOrder: 0 409 | --- !u!114 &114074309852803038 410 | MonoBehaviour: 411 | m_ObjectHideFlags: 1 412 | m_PrefabParentObject: {fileID: 0} 413 | m_PrefabInternal: {fileID: 100100000} 414 | m_GameObject: {fileID: 1122329839682064} 415 | m_Enabled: 1 416 | m_EditorHideFlags: 0 417 | m_Script: {fileID: 11500000, guid: 951cc85264557224699905e30d1a2043, type: 3} 418 | m_Name: 419 | m_EditorClassIdentifier: 420 | audioMixermanager: {fileID: 114575246403319008} 421 | audioListenerTransform: {fileID: 4767225426985496} 422 | audioSourceMenuSe: {fileID: 82686422989272002} 423 | audioSourceJingle: {fileID: 82176826309701630} 424 | audioSourceBGMList: 425 | - {fileID: 82682412150939026} 426 | - {fileID: 82398847482741580} 427 | menuSeAudioClipList: 428 | - {fileID: 8300000, guid: 257b50d6f60e31244932f562cd8fd213, type: 3} 429 | bgmAudioClipList: 430 | - {fileID: 8300000, guid: ad4d63abb50daed458eff95a2eb1736a, type: 3} 431 | - {fileID: 8300000, guid: 7639810db4464ca4f948d885b8474b32, type: 3} 432 | jingleClipList: 433 | - {fileID: 8300000, guid: 3fde096b6a5e1c94491b188ca77ab794, type: 3} 434 | --- !u!114 &114575246403319008 435 | MonoBehaviour: 436 | m_ObjectHideFlags: 1 437 | m_PrefabParentObject: {fileID: 0} 438 | m_PrefabInternal: {fileID: 100100000} 439 | m_GameObject: {fileID: 1122329839682064} 440 | m_Enabled: 1 441 | m_EditorHideFlags: 0 442 | m_Script: {fileID: 11500000, guid: 0ba8072590a582340a40013d247a5b4c, type: 3} 443 | m_Name: 444 | m_EditorClassIdentifier: 445 | audioMixer: {fileID: 24100000, guid: d751c68879be7164cb42b9f56a559e55, type: 2} 446 | master: {fileID: 24300002, guid: d751c68879be7164cb42b9f56a559e55, type: 2} 447 | bgm: {fileID: 243183214261574758, guid: d751c68879be7164cb42b9f56a559e55, type: 2} 448 | environment: {fileID: 243128139564549372, guid: d751c68879be7164cb42b9f56a559e55, 449 | type: 2} 450 | gameSe: {fileID: 243504967571775006, guid: d751c68879be7164cb42b9f56a559e55, type: 2} 451 | menuSe: {fileID: 243102211508376876, guid: d751c68879be7164cb42b9f56a559e55, type: 2} 452 | voice: {fileID: 243359806670065938, guid: d751c68879be7164cb42b9f56a559e55, type: 2} 453 | jingle: {fileID: 243080728132002748, guid: d751c68879be7164cb42b9f56a559e55, type: 2} 454 | -------------------------------------------------------------------------------- /Assets/TSM/Prefabs/SoundManager.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6391a0f213348a0429572b253e62e1ee 3 | timeCreated: 1519720884 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TSM/Samples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ca2ba6fe5c1da2047ba01c52f640e0de 3 | folderAsset: yes 4 | timeCreated: 1519721368 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/Common.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1c06158941d1e9846a6d3607e7bdf42c 3 | folderAsset: yes 4 | timeCreated: 1520336293 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/Common/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a12a2c262a692ae4697c4f759d9a1257 3 | folderAsset: yes 4 | timeCreated: 1519386017 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/Common/Scripts/EnvironmentPlayer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using TSM; 5 | using System.Linq; 6 | 7 | /// 8 | /// 3Dオーディオ用にGameObjectコンポーネントに貼り付けたSEに再生処理を行うテストコード 9 | /// 10 | 11 | namespace TSMSample 12 | { 13 | public class EnvironmentPlayer : InGameAudioPlayerBase 14 | { 15 | [SerializeField] 16 | private float volume = 0.3f; 17 | 18 | [SerializeField] 19 | private bool isRandomStart = true; 20 | 21 | public override void Start() 22 | { 23 | base.Start(); 24 | 25 | if (audioSource.clip == null) 26 | { 27 | AudioClip audioClip = audioClipList.FirstOrDefault(); 28 | 29 | if (audioClip != null) 30 | { 31 | StartCoroutine(audioSource.PlayWithFadeIn(audioClip, volume, 0.5f, isRandomStart)); 32 | } 33 | } 34 | else 35 | { 36 | StartCoroutine(audioSource.PlayWithFadeIn(audioSource.clip, volume, 0.5f, isRandomStart)); 37 | } 38 | } 39 | 40 | public override void Reset() 41 | { 42 | base.Reset(); 43 | audioSource.loop = true; 44 | audioSource.spatialBlend = 0f;//2Dオーディオ設定// 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /Assets/TSM/Samples/Common/Scripts/EnvironmentPlayer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 744ba401993dfeb42af30cab1e6fc062 3 | timeCreated: 1520921233 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/Common/Scripts/InGameAudioPlayerBase.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using TSM; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | 7 | namespace TSMSample 8 | { 9 | [RequireComponent(typeof(AudioSource))] 10 | public abstract class InGameAudioPlayerBase : MonoBehaviour, IAudioPausable 11 | { 12 | [SerializeField] 13 | protected AudioSource audioSource; 14 | 15 | [SerializeField] 16 | protected List audioClipList; 17 | 18 | [SerializeField] 19 | public bool audoPlay = false; 20 | 21 | public bool IsPaused { get; private set; } 22 | 23 | public virtual void Start() 24 | { 25 | SoundManager.Instance.SetPausableList(this); 26 | 27 | if (audoPlay) 28 | { 29 | PlayDefault(); 30 | } 31 | } 32 | 33 | public virtual void PlayDefault() 34 | { 35 | if (audioSource.clip == null) 36 | { 37 | AudioClip audioClip = audioClipList.FirstOrDefault(); 38 | 39 | if (audioClip != null) 40 | { 41 | audioSource.Play(audioClip); 42 | } 43 | } 44 | else 45 | { 46 | audioSource.Play(); 47 | } 48 | } 49 | 50 | //再生中だったら再生をキャンセルする// 51 | public virtual bool PlayIfPossible() 52 | { 53 | if (audioSource.isPlaying) 54 | { 55 | return false; 56 | } 57 | else 58 | { 59 | PlayDefault(); 60 | return true; 61 | } 62 | } 63 | 64 | public virtual void Pause() 65 | { 66 | IsPaused = true; 67 | audioSource.Pause(); 68 | } 69 | 70 | public virtual void Resume() 71 | { 72 | IsPaused = false; 73 | audioSource.UnPause(); 74 | } 75 | 76 | public virtual void OnDestroy() 77 | { 78 | SoundManager.Instance.RemovePausableList(this); 79 | } 80 | 81 | public virtual void Reset() 82 | { 83 | audioSource = GetComponent(); 84 | audioSource.playOnAwake = false; 85 | } 86 | } 87 | } -------------------------------------------------------------------------------- /Assets/TSM/Samples/Common/Scripts/InGameAudioPlayerBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3f6efa0cd3dfe924f81e4c7ad368086b 3 | timeCreated: 1522108018 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/Common/Scripts/InGameSePlayer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using UnityEngine; 5 | using TSM; 6 | 7 | /// 8 | /// 3Dオーディオ用にGameObjectコンポーネントに貼り付けたSEに再生処理を行うテストコード 9 | /// 10 | 11 | namespace TSMSample 12 | { 13 | public class InGameSePlayer : InGameAudioPlayerBase 14 | { 15 | public override void Start() 16 | { 17 | base.Start(); 18 | 19 | audioSource.outputAudioMixerGroup = SoundManager.Instance.GetAudioMixerManager().GetGameSeAudioMixerGroup(); 20 | } 21 | 22 | public void PlaySe(string seName) 23 | { 24 | AudioClip audioClip = audioClipList.FirstOrDefault(clip => clip.name == seName); 25 | 26 | if (audioClip != null) 27 | { 28 | audioSource.pitch = 1f; 29 | audioSource.Play(audioClip); 30 | } 31 | } 32 | 33 | public override void PlayDefault() 34 | { 35 | audioSource.pitch = 1f; 36 | 37 | base.PlayDefault(); 38 | } 39 | 40 | /// 41 | /// ピッチランダム再生 42 | /// 43 | /// 44 | public void PlaySeRandomPitch(string seName) 45 | { 46 | AudioClip audioClip = audioClipList.FirstOrDefault(clip => clip.name == seName); 47 | 48 | if (audioClip != null) 49 | { 50 | audioSource.pitch = Random.Range(0.8f, 1.2f); 51 | audioSource.Play(audioClip); 52 | } 53 | } 54 | 55 | public override void Reset() 56 | { 57 | base.Reset(); 58 | audioSource.spatialBlend = 1f;//3Dオーディオ全振り// 59 | } 60 | } 61 | } -------------------------------------------------------------------------------- /Assets/TSM/Samples/Common/Scripts/InGameSePlayer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 96554801a3de0c842a8f132eaf44a215 3 | timeCreated: 1515740352 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/Common/Scripts/Rotater.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace TSMSample 4 | { 5 | public class Rotater : MonoBehaviour 6 | { 7 | [SerializeField] 8 | private float speed = 1f; 9 | private Transform thisTransform; 10 | 11 | private void Awake() 12 | { 13 | thisTransform = this.transform; 14 | } 15 | 16 | private void Update() 17 | { 18 | thisTransform.Rotate(Vector3.up * speed * Time.deltaTime); 19 | } 20 | 21 | } 22 | } -------------------------------------------------------------------------------- /Assets/TSM/Samples/Common/Scripts/Rotater.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e319d2f3f44fbc648903e135dd6c2aa5 3 | timeCreated: 1519441408 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/Common/Scripts/SwitchFuncButton.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using UnityEngine.UI; 4 | using UnityEngine.Events; 5 | 6 | namespace TSMSample 7 | { 8 | [RequireComponent(typeof(Button))] 9 | public class SwitchFuncButton : MonoBehaviour 10 | { 11 | private bool boolState = false; 12 | private UnityAction[] actionArray = new UnityAction[2]; 13 | private string[] buttonNameArray = new string[2]; 14 | 15 | [SerializeField] 16 | private Button thisButton; 17 | 18 | [SerializeField] 19 | private Text buttonName; 20 | 21 | public void SetEvent(string firstName, UnityAction firstAction, string secondName, UnityAction secondAction) 22 | { 23 | actionArray[0] = firstAction; 24 | actionArray[1] = secondAction; 25 | 26 | buttonNameArray[0] = firstName; 27 | buttonNameArray[1] = secondName; 28 | 29 | buttonName.text = buttonNameArray[boolState ? 1 : 0]; 30 | thisButton.onClick.SetListener(OnClick); 31 | } 32 | 33 | private void OnClick() 34 | { 35 | actionArray[boolState ? 1 : 0](); 36 | 37 | boolState = !boolState; 38 | buttonName.text = buttonNameArray[boolState ? 1 : 0]; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /Assets/TSM/Samples/Common/Scripts/SwitchFuncButton.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7e2e62607eb06ef4997cf2026bd185ce 3 | timeCreated: 1519437502 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/Common/Scripts/VolumeConfigUI.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | using UnityEngine.Events; 6 | using UnityEngine.SceneManagement; 7 | 8 | namespace TSMSample 9 | { 10 | public class VolumeConfigUI : MonoBehaviour 11 | { 12 | [SerializeField] 13 | private CanvasGroup canvasGroup; 14 | 15 | [SerializeField] 16 | private Slider masterSlider, bgmSlider, seSlider; 17 | 18 | [SerializeField] 19 | private AudioSource seTestPlayAudioSource; 20 | 21 | private bool testSoundEnable = false; 22 | 23 | private void Start() 24 | { 25 | Hide(); 26 | } 27 | 28 | public void Show(float masterVolume, float bgmVolume, float seVolume) 29 | { 30 | masterSlider.value = masterVolume; 31 | bgmSlider.value = bgmVolume; 32 | seSlider.value = seVolume; 33 | 34 | testSoundEnable = true; 35 | canvasGroup.Show(); 36 | } 37 | 38 | public void Hide() 39 | { 40 | canvasGroup.Hide(); 41 | } 42 | 43 | public void SetMasterSliderEvent(UnityAction sliderCallback) 44 | { 45 | masterSlider.SetValueChangedEvent(sliderCallback); 46 | } 47 | 48 | public void SetBgmSliderEvent(UnityAction sliderCallback) 49 | { 50 | bgmSlider.SetValueChangedEvent(sliderCallback); 51 | } 52 | 53 | public void SetGameSeSliderEvent(UnityAction sliderCallback) 54 | { 55 | sliderCallback += (vol) => { PlayTestSe(); }; 56 | seSlider.SetValueChangedEvent(sliderCallback); 57 | } 58 | 59 | private void PlayTestSe() 60 | { 61 | if (testSoundEnable == false || seTestPlayAudioSource.isPlaying) return; 62 | 63 | seTestPlayAudioSource.Play(); 64 | } 65 | } 66 | } -------------------------------------------------------------------------------- /Assets/TSM/Samples/Common/Scripts/VolumeConfigUI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bc5bf617111d04a4cbb3a3109a961243 3 | timeCreated: 1515751451 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/Common/Scripts/uGUIUtil.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using UnityEngine; 3 | using UnityEngine.Events; 4 | using UnityEngine.UI; 5 | 6 | namespace TSMSample 7 | { 8 | public static class UGUIListenerExtention 9 | { 10 | public static void Show(this CanvasGroup canvasGroup) 11 | { 12 | canvasGroup.interactable = true; 13 | canvasGroup.alpha = 1f; 14 | canvasGroup.blocksRaycasts = true; 15 | } 16 | 17 | public static void Hide(this CanvasGroup canvasGroup) 18 | { 19 | canvasGroup.interactable = false; 20 | canvasGroup.alpha = 0f; 21 | canvasGroup.blocksRaycasts = false; 22 | } 23 | 24 | //UnityEventがジェネリックで拡張できないので// 25 | public static void SetValueChangedEvent(this Slider slider, UnityAction sliderCallback) 26 | { 27 | if (slider.onValueChanged != null) 28 | { 29 | slider.onValueChanged.RemoveAllListeners(); 30 | } 31 | 32 | slider.onValueChanged.AddListener(sliderCallback); 33 | } 34 | 35 | public static void SetListener(this UnityEvent unityEvent, UnityAction unityAction) 36 | { 37 | unityEvent.RemoveAllListeners(); 38 | unityEvent.AddListener(unityAction); 39 | } 40 | 41 | public static IEnumerator FadeIn(this Graphic graphic, float fadeTime = 2f) 42 | { 43 | while (graphic.color.a < 1f) 44 | { 45 | float temp = graphic.color.a + Time.deltaTime / fadeTime; 46 | graphic.SetAlpha(temp); 47 | 48 | yield return null; 49 | } 50 | } 51 | 52 | public static IEnumerator FadeOut(this Graphic graphic, float fadeTime = 2f, UnityAction callback = null) 53 | { 54 | while (graphic.color.a > 0f) 55 | { 56 | float temp = graphic.color.a - Time.deltaTime / fadeTime; 57 | graphic.SetAlpha(temp); 58 | 59 | yield return null; 60 | } 61 | 62 | if (callback != null) 63 | { 64 | callback(); 65 | } 66 | } 67 | 68 | public static void SetAlpha(this Graphic graphic, float alpha) 69 | { 70 | graphic.color = new Color(graphic.color.r, graphic.color.g, graphic.color.b, alpha); 71 | } 72 | } 73 | } -------------------------------------------------------------------------------- /Assets/TSM/Samples/Common/Scripts/uGUIUtil.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7420d9ab73a641e4494df3a215aa8337 3 | timeCreated: 1519386017 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5935a156c391b2b43aa0796a70598328 3 | folderAsset: yes 4 | timeCreated: 1515296079 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/AudioClips.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7064ea4279a4bd544bac6b9b9712148f 3 | folderAsset: yes 4 | timeCreated: 1523070885 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/AudioClips/BGM.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0ba809dd0d3daf847b66911c5fa7907e 3 | folderAsset: yes 4 | timeCreated: 1515307650 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/AudioClips/BGM/Dysipe.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TakaakiIchijo/TypicalSoundManagerForUnity/c770ee37b4285844cad3945116121fec1238471d/Assets/TSM/Samples/SoundTestSample/AudioClips/BGM/Dysipe.wav -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/AudioClips/BGM/Dysipe.wav.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ad4d63abb50daed458eff95a2eb1736a 3 | timeCreated: 1515307653 4 | licenseType: Pro 5 | AudioImporter: 6 | serializedVersion: 6 7 | defaultSettings: 8 | loadType: 2 9 | sampleRateSetting: 1 10 | sampleRateOverride: 44100 11 | compressionFormat: 1 12 | quality: 0.2 13 | conversionMode: 0 14 | platformSettingOverrides: 15 | 1: 16 | loadType: 2 17 | sampleRateSetting: 1 18 | sampleRateOverride: 44100 19 | compressionFormat: 1 20 | quality: 0.8 21 | conversionMode: 0 22 | forceToMono: 0 23 | normalize: 1 24 | preloadAudioData: 1 25 | loadInBackground: 1 26 | ambisonic: 0 27 | 3D: 1 28 | userData: 29 | assetBundleName: 30 | assetBundleVariant: 31 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/AudioClips/BGM/Fepu.aif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TakaakiIchijo/TypicalSoundManagerForUnity/c770ee37b4285844cad3945116121fec1238471d/Assets/TSM/Samples/SoundTestSample/AudioClips/BGM/Fepu.aif -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/AudioClips/BGM/Fepu.aif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7639810db4464ca4f948d885b8474b32 3 | timeCreated: 1515307652 4 | licenseType: Pro 5 | AudioImporter: 6 | serializedVersion: 6 7 | defaultSettings: 8 | loadType: 2 9 | sampleRateSetting: 1 10 | sampleRateOverride: 44100 11 | compressionFormat: 1 12 | quality: 0.2 13 | conversionMode: 0 14 | platformSettingOverrides: 15 | 1: 16 | loadType: 2 17 | sampleRateSetting: 1 18 | sampleRateOverride: 44100 19 | compressionFormat: 1 20 | quality: 0.8 21 | conversionMode: 0 22 | forceToMono: 0 23 | normalize: 1 24 | preloadAudioData: 1 25 | loadInBackground: 1 26 | ambisonic: 0 27 | 3D: 1 28 | userData: 29 | assetBundleName: 30 | assetBundleVariant: 31 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/AudioClips/Environment.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 17285487f3b2bf64583475cf6f63c979 3 | folderAsset: yes 4 | timeCreated: 1520920432 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/AudioClips/GameSe.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 39040c62842f213458dd714a6fd9e3b5 3 | folderAsset: yes 4 | timeCreated: 1515297251 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/AudioClips/GameSe/Damage.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TakaakiIchijo/TypicalSoundManagerForUnity/c770ee37b4285844cad3945116121fec1238471d/Assets/TSM/Samples/SoundTestSample/AudioClips/GameSe/Damage.wav -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/AudioClips/GameSe/Damage.wav.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 201ae03c028c35a428abd45db382ca40 3 | timeCreated: 1515297251 4 | licenseType: Pro 5 | AudioImporter: 6 | serializedVersion: 6 7 | defaultSettings: 8 | loadType: 1 9 | sampleRateSetting: 0 10 | sampleRateOverride: 44100 11 | compressionFormat: 1 12 | quality: 0.2 13 | conversionMode: 0 14 | platformSettingOverrides: 15 | 1: 16 | loadType: 1 17 | sampleRateSetting: 1 18 | sampleRateOverride: 44100 19 | compressionFormat: 1 20 | quality: 0.8 21 | conversionMode: 0 22 | 7: 23 | loadType: 0 24 | sampleRateSetting: 0 25 | sampleRateOverride: 44100 26 | compressionFormat: 1 27 | quality: 0.19 28 | conversionMode: 0 29 | forceToMono: 1 30 | normalize: 1 31 | preloadAudioData: 1 32 | loadInBackground: 0 33 | ambisonic: 0 34 | 3D: 1 35 | userData: 36 | assetBundleName: 37 | assetBundleVariant: 38 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/AudioClips/GameSe/Heal.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TakaakiIchijo/TypicalSoundManagerForUnity/c770ee37b4285844cad3945116121fec1238471d/Assets/TSM/Samples/SoundTestSample/AudioClips/GameSe/Heal.wav -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/AudioClips/GameSe/Heal.wav.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f8dd2fd40b6556e448b4738aa1067eb0 3 | timeCreated: 1515297252 4 | licenseType: Pro 5 | AudioImporter: 6 | serializedVersion: 6 7 | defaultSettings: 8 | loadType: 1 9 | sampleRateSetting: 0 10 | sampleRateOverride: 44100 11 | compressionFormat: 1 12 | quality: 0.2 13 | conversionMode: 0 14 | platformSettingOverrides: 15 | 1: 16 | loadType: 1 17 | sampleRateSetting: 0 18 | sampleRateOverride: 44100 19 | compressionFormat: 1 20 | quality: 0.8 21 | conversionMode: 0 22 | 7: 23 | loadType: 0 24 | sampleRateSetting: 0 25 | sampleRateOverride: 44100 26 | compressionFormat: 1 27 | quality: 0.19 28 | conversionMode: 0 29 | forceToMono: 1 30 | normalize: 1 31 | preloadAudioData: 1 32 | loadInBackground: 0 33 | ambisonic: 0 34 | 3D: 1 35 | userData: 36 | assetBundleName: 37 | assetBundleVariant: 38 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/AudioClips/Jingle.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 298b1c780e36750469d6214ee90c7ebe 3 | folderAsset: yes 4 | timeCreated: 1515307650 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/AudioClips/Jingle/Notice.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TakaakiIchijo/TypicalSoundManagerForUnity/c770ee37b4285844cad3945116121fec1238471d/Assets/TSM/Samples/SoundTestSample/AudioClips/Jingle/Notice.wav -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/AudioClips/Jingle/Notice.wav.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3fde096b6a5e1c94491b188ca77ab794 3 | timeCreated: 1515307651 4 | licenseType: Pro 5 | AudioImporter: 6 | serializedVersion: 6 7 | defaultSettings: 8 | loadType: 1 9 | sampleRateSetting: 0 10 | sampleRateOverride: 44100 11 | compressionFormat: 1 12 | quality: 0.2 13 | conversionMode: 0 14 | platformSettingOverrides: 15 | 1: 16 | loadType: 1 17 | sampleRateSetting: 0 18 | sampleRateOverride: 44100 19 | compressionFormat: 1 20 | quality: 0.8 21 | conversionMode: 0 22 | 7: 23 | loadType: 0 24 | sampleRateSetting: 0 25 | sampleRateOverride: 44100 26 | compressionFormat: 1 27 | quality: 1 28 | conversionMode: 0 29 | forceToMono: 0 30 | normalize: 1 31 | preloadAudioData: 1 32 | loadInBackground: 0 33 | ambisonic: 0 34 | 3D: 1 35 | userData: 36 | assetBundleName: 37 | assetBundleVariant: 38 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/AudioClips/MenuSe.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fe0ab05ff156f3e4f84a4c6b92ace292 3 | folderAsset: yes 4 | timeCreated: 1520922497 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/AudioClips/MenuSe/Dead.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TakaakiIchijo/TypicalSoundManagerForUnity/c770ee37b4285844cad3945116121fec1238471d/Assets/TSM/Samples/SoundTestSample/AudioClips/MenuSe/Dead.wav -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/AudioClips/MenuSe/Dead.wav.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1c61f1d9c56054348bd1026c7868bdce 3 | timeCreated: 1515297251 4 | licenseType: Pro 5 | AudioImporter: 6 | serializedVersion: 6 7 | defaultSettings: 8 | loadType: 1 9 | sampleRateSetting: 0 10 | sampleRateOverride: 44100 11 | compressionFormat: 1 12 | quality: 0.2 13 | conversionMode: 0 14 | platformSettingOverrides: 15 | 1: 16 | loadType: 1 17 | sampleRateSetting: 1 18 | sampleRateOverride: 44100 19 | compressionFormat: 1 20 | quality: 0.8 21 | conversionMode: 0 22 | 7: 23 | loadType: 0 24 | sampleRateSetting: 0 25 | sampleRateOverride: 44100 26 | compressionFormat: 1 27 | quality: 0.19 28 | conversionMode: 0 29 | forceToMono: 1 30 | normalize: 1 31 | preloadAudioData: 1 32 | loadInBackground: 0 33 | ambisonic: 0 34 | 3D: 1 35 | userData: 36 | assetBundleName: 37 | assetBundleVariant: 38 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/AudioClips/MenuSe/Laser.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TakaakiIchijo/TypicalSoundManagerForUnity/c770ee37b4285844cad3945116121fec1238471d/Assets/TSM/Samples/SoundTestSample/AudioClips/MenuSe/Laser.wav -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/AudioClips/MenuSe/Laser.wav.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 257b50d6f60e31244932f562cd8fd213 3 | timeCreated: 1523071033 4 | licenseType: Pro 5 | AudioImporter: 6 | serializedVersion: 6 7 | defaultSettings: 8 | loadType: 1 9 | sampleRateSetting: 0 10 | sampleRateOverride: 44100 11 | compressionFormat: 1 12 | quality: 0.2 13 | conversionMode: 0 14 | platformSettingOverrides: 15 | 1: 16 | loadType: 1 17 | sampleRateSetting: 0 18 | sampleRateOverride: 44100 19 | compressionFormat: 1 20 | quality: 0.8 21 | conversionMode: 0 22 | 7: 23 | loadType: 0 24 | sampleRateSetting: 0 25 | sampleRateOverride: 44100 26 | compressionFormat: 1 27 | quality: 1 28 | conversionMode: 0 29 | forceToMono: 1 30 | normalize: 1 31 | preloadAudioData: 1 32 | loadInBackground: 0 33 | ambisonic: 0 34 | 3D: 1 35 | userData: 36 | assetBundleName: 37 | assetBundleVariant: 38 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5e9b6ca38ddddfe4d84533a2761ff700 3 | folderAsset: yes 4 | timeCreated: 1515297393 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/Scripts/SoundTestMain.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using TSM; 3 | using System.Collections.Generic; 4 | 5 | namespace TSMSample 6 | { 7 | public class SoundTestMain : MonoBehaviour 8 | { 9 | [SerializeField] 10 | public Transform mainCameraTransform; 11 | 12 | [SerializeField] 13 | private SoundTestUI mainUI; 14 | 15 | [SerializeField] 16 | private VolumeConfigUI volumeConfigUI; 17 | 18 | private AudioMixerManager audoMixerManager; 19 | 20 | [SerializeField] 21 | private Rotater cubeRotater; 22 | 23 | [SerializeField] 24 | private SwitchFuncButton pauseButton; 25 | 26 | private void Start() 27 | { 28 | SoundManager.Instance.SetAudioListener(mainCameraTransform); 29 | 30 | audoMixerManager = SoundManager.Instance.GetAudioMixerManager(); 31 | 32 | volumeConfigUI.SetMasterSliderEvent(vol => audoMixerManager.MasterVolumeByLinear = vol); 33 | volumeConfigUI.SetBgmSliderEvent(vol => audoMixerManager.BgmVolumeByLinear = vol); 34 | volumeConfigUI.SetGameSeSliderEvent(vol => audoMixerManager.GameSeVolumeByLinear = vol); 35 | 36 | pauseButton.SetEvent("Pause", GamePause, "Resume", GameResume); 37 | } 38 | 39 | public void ShowVolumeConfigUI() 40 | { 41 | volumeConfigUI.Show( 42 | audoMixerManager.MasterVolumeByLinear, 43 | audoMixerManager.BgmVolumeByLinear, 44 | audoMixerManager.GameSeVolumeByLinear); 45 | } 46 | 47 | public void PlayMenuSe() 48 | { 49 | SoundManager.Instance.PlayMenuSe("Laser"); 50 | } 51 | 52 | public void PlayJingle() 53 | { 54 | mainUI.SetJinglePlayStatusText("JinglePlaying"); 55 | SoundManager.Instance.PlayJingle("Notice", () => mainUI.SetJinglePlayStatusText("JingleStop")); 56 | } 57 | 58 | public void GamePause() 59 | { 60 | cubeRotater.enabled = false; 61 | SoundManager.Instance.Pause(); 62 | } 63 | 64 | public void GameResume() 65 | { 66 | cubeRotater.enabled = true; 67 | SoundManager.Instance.Resume(); 68 | } 69 | } 70 | } -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/Scripts/SoundTestMain.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2b4e7c0ec75633e48b78ff850df4c8c8 3 | timeCreated: 1515747549 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/Scripts/SoundTestUI.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | 6 | namespace TSMSample 7 | { 8 | public class SoundTestUI : MonoBehaviour 9 | { 10 | [SerializeField] 11 | private Text jinglePlayStatusText; 12 | 13 | public void SetJinglePlayStatusText(string text) 14 | { 15 | jinglePlayStatusText.text = text; 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/Scripts/SoundTestUI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a5086f049c0f0b0418a56d88de6a59bd 3 | timeCreated: 1519448547 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/TSM/Samples/SoundTestSample/SoundTestSample.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9a1e3101b93c45541901d14364873df6 3 | timeCreated: 1515295956 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TSM/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bb931cc3e7aab0a4aa444bdceb6195bb 3 | folderAsset: yes 4 | timeCreated: 1515295966 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TSM/Scripts/AudioMiexerExtention.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.Audio; 3 | 4 | namespace TSM 5 | { 6 | public static class AudioMixerGroupExtention 7 | { 8 | //パラメーター名は"Group名+Volume"の命名規則で設定する// 9 | 10 | public static float GetVolumeByLinear(this AudioMixerGroup audioMixerGroup) 11 | { 12 | float decibel; 13 | 14 | audioMixerGroup.audioMixer.GetFloat(audioMixerGroup.name + "Volume", out decibel); 15 | 16 | return Mathf.Pow(10f, decibel / 20f); 17 | } 18 | 19 | public static void SetVolumeByLinear(this AudioMixerGroup audioMixerGroup, float linearVolume) 20 | { 21 | float decibel = 20.0f * Mathf.Log10(linearVolume); 22 | 23 | if (float.IsNegativeInfinity(decibel)) 24 | { 25 | decibel = -96f; 26 | } 27 | 28 | audioMixerGroup.audioMixer.SetFloat(audioMixerGroup.name + "Volume", decibel); 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /Assets/TSM/Scripts/AudioMiexerExtention.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 18b4482845a72cc4eaa4e510abbfa385 3 | timeCreated: 1515742653 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/TSM/Scripts/AudioMixerManager.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.Audio; 3 | 4 | namespace TSM 5 | { 6 | public class AudioMixerManager : MonoBehaviour 7 | { 8 | [SerializeField] 9 | private AudioMixer audioMixer; 10 | 11 | [SerializeField] 12 | private AudioMixerGroup master, bgm, environment, gameSe, menuSe, voice, jingle; 13 | 14 | public float MasterVolumeByLinear 15 | { 16 | get 17 | { 18 | return master.GetVolumeByLinear(); 19 | } 20 | 21 | set 22 | { 23 | master.SetVolumeByLinear(value); 24 | } 25 | } 26 | 27 | public float BgmVolumeByLinear 28 | { 29 | get 30 | { 31 | return bgm.GetVolumeByLinear(); 32 | } 33 | 34 | set 35 | { 36 | bgm.SetVolumeByLinear(value); 37 | } 38 | } 39 | 40 | public float GameSeVolumeByLinear 41 | { 42 | get 43 | { 44 | return gameSe.GetVolumeByLinear(); 45 | } 46 | 47 | set 48 | { 49 | gameSe.SetVolumeByLinear(value); 50 | } 51 | } 52 | 53 | public AudioMixerGroup GetGameSeAudioMixerGroup() 54 | { 55 | return gameSe; 56 | } 57 | } 58 | } -------------------------------------------------------------------------------- /Assets/TSM/Scripts/AudioMixerManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0ba8072590a582340a40013d247a5b4c 3 | timeCreated: 1515749976 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/TSM/Scripts/AudioSourceExtention.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | using UnityEngine.Events; 6 | 7 | namespace TSM 8 | { 9 | public static class AudioSourceExtention 10 | { 11 | //Play関数の拡張 12 | //1行でaudioClip, ボリューム、再生位置のランダマイズまで指定できるようにする// 13 | public static void Play(this AudioSource audioSource, AudioClip audioClip, float volume = 1f, bool isRandomStartTime = false) 14 | { 15 | if (audioClip == null) return; 16 | 17 | audioSource.clip = audioClip; 18 | audioSource.volume = volume; 19 | 20 | if (isRandomStartTime) 21 | { 22 | audioSource.time = UnityEngine.Random.Range(0f, audioClip.length - 0.01f); 23 | //結果がlengthと同値になるとシークエラーを起こすため -0.01秒する// 24 | } 25 | 26 | audioSource.Play(); 27 | } 28 | 29 | public static IEnumerator PlayWithCompCallback(this AudioSource audioSource, AudioClip audioClip, float volume = 1f, UnityAction compCallback = null) 30 | { 31 | audioSource.Play(audioClip, volume); 32 | 33 | float timer = 0f; 34 | 35 | //WaitForSecondsを使うとCoroutineを一時停止・再開できなくなるのでwhileで対応// 36 | while (timer < audioClip.length) 37 | { 38 | timer += Time.deltaTime; 39 | yield return null; 40 | } 41 | 42 | //再生完了コールバックを実行// 43 | if (compCallback != null) 44 | { 45 | compCallback(); 46 | } 47 | } 48 | 49 | /// 50 | /// / 51 | /// 52 | /// 53 | /// フェードしたときの最終到達ボリューム 54 | /// フェード時間 55 | /// 再生開始位置をランダマイズ 56 | /// 57 | public static IEnumerator PlayWithFadeIn(this AudioSource audioSource, AudioClip audioClip, float targetVolume = 1f, float fadeTime = 0.1f, bool isRandomStartTime = false) 58 | { 59 | //目標ボリュームが0以下の場合は再生キャンセル// 60 | if (targetVolume <= 0f) yield break; 61 | 62 | //再生開始// 63 | audioSource.Play(audioClip, 0f, isRandomStartTime); 64 | 65 | //フェードタイムが0かそれより小さればフェード処理をキャンセルして// 66 | if (fadeTime <= 0f) 67 | { 68 | audioSource.volume = targetVolume; 69 | yield break; 70 | } 71 | 72 | //目標ボリュームに到達するまで毎フレームボリュームを上げる// 73 | while (audioSource.volume < targetVolume) 74 | { 75 | float tempVolume = audioSource.volume + (Time.deltaTime / fadeTime * targetVolume); 76 | 77 | //目標ボリュームより計算結果が大きいか判定(急に大ボリュームにならないようにする)// 78 | audioSource.volume = tempVolume > targetVolume ? targetVolume : tempVolume; 79 | 80 | yield return null; 81 | } 82 | } 83 | 84 | public static IEnumerator StopWithFadeOut(this AudioSource audioSource, float fadeTime) 85 | { 86 | if (audioSource.isPlaying == false) yield break; 87 | 88 | //フェードタイムが0かそれより小さればフェード処理を行わない// 89 | if (fadeTime <= 0f) 90 | { 91 | audioSource.volume = 0f; 92 | audioSource.Stop(); 93 | yield break; 94 | } 95 | 96 | while (audioSource.volume > 0f) 97 | { 98 | audioSource.volume -= Time.deltaTime / fadeTime; 99 | yield return null; 100 | } 101 | 102 | audioSource.Stop(); 103 | } 104 | 105 | } 106 | } -------------------------------------------------------------------------------- /Assets/TSM/Scripts/AudioSourceExtention.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7eb9d128fa7559e4d88e965b5d9b01ce 3 | timeCreated: 1515297110 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/TSM/Scripts/Interface.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 95d24a1fabe3a1042a0b6e134c0a9b2a 3 | folderAsset: yes 4 | timeCreated: 1519440156 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/TSM/Scripts/Interface/IAudioPausable.cs: -------------------------------------------------------------------------------- 1 | namespace TSM 2 | { 3 | public interface IAudioPausable 4 | { 5 | void Pause(); 6 | 7 | void Resume(); 8 | 9 | bool IsPaused { get; } 10 | } 11 | } -------------------------------------------------------------------------------- /Assets/TSM/Scripts/Interface/IAudioPausable.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 906c32342bbfb3245a9817a48128e5c5 3 | timeCreated: 1519440156 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/TSM/Scripts/SoundManager.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using System.Linq; 5 | using UnityEngine.Events; 6 | 7 | namespace TSM 8 | { 9 | [RequireComponent(typeof(AudioMixerManager))] 10 | public class SoundManager : MonoBehaviour 11 | { 12 | [SerializeField] 13 | private AudioMixerManager audioMixermanager; 14 | 15 | [SerializeField] 16 | private Transform audioListenerTransform; 17 | 18 | [SerializeField] 19 | private AudioSource audioSourceMenuSe; 20 | 21 | [SerializeField] 22 | private AudioSource audioSourceJingle; 23 | 24 | [SerializeField] 25 | private List audioSourceBGMList = new List(2); 26 | 27 | [SerializeField] 28 | private List menuSeAudioClipList, bgmAudioClipList, jingleClipList; 29 | 30 | public static SoundManager Instance; 31 | 32 | private List fadeCoroutineList = new List(); 33 | private IEnumerator jinglePlayCompCallbackCoroutine; 34 | 35 | public bool IsPaused { get; private set; } 36 | 37 | private List pausableList = new List(); 38 | 39 | public void SetPausableList(IAudioPausable audioPausable) 40 | { 41 | pausableList.Add(audioPausable); 42 | } 43 | 44 | public void RemovePausableList(IAudioPausable audioPausable) 45 | { 46 | pausableList.Remove(audioPausable); 47 | } 48 | 49 | private void Awake() 50 | { 51 | if (Instance != null) 52 | { 53 | Destroy(this.gameObject); 54 | } 55 | else 56 | { 57 | Instance = this; 58 | DontDestroyOnLoad(this.gameObject); 59 | } 60 | 61 | audioSourceBGMList.ForEach(asb => asb.loop = true); 62 | } 63 | 64 | public AudioMixerManager GetAudioMixerManager() 65 | { 66 | return audioMixermanager; 67 | } 68 | 69 | public void PlayJingle(string clipName, UnityAction compCallback = null) 70 | { 71 | if (IsPaused) return; 72 | 73 | compCallback += () => { jinglePlayCompCallbackCoroutine = null; }; 74 | 75 | AudioClip audioClip = jingleClipList.FirstOrDefault(clip => clip.name == clipName); 76 | 77 | //clipがなかったら処理を中止// 78 | if (audioClip == null) 79 | { 80 | Debug.Log("Can't find audioClip " + clipName); 81 | return; 82 | } 83 | 84 | jinglePlayCompCallbackCoroutine = audioSourceJingle.PlayWithCompCallback(audioClip: audioClip, compCallback: compCallback); 85 | 86 | StartCoroutine(jinglePlayCompCallbackCoroutine); 87 | } 88 | 89 | public void PlayMenuSe(string clipName) 90 | { 91 | if (IsPaused) return; 92 | 93 | AudioClip audioClip = menuSeAudioClipList.FirstOrDefault(clip => clip.name == clipName); 94 | 95 | if (audioClip == null) 96 | { 97 | Debug.Log("Can't find audioClip " + clipName); 98 | return; 99 | } 100 | 101 | audioSourceMenuSe.Play(audioClip); 102 | } 103 | 104 | public void PlayBGM(string clipName) 105 | { 106 | PlayBGMWithFade(clipName, 0.1f); 107 | } 108 | 109 | //uGUIから呼ぶ用// 110 | public void PlayBGMWithFade(string clipName) 111 | { 112 | PlayBGMWithFade(clipName, 2f); 113 | } 114 | 115 | public void PlayBGMWithFade(string clipName, float fadeTime) 116 | { 117 | if (IsPaused) return; 118 | 119 | //リストからAudioClipを取得// 120 | AudioClip audioClip = bgmAudioClipList.FirstOrDefault(clip => clip.name == clipName); 121 | 122 | //clipがなかったら処理を中止// 123 | if (audioClip == null) 124 | { 125 | Debug.Log("Can't find audioClip " + clipName); 126 | return; 127 | } 128 | 129 | AudioSource audioSourceEmpty = audioSourceBGMList.FirstOrDefault(asb => asb.isPlaying == false); 130 | 131 | if (audioSourceEmpty == null) 132 | { 133 | Debug.LogWarning("フェード処理中は新たなBGMを再生開始できません"); 134 | return; 135 | } 136 | else 137 | { 138 | StopFadeCoroutine(); 139 | 140 | //どちらか片方が再生中ならフェードアウト処理// 141 | AudioSource audioSourcePlaying = audioSourceBGMList.FirstOrDefault(asb => asb.isPlaying == true); 142 | if (audioSourcePlaying != null) 143 | { 144 | AddFadeCoroutineListAndStart(audioSourcePlaying.StopWithFadeOut(fadeTime)); 145 | } 146 | 147 | AddFadeCoroutineListAndStart(audioSourceEmpty.PlayWithFadeIn(audioClip, fadeTime: fadeTime)); 148 | } 149 | } 150 | 151 | public void StopBGM() 152 | { 153 | StopBGMWithFade(0.1f); 154 | } 155 | 156 | public void StopBGMWithFade(float fadeTime) 157 | { 158 | if (IsPaused) return; 159 | 160 | StopFadeCoroutine(); 161 | 162 | //再生しているbgm audio sourceがあったら止める// 163 | foreach (AudioSource asb in audioSourceBGMList.Where(asb => asb.isPlaying == true)) 164 | { 165 | AddFadeCoroutineListAndStart(asb.StopWithFadeOut(fadeTime)); 166 | } 167 | } 168 | 169 | private void AddFadeCoroutineListAndStart(IEnumerator routine) 170 | { 171 | fadeCoroutineList.Add(routine); 172 | StartCoroutine(routine); 173 | } 174 | 175 | private void StopFadeCoroutine() 176 | { 177 | fadeCoroutineList.ForEach(routine => StopCoroutine(routine)); 178 | fadeCoroutineList.Clear(); 179 | } 180 | 181 | public void SetAudioListener(Transform followTransform) 182 | { 183 | audioListenerTransform.SetParent(followTransform); 184 | audioListenerTransform.SetPositionAndRotation(followTransform.position, followTransform.rotation); 185 | } 186 | 187 | public void ClearAudioListenerPos() 188 | { 189 | audioListenerTransform.SetParent(this.transform); 190 | audioListenerTransform.SetPositionAndRotation(Vector3.zero, Quaternion.identity); 191 | } 192 | 193 | public void Pause() 194 | { 195 | IsPaused = true; 196 | 197 | fadeCoroutineList.ForEach(routine => StopCoroutine(routine)); 198 | audioSourceBGMList.ForEach(asb => asb.Pause()); 199 | 200 | PauseExeptBGM(); 201 | } 202 | 203 | public void PauseExeptBGM() 204 | { 205 | IsPaused = true; 206 | 207 | audioSourceMenuSe.Pause(); 208 | audioSourceJingle.Pause(); 209 | 210 | pausableList.ForEach(p => p.Pause()); 211 | 212 | if (jinglePlayCompCallbackCoroutine != null) 213 | { 214 | StopCoroutine(jinglePlayCompCallbackCoroutine); 215 | } 216 | } 217 | 218 | public void Resume() 219 | { 220 | IsPaused = false; 221 | 222 | fadeCoroutineList.ForEach(routine => StartCoroutine(routine)); 223 | audioSourceBGMList.ForEach(asb => asb.UnPause()); 224 | 225 | ResumeExeptBGM(); 226 | } 227 | 228 | public void ResumeExeptBGM() 229 | { 230 | IsPaused = false; 231 | 232 | audioSourceMenuSe.UnPause(); 233 | audioSourceJingle.UnPause(); 234 | 235 | pausableList.ForEach(p => p.Resume()); 236 | 237 | if (jinglePlayCompCallbackCoroutine != null) 238 | { 239 | StartCoroutine(jinglePlayCompCallbackCoroutine); 240 | } 241 | } 242 | } 243 | } -------------------------------------------------------------------------------- /Assets/TSM/Scripts/SoundManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 951cc85264557224699905e30d1a2043 3 | timeCreated: 1515295973 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Takaaki Ichijo 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 0 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_EnablePCM: 1 18 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 19 | m_AutoSimulation: 1 20 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_DefaultBehaviorMode: 0 10 | m_SpritePackerMode: 0 11 | m_SpritePackerPaddingPower: 1 12 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 13 | m_ProjectGenerationRootNamespace: 14 | m_UserGeneratedProjectSuffix: 15 | m_CollabEditorSettings: 16 | inProgressEnabled: 1 17 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | m_SettingNames: 89 | - Humanoid 90 | -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_AutoSimulation: 1 23 | m_QueriesHitTriggers: 1 24 | m_QueriesStartInColliders: 1 25 | m_ChangeStopsCallbacks: 0 26 | m_CallbacksOnDisable: 1 27 | m_AlwaysShowColliders: 0 28 | m_ShowColliderSleep: 1 29 | m_ShowColliderContacts: 0 30 | m_ShowColliderAABB: 0 31 | m_ContactArrowScale: 0.2 32 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 33 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 34 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 35 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 36 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 37 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2017.1.2f1 2 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 2 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | blendWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 31 | maximumLODLevel: 0 32 | particleRaycastBudget: 4 33 | asyncUploadTimeSlice: 2 34 | asyncUploadBufferSize: 4 35 | resolutionScalingFixedDPIFactor: 1 36 | excludedTargetPlatforms: [] 37 | - serializedVersion: 2 38 | name: Low 39 | pixelLightCount: 0 40 | shadows: 0 41 | shadowResolution: 0 42 | shadowProjection: 1 43 | shadowCascades: 1 44 | shadowDistance: 20 45 | shadowNearPlaneOffset: 3 46 | shadowCascade2Split: 0.33333334 47 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 48 | shadowmaskMode: 0 49 | blendWeights: 2 50 | textureQuality: 0 51 | anisotropicTextures: 0 52 | antiAliasing: 0 53 | softParticles: 0 54 | softVegetation: 0 55 | realtimeReflectionProbes: 0 56 | billboardsFaceCameraPosition: 0 57 | vSyncCount: 0 58 | lodBias: 0.4 59 | maximumLODLevel: 0 60 | particleRaycastBudget: 16 61 | asyncUploadTimeSlice: 2 62 | asyncUploadBufferSize: 4 63 | resolutionScalingFixedDPIFactor: 1 64 | excludedTargetPlatforms: [] 65 | - serializedVersion: 2 66 | name: Medium 67 | pixelLightCount: 1 68 | shadows: 2 69 | shadowResolution: 0 70 | shadowProjection: 1 71 | shadowCascades: 1 72 | shadowDistance: 20 73 | shadowNearPlaneOffset: 3 74 | shadowCascade2Split: 0.33333334 75 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 76 | shadowmaskMode: 0 77 | blendWeights: 2 78 | textureQuality: 0 79 | anisotropicTextures: 1 80 | antiAliasing: 2 81 | softParticles: 0 82 | softVegetation: 0 83 | realtimeReflectionProbes: 0 84 | billboardsFaceCameraPosition: 0 85 | vSyncCount: 1 86 | lodBias: 0.7 87 | maximumLODLevel: 0 88 | particleRaycastBudget: 64 89 | asyncUploadTimeSlice: 2 90 | asyncUploadBufferSize: 4 91 | resolutionScalingFixedDPIFactor: 1 92 | excludedTargetPlatforms: [] 93 | - serializedVersion: 2 94 | name: High 95 | pixelLightCount: 2 96 | shadows: 2 97 | shadowResolution: 1 98 | shadowProjection: 1 99 | shadowCascades: 2 100 | shadowDistance: 40 101 | shadowNearPlaneOffset: 3 102 | shadowCascade2Split: 0.33333334 103 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 104 | shadowmaskMode: 1 105 | blendWeights: 2 106 | textureQuality: 0 107 | anisotropicTextures: 1 108 | antiAliasing: 0 109 | softParticles: 0 110 | softVegetation: 1 111 | realtimeReflectionProbes: 1 112 | billboardsFaceCameraPosition: 1 113 | vSyncCount: 1 114 | lodBias: 1 115 | maximumLODLevel: 0 116 | particleRaycastBudget: 256 117 | asyncUploadTimeSlice: 2 118 | asyncUploadBufferSize: 4 119 | resolutionScalingFixedDPIFactor: 1 120 | excludedTargetPlatforms: [] 121 | - serializedVersion: 2 122 | name: Very High 123 | pixelLightCount: 3 124 | shadows: 2 125 | shadowResolution: 2 126 | shadowProjection: 1 127 | shadowCascades: 2 128 | shadowDistance: 70 129 | shadowNearPlaneOffset: 3 130 | shadowCascade2Split: 0.33333334 131 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 132 | shadowmaskMode: 1 133 | blendWeights: 4 134 | textureQuality: 0 135 | anisotropicTextures: 2 136 | antiAliasing: 2 137 | softParticles: 1 138 | softVegetation: 1 139 | realtimeReflectionProbes: 1 140 | billboardsFaceCameraPosition: 1 141 | vSyncCount: 1 142 | lodBias: 1.5 143 | maximumLODLevel: 0 144 | particleRaycastBudget: 1024 145 | asyncUploadTimeSlice: 2 146 | asyncUploadBufferSize: 4 147 | resolutionScalingFixedDPIFactor: 1 148 | excludedTargetPlatforms: [] 149 | - serializedVersion: 2 150 | name: Ultra 151 | pixelLightCount: 4 152 | shadows: 2 153 | shadowResolution: 2 154 | shadowProjection: 1 155 | shadowCascades: 4 156 | shadowDistance: 150 157 | shadowNearPlaneOffset: 3 158 | shadowCascade2Split: 0.33333334 159 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 160 | shadowmaskMode: 1 161 | blendWeights: 4 162 | textureQuality: 0 163 | anisotropicTextures: 2 164 | antiAliasing: 2 165 | softParticles: 1 166 | softVegetation: 1 167 | realtimeReflectionProbes: 1 168 | billboardsFaceCameraPosition: 1 169 | vSyncCount: 1 170 | lodBias: 2 171 | maximumLODLevel: 0 172 | particleRaycastBudget: 4096 173 | asyncUploadTimeSlice: 2 174 | asyncUploadBufferSize: 4 175 | resolutionScalingFixedDPIFactor: 1 176 | excludedTargetPlatforms: [] 177 | m_PerPlatformDefaultQuality: 178 | Android: 2 179 | Nintendo 3DS: 5 180 | Nintendo Switch: 5 181 | PS4: 5 182 | PSM: 5 183 | PSP2: 2 184 | Samsung TV: 2 185 | Standalone: 2 186 | Tizen: 2 187 | Web: 5 188 | WebGL: 2 189 | WiiU: 5 190 | Windows Store Apps: 5 191 | XboxOne: 5 192 | iPhone: 2 193 | tvOS: 2 194 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Typical Sound Manager for Unity 2.0 2 | A typical sound manager system for Unity engine. 3 | Focused to 2D sound control. 4 | 5 | ![Demo](img/TSMDemoScreenshot2.png) 6 | -------------------------------------------------------------------------------- /img/TSMDemoScreenshot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TakaakiIchijo/TypicalSoundManagerForUnity/c770ee37b4285844cad3945116121fec1238471d/img/TSMDemoScreenshot1.png -------------------------------------------------------------------------------- /img/TSMDemoScreenshot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TakaakiIchijo/TypicalSoundManagerForUnity/c770ee37b4285844cad3945116121fec1238471d/img/TSMDemoScreenshot2.png --------------------------------------------------------------------------------