【Unityエディタ拡張】効果音のリストをエディタ拡張でわかりやすくしてみた
夏休みなのでやっと色々記事が書けそうです。
効果音のリストはなんか見づらいことが多い
よくオブジェクトにひっつける効果音のリストがAudioClipの配列になってたりすると、どこにどの音を入れとくんだっけ…みたいな感じになりませんか?
というわけで、エディタ拡張で作ってみることにしました。
今回は
Pop
Attack
Damage
Dead
の四種類の効果音を設定できるようになっていますが、AudioList.cs内のAudioName内を書き換えれば自由に変更できます。
こんな感じで、設定したい効果音の種類を選んで編集できます。
暫定的にこんな処理も入れてあります。
//__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/ // // ▼ File AudioList.cs // // ▼ Brief オブジェクトで使用するAudioClipリストを自動的にAudioManagerに送る // // //__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/ using UnityEngine; using System.Collections; public class AudioList : MonoBehaviour { /// <summary> /// AudioClipのenum /// </summary> public enum AudioName { Pop, Attack, Damage, Dead, End_of_Enum } /// <summary> /// エディタ拡張用 /// </summary> public AudioName audioName; public AudioClip[] _SoundEffectList = new AudioClip[(int)AudioName.End_of_Enum]; }
で、これのエディタを下記のように拡張してみます。
//__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/ // // ▼ File AudioListEditor.cs // // ▼ Brief AudioList用エディタ拡張 // // //__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/ using UnityEngine; using System.Collections; using UnityEditor; [CustomEditor(typeof(AudioList))] public class AudioListEditior : Editor { public override void OnInspectorGUI() { AudioList obj = target as AudioList; //入力された効果音の種類を設定する obj.audioName = (AudioList.AudioName)EditorGUILayout.EnumPopup("設定する効果音の種類", obj.audioName); //EOEの場合 if (obj.audioName == AudioList.AudioName.End_of_Enum) { EditorGUILayout.HelpBox("非設定項目です。", MessageType.Info, true); } else { obj._SoundEffectList[(int)obj.audioName] = EditorGUILayout.ObjectField(obj.audioName.ToString(), obj._SoundEffectList[(int)obj.audioName], typeof(AudioClip), true) as AudioClip; } } }