Projectビュー内の表示切替をキーボードショートカットに割り当てたら便利 [Unity エディタ拡張]

記事タイトルのことをやってみたら快適だったので紹介します。

やったこと

まず「Projectビュー内で指定アセットを表示する機能」をメニューバーから呼び出せるようにするエディタ拡張を作成する。
次にメニューバーに追加した項目をショートカットに割り当てる。

以上です。

キーボードショートカットで表示を切り替えているところ

ポイントなのが「選択」じゃなくて「黄色くハイライト表示」されるだけといいうところ。
Inspectorビューが勝手に切り替わりません。

作成方法

「Projectビュー内で指定アセットを表示する機能」をメニューバーから呼び出せるようにするエディタ拡張のコードです。このクラスファイルを「Editor」という名前のフォルダに置きます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

/// <summary>
/// Project view の中でハイライト表示する
/// </summary>
public class ProjectPing : MonoBehaviour
{
    [MenuItem("Project/Scene", false, 100)] public static void PingScene() { PingAsset("Assets/Scenes"); }
    [MenuItem("Project/Script", false, 100)] public static void PingScript() { PingAsset("Assets/Script"); }
    [MenuItem("Project/Script_Stage", false, 100)] public static void PingScriptStage() { PingAsset("Assets/Script/Stage"); }
    [MenuItem("Project/Image", false, 100)] public static void PingImage() { PingAsset("Assets/Image"); }
    [MenuItem("Project/Object", false, 100)] public static void PingObject() { PingAsset("Assets/Object"); }
    [MenuItem("Project/Sound", false, 100)] public static void PingSound() { PingAsset("Assets/Sound"); }
    [MenuItem("Project/Aseprite", false, 1000)] public static void PingAseprite() { PingAsset("Assets/Aseprite"); }
    [MenuItem("Project/Excel", false, 1000)] public static void PingExcel() { PingAsset("Assets/Excel"); }
    [MenuItem("Project/Material", false, 1000)] public static void PingMaterial() { PingAsset("Assets/Material"); }
    [MenuItem("Project/Plugins", false, 1000)] public static void PingPlugins() { PingAsset("Assets/Plugins"); }
    [MenuItem("Project/Resources", false, 1000)] public static void PingResources() { PingAsset("Assets/Resources"); }
    [MenuItem("Project/Shader", false, 1000)] public static void PingShader() { PingAsset("Assets/Shader"); }

    private static void PingAsset(string assetPath)
    {
        var asset = AssetDatabase.LoadAssetAtPath<Object>(assetPath);
        EditorGUIUtility.PingObject(asset);
    }
}

そうすると下の画像のようにメニューバーから「Projectビュー内で指定アセットを表示する機能」が呼び出せるようになります。

このメニューバーの項目を「メニューバー -> Edit -> Shortcuts」でキーボードショートカットに割り当てます。

あんまり多くても覚えきれないので、よく使う3つだけ登録しました。

この機能を作ったきっかけと感謝

UnityのProjectビューでアセットを素早く探したいとは前から思っていて、どんなやり方があるか検索して調べていたら下記のサイトでエディタ拡張が紹介されていました。

お気に入りアセットを登録するちょっとしたエディタ拡張 | Alto-tascal

余談ですが、この方が作られている「ドアを開ける短いゲーム」というスマホ向けゲームはすごく楽しかったのでオススメです!

さっそく紹介されているエディタ拡張のコードをコピーして使わせてもらったところ、ブックマークも簡単にできて、かなり便利だったのですが、この拡張ビューを表示するためにスペースが必要なところがちょっとだけ気になったので、省スペースなやり方として今回の機能を作りました。上記の記事がなかったら今回の機能も出来てなかったので感謝です!

スマホ用ゲームアプリ「止まるなコロッコ」をリリースしました

「コロッコトロッコ」のコロッコが脱出ゲームになって帰ってきました!

コロッコが進めるように道を作ってあげるパズルのような脱出ゲームです。

引き続き、登場キャラクターもみんなゆるい感じとなっております。

是非、スマホやタブレットでアプリをダウンロードしてお楽しみください!

止まるなコロッコ on App Store  サ止まるなコロッコ on Google Play



【レビュー記事】
当アプリを以下のサイトでご紹介いただきました。
ありがとうございます!
(カッコ内はこのページに追記した日です)

iPhoroid ※攻略記事 (2020/12/5)
App.Gamedia (2020/12/5)
暗黒社 (2020/12/6)
AppliviOS / Android(2020/12/8)
スマホゲームCH ※攻略記事 (2020/12/13)
4Gamer (2020/12/23)
アプリゲット (2021/10/2)
bontegames (2021/10/3)
GameWith (2021/10/15)
engadget (2021/11/28)


コロッコのLINEスタンプ

トゥイーンアニメーション作成を補助するツール [Unity]

画面遷移のアニメーションを作成する時など、トゥイーンさせるオブジェクトが大量にあると意外と大変なので、そういう場合にちょっとでもコード量を減らしてラクにできないかなと思い、ツールを作ってみました。
※別途DOTweenのインポートが必要です。

TweenAssistance - GitHub

下の画像のみたいにインスペクタを使ってラクしようというツールです。
個人的にはPositionのトゥイーンはけっこう使える気がします。

後、トゥイーン開始時はアクティブ状態がオンになり、トゥイーン終了時にインスペクタで設定したStartの値になっていればアクティブ状態がオフになるので、そこもラクできるポイントです。

ProgressionのSceneライクな画面遷移フレームワーク [Unity]

AS3のコンテンツを作っていた時にはProgressionをよく使っていたのですが、UnityでもProgressionのSceneのような仕組みで画面遷移ができると便利だなと思ったので作ってみました。

Succession - GitHub

詳しくは上記ページに書いていますが、Progressionのような大規模なものではなく、ProgressionのSceneの仕組み部分に特化しています。
ざっくりというとProgressionのSceneObjectのように「ロード処理」「開始処理」「終了処理」「アンロード処理」の関数を準備しておけば、後の移動の進行管理はライブラリ側が勝手に進めてくれるという部分です。

名前はProgressionをそのまま使うわけにもいかないので、響きが似ていて「連続するもの」という意味のSuccessionにしました。

使いどころとしては、ゲームコンテンツでは使いどころは少ないかもしれませんが、ツリー構造で情報が整理された情報コンテンツでは使えるのではないかと思います。

インスペクターでの参照登録をスクリプトで行う [Unity]

インスペクターから連番ファイル名のスプライト等を大量に参照登録する際、スクリプトでfor文を回して登録した方が早いなーと思ったので今回試みてみました。

上画像のようにインスペクターにスプライトを今回は3つ参照登録してみます。
※配列SpritesのSizeに3と入力して要素を3つ準備しておきます。

登録するのは”Assets/EditAssister/Image/”内にある ball1 ~ 3.png です。

[MenuItem] を使って、下画像のようにメインメニューから実行できるようにします。

下のコードを「EditAssister.cs」というファイル名で保存して、Assets内のどこかに「Editor」フォルダを作ってそこに入れるとメインメニューから実行できるようになります。

using UnityEngine;
using UnityEngine.UI;
using UnityEditor;

public class EditAssister
{
    [MenuItem("CustomTools/Assist1")]
    private static void Assist1()
    {
        for (int i = 0; i < 3; i++)
        {
            GameObject.Find("SceneManager").GetComponent<EditAssisterScene>().sprites[i] =
                AssetDatabase.LoadAssetAtPath<Sprite>("Assets/EditAssister/Image/ball" + (i+1).ToString() + ".png");
        }
    }
}

他には下のコードのように、HogeというMonoBehaviourを継承したクラスを複数のGameObjectにコンポーネント登録して、さらにそのクラスにIDをふるようなことも出来ます。

for (int i = 0; i < 3; i++)
{
    var hoge = GameObject.Find("Canvas/Image" + (i + 1).ToString()).AddComponent<Hoge>();
    hoge.Fuga = i + 1;
}

あと、GameObjectのTransformをいじったりもできるので、物量のあるプロジェクトでももう安心です!

1 2 3 4 5

ABOUT

GAMES

サッカーピープル
スライムパズルストーリー

倉庫番ライクパズルと
冒険のゲームです
※制作中

止まるなコロッコ2
止まるなコロッコ2

止まるなコロッコの
続編です
iOS版 / Android版

止まるなコロッコ
止まるなコロッコ

石ころのコロッコが転がるように
セッティングする脱出ゲームです
iOS版 / Android版

コロッコトロッコ
コロッコトロッコ

石ころのコロッコを転がしながら
サラリーマンを会社へ運ぶゲームです
iPhone版 / Android版

TAGS

SNS

FEEDS