ゼニガネブログ

ゲーム開発のための小ネタなど。現在はUnityメインでやってます

【Unity】お気に入り ブックマーク系アセットの AnythingBookmark を GitHub で公開しました

はじめに

既存のお気に入り管理系やブックマーク系のエディタ拡張アセットで、Assetsフォルダ外のファイルやフォルダを登録出来そうな物がすぐ見つからなかったのでさくっと作成しました。

github.comすいません、さくっとは嘘です。基本機能まではわりと一瞬で作れましたが、公開に耐えうる見た目に持っていくのはある程度時間が掛かりました・・・。

APIを叩いたり、コマンドライン引数を設定できるようにしたりと機能を盛っていく事も一瞬考えましたが、バッチファイルさえ叩けてしまえば後はどうとでもなるのでやめました。

アセットストアでの販売も検討していたので需要さえあえば売り物になるレベルだと思います。
もし使ってみて気に入ったという事であればGitHubのアカウントのフォローなどよろしくお願いします!

ざっくり機能紹介

頭に「Unityエディタからorで」を付けたりしながらお読みください。
・Projectウィンドウのアセットやフォルダにすぐアクセスできるようにしたい
・↑のファイルやフォルダを開きたい
・登録したやつの中でもよく使う物をお気に入り登録をして見やすくしたい
SceneView の Camera の値をセーブ&ロードしたい
バッチファイルを叩きたい
Webページ(ドキュメント等)を開きたい
・Assets以下ではないBuildフォルダとかを開きたい
・↑のやつらをドラッグアンドドロップで登録したい
BuildSettingsやらFrame DebuggerやらProfilerとかを一発で開きたい
・↑だけではなくAddressableのグループとか他所から落としてきたSDKのメニューも一発で開きたい
・ブックマークしたデータを別の環境へエクスポートしたい
・ゲームオブジェクトのパスを登録したい ※後述

※試験的にScene(Hierarchy)内のゲームオブジェクトのパスを登録できるようにしました。
Scene ルートの Canvas の子の Text であれば Canvas/Text ってな感じで登録します。もちろんD&Dで登録もいけます。
この機能は↓のような場面で使う事を想定しています。
開発中にかなり深い所にあるゲームオブジェクトを監視したいけど(動的生成・別シーンだから)Inspectorにロックをかけても再生終了したら消えちゃう・・・
Altクリック使ったとしても再実行時にまた開き直すのマジだるい・・・。

 

注意点など

・保存先は EditorUserSettings で、Assets外はフルパス管理です。 .abd ファイルを共有する際はご注意下さい。
・Unity エディタの推奨バージョンは Unity2020.1 以降ですが、それ以前のバージョンでも動きます。
・具体的には C# 6.0 以上が必須です。Unity2019.2 (C# 7.3) 以降であればすぐ動きます。
  それ以前の Unity エディタでは、デフォルトでは C# のバージョンが古いので設定変更が必要になります。
  例えば Unity2017.1 (C# 4.0) であれば Scripting Runtime VersionExperimental (C# 6.0) へ変更すれば動きます。
  AnythingBookmark は Unity2020 以降の新しいUIでレイアウト調整をしたので古いバージョンではレイアウトに若干の崩れが発生します。
  また、一部 MenuItem が開けない等の問題があるので、特別な理由がなければ古いバージョンはあまりおすすめしません。
・ReorderableListは使用していません。

今後の予定など

ライトに使う分には AnythingBookmark で非常に満足していますが、下記のようにいくつか問題点もあるので AnythingBookmark2 を開発中です。

問題点

GitHubの使い方がわからない超初心者でも扱えるように、頑張って1ファイルで作ったけどメンテの気力を奪われてしまう
・AnythingBookmark からドラッグアンドドロップができない
・ソートやフィルタ機能自体は入っているけどもっと自分の好きなように表示したい
・保存先を EditorUserSettings 固定ではなく EditorPrefs や その他フォルダから選ばせて欲しい
・チーム開発時にブックマークを共有ではなく同期したい、そして同期しないブックマークも欲しい

AnythingBookmark2 の開発は何もやる事がなくて暇だなと思った時や気分転換をしたい時にチマチマ進めているので、いつ出すかもどこでリリースするかも未定です。
今までずっと (Editor)GUILayout を使って手抜きレイアウトしてきたので、Rect ベースな ReorderableList で少し複雑なレイアウトを組むのは辛いです…。

実は…

実は AnythingBookmark のソースコード完成 & この記事のラフを書き終えてからリリースまでにだいぶ時間が掛かってしまったので、AnythingBookmark2 の開発が結構進んじゃっています。

上で挙げた問題点は既にほとんど解決し、開発は7割ぐらいまでは進んでいて AnythingBookmark2 がもっともっと早い段階で世に出ていたら Unity のブックマーク系アセットのデファクトスタンダードになり得たかもしれないと妄想するぐらい個人的には使いやすいです。

実際には Unity のアプデで追加された便利機能に頼りまくっていて、当時の環境では面倒でリリースまでいくことはなかったと思うので本当にただの妄想です。

AnythingBookmark2 にご期待下さい!

他所様の無料アセットなど

Assetsフォルダ外だけこいつで管理して、Assets内は他の方が開発したもっと良い感じのアセットと併用する方が良いかもしれません!

 

以下、素敵なアセットたち。

▼Alto Favorites Window

https://tatsuya-koyama.com/devlog/unity/favorites-window/

備考:保存先は EditorPrefs
GUIまわりを参考にさせていただきました

▼bookmark-everything

https://github.com/dogukanerkut/bookmark-everything/

備考:保存先は Application.persistentDataPath

▼Kris' Favorite Assets

https://assetstore.unity.com/packages/tools/utilities/kris-favorite-assets-143105

備考:保存先は未DLにつき未確認、asmdef有り