【Unity】メニューバーの「Assets」について解説(後編)【初心者向け】

【Unity】メニューバーの「Assets」について解説(後編)【初心者向け】

Unityを使い始めて、「あれ? メニューめっちゃいっぱいあって混乱するんだけど……」と戸惑うあなたにこの記事を送ります。私も最初の頃はおっかなびっくりメニューをクリックしていました。

Unityで開発を行うときにはよくお世話になるメニューバー。この中身についてそれぞれ機能を確認するシリーズです。

このページでは『Assets』に含まれているメニューの機能を解説しています。『Assets』にはその名の通りプロジェクト内のアセット管理の機能が多く含まれています。

確認の対象となるバージョンはUnity2018.3で、このバージョンをベースにしてメニューバーの中身をチェックしていきます。

『Assets』もメニュー項目がいっぱいなので、いくつかのページに分けて掲載します。

前編はこちら。

 

環境

macOS 10.14 Mojave

Unity2018.3.14f1

Unity Hub 1.6.2

メニューバーのAssets

このページではメニューバーの『Assets』について中身をチェック。

『Assets』は画面左から4番目、『Edit』と『GameObject』に挟まれています。

左から4番目にあるのだポッター
左から4番目にあるのだポッター

 

アセットファイルへの操作、シーンの追加読み込み、アセットのインポート/エクスポート、アセットのリフレッシュ、アセットの再インポート、Prefabからのマテリアル抽出、自動APIアップデーターの起動、UIElementsのスキーマの更新、C#プロジェクトを開く機能、の9領域19メニュー。わぁい盛りだくさん。

このうちアセットファイルへの操作に含まれる「Create」は項目数がとても多いので別記事で紹介します。だってほらこれだもの。

本体よりながーい
本体よりながーい

 

このページではアセットのリフレッシュ、アセットの再インポート、Prefabからのマテリアル抽出、自動APIアップデーターの起動、UIElementsのスキーマの更新、C#プロジェクトを開く機能について解説を行います。

その他のメニューについて解説している前編はこちら。

アセットのリフレッシュ

4番目の領域はアセットのリフレッシュの機能です。

アセットのリフレッシュ
アセットのリフレッシュ

Refresh

Refreshはプロジェクト内のアセット情報を最新の状態に更新します。

ほとんどの場合、この機能を使う必要はないと思います。

「ファイルをインポートしたけど、Projectウィンドウで表示されない……?」とか、「アセットの設定を変えたけど反映されてない……?」なんてケースで使う……かも。

Reimport

Reimportは選択したアセットを再度インポートする機能です。

インポート設定はそのままで、ファイル自体を再度インポートしたい時に。元ファイルを変更したけど、Unity側で変更が反映されていない場合はこの「Reimport」を使うといいかも。

といっても最近のUnityではそういったケースに行きあたらないような気がします。

アセットの再インポート

5番目の領域はアセットの再インポートの機能です。上で解説したReimportのすごい版です。

アセットの再インポート
アセットの再インポート

Reimport All

Reimport Allはその名の通り、全てのアセットを再インポートします。

このメニューを選択すると以下のダイアログで警告されます。

警告ダイアログ
警告ダイアログ

 

意訳すると、「えっ本当に再インポートするの? 全てのアセットを再インポートする必要がある状況って多分Unityでバグが起きてるからバグレポートも出してね。あと君のプロジェクトの規模にもよるけど、数時間かかることもあるからね」ぐらいの感じでしょうか。

勇気を持って「Reimport」をクリックすると、一度Unityのウィンドウが閉じられ、インポートが走ります。このインポートは私たちが作ったアセットだけではなくて、Unityデフォルトのアセットなども対象になっています。

プロジェクトを新規に作成した時のインポート作業が再び走る感じです。ここに自分で追加したアセットのインポートも加わるため、確かに時間がかかりますね。

もうお分かりだと思いますが、通常これを行う必要はまったくありません。なんらかの理由でプロジェクトが壊れた場合に試してみるくらいでしょうか。

Prefabからのマテリアル抽出

6番目の領域はPrefabからのマテリアル抽出の機能です。

Prefabからのマテリアル抽出
Prefabからのマテリアル抽出

Extract From Prefab

Extract From PrefabはPrefab(といってもFBXなどのモデルデータ)に含まれるマテリアルを抽出する機能です。間違いなく名前だけでは推測できないですね。

いつも一方的にお世話になっているコガネブログさんとマニュアルの両方を読んで理解が進みました。

試しにこのブログでよく登場するねこ勇者のFBXデータをインポートしてみます。このデータの中には以下のデータが含まれており、マテリアルも入っています。

抽出前
抽出前

 

このFBXデータに含まれるマテリアルを選択した状態で「Extract From Prefab」をクリックすると、以下のようにマテリアルの抽出先フォルダを選択するダイアログが表示されます。

抽出先の選択
抽出先の選択

 

保存先を決めて「Choose」をクリックすれば、選択したマテリアルが抽出されます。下の画像だと、モデルデータに含まれていたマテリアルが外に出てますね。

マテリアルが抽出された
マテリアルが抽出された

 

モデルデータの方で使っているマテリアルを別のオブジェクトでも使い回したい時に抽出するといい感じです。

自動APIアップデーターの起動

6番目の領域は自動APIアップデーターの起動の機能です。

自動APIアップデーターの起動
自動APIアップデーターの起動

 

Run API Updater…

Run API Updaterをクリックすると、自動API更新の機能が起動します。

Unity本体は日々開発によって機能が強化されていますが、ユーザの利便性を考慮した結果、古いAPIが使えなくなることがあります。

試しに、マニュアルを参考に古いAPIを使ったスクリプトを書いてみます。

 

上のスクリプトに記載したlight.colorという書き方はUnity4.x時代の書き方で、Unity5.x以降ではGetComponentして値をセットする必要があります。

このスクリプトを保存してコンパイルを走らせると、以下のようなダイアログが表示されます。

API更新の確認
API更新の確認

 

意訳すると、「古いAPIが使われてるから自動的に新しいものに更新しとくよ。あ、でもバックアップはしといてね」みたいな感じでしょうか。

コンパイル後、自動的にこのダイアログが表示されますが、バックアップを取る場合は「No Thanks」をクリックしてダイアログを閉じるかと思います。そしてバックアップ後に手動でアップデーターを起動する際に、このメニューを使う訳です。

「I Made a Backup, Go Ahead!」をクリックすると、Unityが自動的にスクリプトを更新し、以下のようになります。

今からUnityを使うならUnity2018.xやUnity2019.xを選ぶと思うので、古いAPIでスクリプトを書くことは少ないと思います。なのであなたが記載したスクリプトでこの機能を使うことは滅多にないかなー。

この機能を使うケースで思い浮かぶのは、AssetStoreからアセットをインポートする場合に、アセットが古いAPIを使っているケース。古いバージョンをサポートするために古いAPIが使われていることがよくあるため、そのようなアセットをインポートするときには上のダイアログをよく見かけます。

UIElementsのスキーマの更新

8番目の領域はUIElementsのスキーマの更新機能です。「UIElementsってなんぞ?」となる人も多そうですが、これはUnity2018.3では実験的な機能に含まれています。Unity2019.1からのデビューなので、この項目はスルーしてもOKです。

UIElementsのスキーマの更新
UIElementsのスキーマの更新

Update UIElements Schema

Update UIElements SchemaはUIElementsのXMLスキーマを出力してくれる機能です。

……わけがわからないよ/人 ‿‿ 人\

初心者向けの機能ではないし、なんなら経験者にとっても新しい未来の機能なので、「普段は使わない機能」とだけ思っていれば大丈夫です。

UIElementsについては先行して研究してくれている神がいるのでこちらが超参考になります。

UIElementsとは

UIElementsは新しく導入されたUIの表示機能のこと。今までと違うのは、Webでドキュメントを表示するときのHTMLやらCSSやらに似た形式で記述できるようになる点です。ツリー形式で表現できるので、Web系に慣れている人だと記述しやすいかもしれません。

今までのUI表示方式であるIMGUIは、C#スクリプトをコンパイルして使う必要があったため、確認に時間がかかっていました。しかし、このUIElementsはコンパイルの必要がないことから、よりスピーディにUI表示の確認ができるんです。

2019.xではEditor拡張が対象ですが、2020.xになればゲーム内のUI表示もこのUIElementsで実装できるようになるそうです。

スキーマの出力先

出力されたXMLスキーマはUnityの画面では表示されず、ファイルシステム上のAssetsフォルダと同じ階層に出力されます。

xsdファイルが出力される
xsdファイルが出力される

 

試しにVS Codeでこのファイルを開いてみると……。

うわぁ……
うわぁ……

 

テキストエディタで編集するのはしんどいので、XMLエディタなどを使って編集するのがいいと思います。

 

繰り返しますが、Unity2018.3を使っている間は実験的機能なので手を出さなくて大丈夫です。Unity2019.1に移行する際は破壊的な変更もあると宣言されているので、どうしても使ってみたい方はUnity2019.1で触ってみてくださいな。

C#プロジェクトを開く機能

最後の領域はC#プロジェクトを開く機能です。結構使用頻度は高いかも。

C#プロジェクトを開く機能
C#プロジェクトを開く機能

Open C# Project

Open C# Projectは、Unityに紐づけられたスクリプトエディタを開く機能です。

私の場合はVisual Studio Code(VS Code)を使っているのでこれが開きます。Visual Studio for Macなどを使っていればそちらが関連付けられていると思います。WindowsではVisual Studio 2017 Communityですかね?

関連付けを確認する場合は、メニューバーの[Unity] -> [Preferences…]で設定画面を開き、[External Tools]タブのExternal Script Editorをチェックします。

スクリプトエディタを選択できる
スクリプトエディタを選択できる

 

まとめ

前編後編の2回に渡ってメニューバーの『Assets』について解説してきました。

Createの中身については別途記事を書いて解説する予定なので、それ以外の『Assets』の項目についてはこの前後編を見ながら触ってもらえればいいかなーと思います。

数多くのメニューがあるので覚えるのは大変! 使わなくていいメニューがいくつか含まれているのが救いかもしれません。

アセット作ってます!

CTA-IMAGE

Unityでの開発に役立つアセットを作っています。

3DダンジョンRPGを開発するスピードを200%加速するAssetや、ファンタジーRPGのダンジョンを彩るパーツを取り揃えています。

特に3DダンジョンRPGのゲームを1から作るのは結構時間がかかります。ダンジョン部分の作成はこうしたアセットを使って、開発をブーストさせてみませんか?