テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】シーン内のGameObjectやAsset、メニューアイテムを検索できる「Unity Quick Search」

f:id:tsubaki_t1:20190301004750j:plain

プロジェクト内のオブジェクトやアセット、メニュー操作等を検索出来る「Unity Quick Search」がPackage Managerに追加されました。

Unityプロジェクト内の色々な物が検索できる

Unity Quick Searchは、OSXの「Spotlight」やWindowsの左下にあるなにか(検索ボックスというらしい)に似た機能です。この機能では、ショートカットキーからテキストボックスを起動し、色々なものが検索出来ます。

例えば

  • アセット(名前ベース)
  • シーン内のオブジェクト
  • メニューアイテム
  • ソースコード(名前のみ、Package含む)
  • 設定
  • アセットストア

等々、割と色々と探せます。

なおUnity 2019.1で確認しており、それ以前のバージョンで使えるかは見ていないです。

使い方

使い方は簡単、日本語キーボードだと「Alt + ^」(英語だとAlt + ' ?)を押して、メニューを開きます。

あとは検索したいキーワードを入力して、検索するだけです。SceneやAssetのオブジェクトは、ドラッグ&ドロップで配置等も出来ます(トップのGifアニメのように)

f:id:tsubaki_t1:20190301001615g:plain

f:id:tsubaki_t1:20190301003155g:plain

詳しい使い方は、マニュアルがGifアニメ大量で非常に分かりやすいので、そちらを

docs.unity3d.com

拡張してみた

この機能は拡張できるそうです。
せっかくなので、拡張してみます。

やってみたのは、指定のタグを使用しているオブジェクト一覧を取得というものです。タグはオブジェクトに依存した挙動を作る際には使うことがあるのですが、何故か未だにタグを検索する機能がありません。なので今回それを作ってみました。

検索で「tag:○○」と入力すれば、○○と一致するタグを見つけてきます。

コードのポイントは、SearchActionsProvider属性を持つメソッドと、SearchItemProvider属性を持つメソッドを定義しておけばOKです。

検索対象はfetchItemsに突っ込む内容で判断しています。

それ以外は基本コピペです。AssetとSceneの二通りの検索例があるので、その辺りでコピペすれば何とかなります(多分)

gist.github.com

補足

メニューの検索は、英語が前提です。日本語のメニューは検索にヒットしません。

f:id:tsubaki_t1:20190301004015j:plain

試した所、複数の要素で絞り込みは出来ませんでした。やり方が悪い?

感想

OSXのSpotlightをよく使う勢としては、割とありがたいです。

(ところでProject Viewの検索はもうちょっと賢くなっても良いと思う。具体的には新しく追加されたタイプに対応するとか)