import { _decorator, AudioClip, AudioSource, Component, Node } from 'cc'; const { ccclass, property } = _decorator; @ccclass('SoundManager') export class SoundManager extends Component { private static instance: SoundManager; public static Instance(): SoundManager { if (!SoundManager.instance) { SoundManager.instance = new Node().addComponent(SoundManager); } return SoundManager.instance; } protected onLoad(): void { SoundManager.instance = this; } @property(AudioSource) private audioSource: AudioSource; @property(AudioClip) public hitGround: AudioClip; @property(AudioClip) public hitPlayer: AudioClip; @property(AudioClip) public goal: AudioClip; @property(AudioClip) public menuTap: AudioClip; @property(AudioClip) public sfxGoal: AudioClip; @property(AudioClip) public whistle: AudioClip; public PlayOneShot(clip: AudioClip): void { this.audioSource.playOneShot(clip); } }