Unity Editor拡張のボタンへのアイコン表示について
「Happy Elements Advent Calendar 2023」 12月4日の記事です。
はじめに
Happy Elements株式会社 カカリアスタジオで新規タイトルを開発中のチームで働いているU.S.です。
最近はよくUnityのEditor拡張を書いています。
その中でボタンのアイコン表示について対応したことを書きたいと思います。
所属グループでの主な業務内容
現在は新規タイトルを開発中です。
ゲームエンジニアとして、Unityを使ってクライアントサイドの開発を行なっています。
EditorWindowでのボタン表示
アプリ開発に使うツールをEditor拡張で書くときにボタンを出すことがあります。
データの更新ボタンを作ったときに最初は以下のように作りました。
エンジニア以外も使うから日本語の方が良かったりするかもしれないと思って修正しました。
チーム内の開発用に使うものなので分かればいいのですが、ちょっとかっこ悪いような気がしていました。
修正方針
Unityには多くのアイコンが用意されており、その中からReload画像を使用できないかと思い、調査を始めました。
UnityはUnityエディタのコードを公開してくれています。
その中で適当にGameView.csを見てみました。
それっぽい指定をしているところを見つけます。
ボタンとして使っているところはこういう使い方でした。
ヘルプを確認するとEditorGUIUtility.TrIconContentメソッドの1つ目の引数にiconNameを指定すればGUIContentが取得できそうです。
EditorGUIUtility.TrIconContentで検索して、今回の更新処理に合いそうなものを探すとRefreshというものが見つかりました。
使ってみるとそれっぽくなりました。
- ソースコード
if (GUILayout.Button(EditorGUIUtility.TrIconContent("Refresh", "Reload"), GUILayout.Width(30))) {
// ボタンが押された時の処理
}
まとめ
ささいなことでしたが、開発ツールを使うたびに「ここかっこ悪いな」と思って使っているとテンション下がりますし、アイコン画像を使ったほうが分かりやすくなったのではないかと思います。
Discussion