From b54fd6b0e7f17e7c74ac03eced6083b45afa668d Mon Sep 17 00:00:00 2001 From: dgflash Date: Fri, 29 Aug 2025 18:02:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/core/common/audio/AudioEffectPool.ts | 2 +- assets/core/common/audio/AudioEnum.ts | 7 ++++ assets/core/common/audio/AudioEnum.ts.meta | 9 +++++ assets/core/common/audio/AudioManager.ts | 45 +++++++++++---------- assets/core/common/audio/AudioMusic.ts | 2 +- 5 files changed, 41 insertions(+), 24 deletions(-) create mode 100644 assets/core/common/audio/AudioEnum.ts create mode 100644 assets/core/common/audio/AudioEnum.ts.meta diff --git a/assets/core/common/audio/AudioEffectPool.ts b/assets/core/common/audio/AudioEffectPool.ts index 3c6d39c..f478b8b 100644 --- a/assets/core/common/audio/AudioEffectPool.ts +++ b/assets/core/common/audio/AudioEffectPool.ts @@ -2,7 +2,7 @@ import { AudioClip, Node, NodePool } from "cc"; import { oops } from "../../Oops"; import { resLoader } from "../loader/ResLoader"; import { AudioEffect } from "./AudioEffect"; -import { AudioEffectType } from "./AudioManager"; +import { AudioEffectType } from "./AudioEnum"; import { IAudioData, IAudioParams } from "./IAudio"; /** 音乐效缓冲编号最大值 */ diff --git a/assets/core/common/audio/AudioEnum.ts b/assets/core/common/audio/AudioEnum.ts new file mode 100644 index 0000000..15974b0 --- /dev/null +++ b/assets/core/common/audio/AudioEnum.ts @@ -0,0 +1,7 @@ +/** 音乐音效默认类型 */ +export enum AudioEffectType { + /** 背景音乐 */ + Music = "music", + /** 音乐音效 */ + Effect = "effect", +} diff --git a/assets/core/common/audio/AudioEnum.ts.meta b/assets/core/common/audio/AudioEnum.ts.meta new file mode 100644 index 0000000..41c7c1f --- /dev/null +++ b/assets/core/common/audio/AudioEnum.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "68e8e4a0-93f5-4606-9c42-06b1daff6d1e", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/core/common/audio/AudioManager.ts b/assets/core/common/audio/AudioManager.ts index 4913107..aec7f46 100644 --- a/assets/core/common/audio/AudioManager.ts +++ b/assets/core/common/audio/AudioManager.ts @@ -2,18 +2,12 @@ import { AudioClip, Component } from "cc"; import { oops } from "../../Oops"; import { AudioEffect } from "./AudioEffect"; import { AudioEffectPool } from "./AudioEffectPool"; +import { AudioEffectType } from "./AudioEnum"; import { AudioMusic } from "./AudioMusic"; import { IAudioData, IAudioParams } from "./IAudio"; const LOCAL_STORE_KEY = "game_audio"; -/** 音乐音效默认类型 */ -export enum AudioEffectType { - /** 背景音乐 */ - Music = "music", - /** 音乐音效 */ - Effect = "effect", -} /** * 音频管理 @@ -88,21 +82,28 @@ export class AudioManager extends Component { } private setStateDefault() { - this.data = { - music: { switch: true, volume: 1 }, - effect: { switch: true, volume: 1 }, - }; - - //@ts-ignore - this.music.data = this.data; - this.music.setSwitch(true); - this.music.setVolume(1); - - //@ts-ignore - this.effect.data = this.data; - this.effect.setSwitch(true, AudioEffectType.Effect); - this.effect.setVolume(1, AudioEffectType.Effect); - + this.data = {}; + for (const key in AudioEffectType) { + //@ts-ignore + const value = AudioEffectType[key]; + if (typeof value === 'string') { + this.data[value] = { switch: true, volume: 1 }; + switch (value) { + case AudioEffectType.Music: + //@ts-ignore + this.music.data = this.data; + this.music.setSwitch(true); + this.music.setVolume(1); + break; + default: + //@ts-ignore + this.effect.data = this.data; + this.effect.setSwitch(true, value); + this.effect.setVolume(1, value); + break; + } + } + } this.save(); } } \ No newline at end of file diff --git a/assets/core/common/audio/AudioMusic.ts b/assets/core/common/audio/AudioMusic.ts index a2000f5..f0fc4b8 100644 --- a/assets/core/common/audio/AudioMusic.ts +++ b/assets/core/common/audio/AudioMusic.ts @@ -6,7 +6,7 @@ */ import { AudioClip, AudioSource, _decorator } from 'cc'; import { resLoader } from '../loader/ResLoader'; -import { AudioEffectType } from './AudioManager'; +import { AudioEffectType } from './AudioEnum'; import { IAudioData, IAudioParams } from './IAudio'; const { ccclass } = _decorator;