AudioMgr.ts 842 B

123456789101112131415161718192021222324252627282930313233
  1. import { AudioClip, AudioSourceComponent, _decorator } from "cc";
  2. import ResMgr from "./ResMgr";
  3. import { Global } from "./Global";
  4. const { ccclass, property } = _decorator;
  5. @ccclass("AudioMgr")
  6. export class AudioMgr {
  7. private _audioComp: AudioSourceComponent = null;
  8. private static _ins: AudioMgr = null!;
  9. public static get ins() {
  10. if (!this._ins) {
  11. this._ins = new AudioMgr();
  12. this._ins.initAudio();
  13. }
  14. return this._ins;
  15. }
  16. private initAudio() {
  17. this._audioComp = new AudioSourceComponent();
  18. this._audioComp.loop = true;
  19. }
  20. public async playSound(audio: string, scale = 0.8) {
  21. if(!Global.sound_switch){
  22. return;
  23. }
  24. let clip = await ResMgr.ins.getClip(audio);
  25. this._audioComp.playOneShot(clip, scale);
  26. }
  27. }