37 lines
1023 B
TypeScript
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);
|
||
|
}
|
||
|
}
|