pinball/assets/Scripts/SoundManager.ts

37 lines
1023 B
TypeScript

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);
}
}