【Unity】AddComponentMenuでスクリプトを整理して表示2018.06.05AttributeUnity自分で作成したスクリプトは、デフォルトだとコンポーネントメニューからスクリプトとしてアタッチできます。これだけでも特に不自由することはないのですが、AddComponentMenuのAttributeを使うことで、コンポーネントメニューからスクリプトをアタッチする際、整理して表示することができます。デフォルトだと全部『Scripts』の下に入っており、スクリプト数が多くなるようなプロジェクトだと探すのが大変なんです。「検索欄でスクリプト名を検索すればいいんじゃね?」とは言ってはいけないのだポッター。SierraUnity2018.1.0f2まずはスクリプトの準備まずは簡単にスクリプトを作ります。Forceコンポーネントのように、一定の力を加えるスクリプトにしてみましょ。Gist.FixedUpdate()の中でAddForceを1回だけ呼ぶスクリプトにしました。この中で注目して欲しいのが、クラス名の上の行。[]で囲った部分に、AddComponentMenuと書いてあります。これをつけることで、コンポーネントメニュー内で任意のパスにスクリプトを追加することができます。デフォルトだと『Scripts』の下に全部のスクリプトが表示されますが、この属性によってコンポーネントメニュー内で整理することができるんです。[ObjectMover]のパスで表示されます。あ、ExplorersLabってのは私のアセット開発者名ね(唐突な宣伝)自分で追加したパスで表示されるUnityのスクリプトリファレンスでは「再起動してね」と書かれていますが、Unity2018でやってみたらUnityを再起動しなくても反映されています。した方が安全かもだけど。通常、『Scripts』内に表示されるスクリプトが任意のパスで表示されることとなり、『Scripts』内には出てこなくなりました。デフォルトではコンポーネントの並び順はアルファベットの順番になっているので、以下の例だとNとSの間にObjectMoverが来るはず。AddComponentMenuでパスを指定したので、こちらには表示されません。上でも触れた通り、デフォルトではコンポーネントメニューでの表示順はアルファベットの順番です。試しに、『ObjectMover』の他に、『AppleEater』『BananaEater』『CherryEater』を追加してみます。Gist.Start()でメッセージを出力するだけのクラスです。Gist.こちらも同じく。嘘つきクラスがいるようですね。本当のクラス名は『CherryEater』なのに、コンポーネントメニューでは『PeachEater』だと主張しているようです。これらのスクリプトを追加してコンポーネントメニューを確認するとこんな感じ。AddComponentMenuの引数で指定した名前がアルファベット順に並んでいます。アルファベット順に表示ファイル名が『CherryEater』のスクリプトは、AddComponentMenuでは『PeachEater』として表示されています。選択してみると本来のクラス名である『CherryEater』がアタッチされます。次は順番を指定しましょ。順番を指定する場合は、パスの文字列の後ろにint型で順番を指定します。以下の例では『AppleEater』の表示順として[1]を指定しています。Gist.同様に、以下のように順番を指定しました。2『BananaEater』は順番を指定していません。いうのは、順番指定のあるものとないものを混ぜたらどうなるか確認したかったんです。この状態でコンポーネントメニューを開くと以下のようになりました。変わってない......!まさかの変化なし。Unityを再起動しても変わらなかったので、ゲームオブジェクトのコンポーネントメニューだと反映されないのね。どこの順番を指定したの?と思って画面上のメニューバーを見れば、[Component]があるじゃないですか。普段こっちからコンポーネントを追加することがないから忘れてました。指定したパスを追っていくと以下のようになってました。順番が反映されたっぽい順番指定をしていない『BananaEater』が一番上に来ていました。その後に指定した順序でスクリプトが並んでいます。順番が反映されるのはメニューバーの方なのね。Component]ボタンではアルファベット順に表示される順番指定できるのは、画面上のメニューバーから開くコンポーネントメニューのみかな。いつも使っている、ゲームオブジェクト側のコンポーネントメニューで順番指定したかったなーと思わんでもないので、Unityさんお願いします!ゲーム開発の攻略チャートを作りました!「ゲームを作ってみたいけど、何から手を付けていいか分からない!」そんなお悩みをお持ちの方向けに、todoがアプリをリリースした経験を中心に、ゲーム作りの手順や考慮すべき点をまとめたe-bookを作成しました。ゲーム作りはそれ自体がゲームのように楽しいプロセスなので、「攻略チャート」と名付けています。投稿一覧Unityを使ってアプリを作ったり、Assetを作ったりしてる個人開発者。Unity全般ネタとAsset開発の情報を扱っています。Asset開発は日本語の情報が少ないのよね。ことで些細なネタでも情報を蓄積するのが目的です。2018.07.16複数行テキストを扱うなら、[Multiline]もいいけど[TextArea]を使うと便利です。何よりスクロールバーを使えるのがありがたい。2018.07.06SpaceAttributeはInspectorウィンドウで余白を表示することができるAttributeです。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。todoUnityのアセットを作ったり、スマホ向けのアプリを作っています。このブログではUnity初心者に向けたチュートリアルやテクニックを放出しています。詳しいプロフィールはこちら。お仕事の相談や現在提供中のサービスについては、こちらの『サービス内容』のページをご覧ください。Explorers_todoオンライントレーニングのサイトをオープン!エクスプラボを運営しているtodoが、より集中的にゲーム作りについて学べるオンライントレーニングのサイトをオープンしました。エクスプラボのトレーニングルーム』です。勉強したことの進捗も表示できるようになっているので、どれだけ頑張ったのかが分かるようになっています。ゲーム開発の攻略チャート』というe-bookをプレゼントしています。メルマガではゲーム開発のテクニックを中心に役立つ情報をお届けします。詳しくはこちら!お仕事の依頼はこちら!ゲーム開発のサポートも可能!エクスプラボではゲーム開発のサポートのサービスも行なっています。いう場合にオススメのプランです。普通に開発依頼をいただいてもOKです。【Unity】ポストプロセシングを使って簡単にプロっぽいゲーム画面を作るゲームの作り方を学べるオンライン講座のサイトをオープンしました!【ゲーム開発】ゲーム開発者こそ体を動かしてアイディアを出すべきRANKING【Unity】Mathfの切り上げ、切り捨て、偶数丸め。使い分けが大事よねMathf【Unity】ゲームといえばランダム要素。(12)作ったアプリ空とにゃんこと風船と癒し系縦スクロール避けゲーの『空とにゃんこと風船と』(TODOWORKS名義でリリース)気軽に遊べるスマートフォン向けアプリです。ボクセルアートで彩られるどこかレトロ、でも新しい世界で癒されてみませんか?ぼく、猫ですって!タップ系RPG『ぼく、猫ですって!』(TODOWORKS名義でリリース)気軽に遊べるスマホRPG。