first commit
This commit is contained in:
48
assets/scripts/AudioSettingsUI.ts
Normal file
48
assets/scripts/AudioSettingsUI.ts
Normal file
@@ -0,0 +1,48 @@
|
||||
import { _decorator, Component, Node, Toggle } from 'cc';
|
||||
import { AudioManager } from './AudioManager';
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass('AudioSettingsUI')
|
||||
export class AudioSettingsUI extends Component {
|
||||
@property(Node)
|
||||
panel: Node = null!; // 设置面板节点
|
||||
|
||||
@property(Toggle)
|
||||
bgmToggle: Toggle = null!;
|
||||
|
||||
@property(Toggle)
|
||||
sfxToggle: Toggle = null!;
|
||||
|
||||
onLoad() {
|
||||
const am = AudioManager.instance;
|
||||
|
||||
// 初始化 Toggle 状态
|
||||
this.bgmToggle.isChecked = am.bgmEnabled;
|
||||
this.sfxToggle.isChecked = am.sfxEnabled;
|
||||
|
||||
// Toggle 监听
|
||||
this.bgmToggle.node.on('toggle', this.onBgmToggleChanged, this);
|
||||
this.sfxToggle.node.on('toggle', this.onSfxToggleChanged, this);
|
||||
|
||||
// 面板默认隐藏
|
||||
this.panel.active = false;
|
||||
}
|
||||
|
||||
/** 打开设置面板 */
|
||||
openPanel() {
|
||||
this.panel.active = true;
|
||||
}
|
||||
|
||||
/** 关闭设置面板 */
|
||||
closePanel() {
|
||||
this.panel.active = false;
|
||||
}
|
||||
|
||||
private onBgmToggleChanged(toggle: Toggle) {
|
||||
AudioManager.instance.setBGMEnabled(toggle.isChecked);
|
||||
}
|
||||
|
||||
private onSfxToggleChanged(toggle: Toggle) {
|
||||
AudioManager.instance.setSFXEnabled(toggle.isChecked);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user