プロジェクト内のオブジェクトやアセット、メニュー操作等を検索出来る「Unity Quick Search」がPackage Managerに追加されました。
Unityプロジェクト内の色々な物が検索できる
Unity Quick Searchは、OSXの「Spotlight」やWindowsの左下にあるなにか(検索ボックスというらしい)に似た機能です。この機能では、ショートカットキーからテキストボックスを起動し、色々なものが検索出来ます。
例えば
- アセット(名前ベース)
- シーン内のオブジェクト
- メニューアイテム
- ソースコード(名前のみ、Package含む)
- 設定
- アセットストア
等々、割と色々と探せます。
なおUnity 2019.1
で確認しており、それ以前のバージョンで使えるかは見ていないです。
使い方
使い方は簡単、日本語キーボードだと「Alt + ^
」(英語だとAlt + '
?)を押して、メニューを開きます。
あとは検索したいキーワードを入力して、検索するだけです。SceneやAssetのオブジェクトは、ドラッグ&ドロップで配置等も出来ます(トップのGifアニメのように)
詳しい使い方は、マニュアルがGifアニメ大量で非常に分かりやすいので、そちらを
拡張してみた
この機能は拡張できるそうです。
せっかくなので、拡張してみます。
やってみたのは、指定のタグを使用しているオブジェクト一覧を取得というものです。タグはオブジェクトに依存した挙動を作る際には使うことがあるのですが、何故か未だにタグを検索する機能がありません。なので今回それを作ってみました。
検索で「tag:○○」と入力すれば、○○と一致するタグを見つけてきます。
「タグ」を設定されてるGameObjectを検索する拡張(基本コピペ)https://t.co/Q3TWcfFlru pic.twitter.com/8QZ0xgS9SR
— 椿 (@tsubaki_t1) 2019年2月28日
コードのポイントは、SearchActionsProvider
属性を持つメソッドと、SearchItemProvider
属性を持つメソッドを定義しておけばOKです。
検索対象はfetchItems
に突っ込む内容で判断しています。
それ以外は基本コピペです。AssetとSceneの二通りの検索例があるので、その辺りでコピペすれば何とかなります(多分)
補足
メニューの検索は、英語が前提です。日本語のメニューは検索にヒットしません。
試した所、複数の要素で絞り込みは出来ませんでした。やり方が悪い?
感想
OSXのSpotlightをよく使う勢としては、割とありがたいです。
(ところでProject Viewの検索はもうちょっと賢くなっても良いと思う。具体的には新しく追加されたタイプに対応するとか)