SEを再生する
AudioManager.tsにSEを設定する
- assets/soundsに開く用、閉じる用のSEを格納する
- AudioManager.tsに追記する
AudioManager.ts
@property(AudioSource) bgmSource: AudioSource = null; // 追記 -ここから- @property(AudioSource) seSource: AudioSource = null; @property(AudioClip) openSE: AudioClip = null; @property(AudioClip) closeSE: AudioClip = null; private bgmVolume: number = 1.0; private seVolume: number = 1.0; // 追記 -ここまで-AudioManager.tsprivate playSE(clip: AudioClip) { if (this.seSource && clip) { this.seSource.playOneShot(clip, this.seVolume); } } public playOpenSE() { this.playSE(this.openSE); } public playOloseSE() { this.playSE(this.closeSE); } - ヒエラルキーパネルでAudioManagerを選択
- インスペクターのOpen SEとClose SEにそれぞれassets/soundsからドラッグ&ドロップする
- Add CompornentからAudioSourceを追加する
- Play On Awakeのチェックを外す
- 追加したAudioSourceをSe Sourceにドラッグ&ドロップする
- SceneRootをアセットパネルのassets/prefabsにドラッグ&ドロップし上書きする
AuthPopupにSEを設定する
- PopupAnimation.tsを修正する
PopupAnimation.ts
import { _decorator, Component, Node, Vec3, tween, UIOpacity, find } from 'cc'; // findを追加 import { AudioManager } from './AudioManager'; // 追記 // ... public showMe() { // ... const audio = find("AudioManager")?.getComponent(AudioManager); audio?.playOpenSE(); } public hideMe() { // ... const audio = find("AudioManager")?.getComponent(AudioManager); audio?.playCloseSE(); }
まとめ
これでポップアップを開いた時にSEが再生されればOK。
※現状の作りだとAudioManagerがシーン遷移で破棄されるので、addPersistRootNodeを用いる調整が必要