UnityでiOSに入っているシステムサウンドやバイブレーションを呼び出すプラグインを作成しました
利用用途
- iOS標準のシステムサウンドをアプリ内で利用したい
- Unity標準で利用でいるバイブレーション呼び出しメソッド Handheld.Vibrate 以外の種類のバイブレーションを利用したい
本体
インストール
Githubリポジトリのリリースページにあるunitypackageを利用してください
使い方
利用したいシステムサウンドのidを引数にメソッドを呼び出す
int soundId = 1001; UniIosAudioService.PlaySystemSound(soundId);
システムサウンドの探し方
GithubリポジトリのExample.sceneにシステムサウンドをチェックする機能があるので、idを探すときに利用してください。
※UnityEditorでは動作しないため実機ないしシミュレータで確認を行ってください
実装
プラグインを書いて、UnityのC#から呼び出す
プラグイン(iOSAudioServicePlaySystemSound.mm)
#import <Foundation/Foundation.h> #import <AudioToolBox/AudioToolBox.h> extern "C" void audioServicePlaySystemSound (int soundId) { AudioServicesPlaySystemSound(soundId); }
呼び出しスクリプト(UniIosAudioService.cs)
using System.Runtime.InteropServices; public class UniIosAudioService { [DllImport("__Internal")] private static extern void audioServicePlaySystemSound(int soundId); public static void PlaySystemSound(int soundId) { #if !UNITY_EDITOR && UNITY_IOS audioServicePlaySystemSound(soundId); #endif } }
まとめ
システムサウンドが案外大量にあったので、欲しいサウンドやバイブレーションを探すのが面倒だった