はじめに
初めまして。コンテンツデザイン部の松村と申します。
現在は新規プロジェクトの開発に携わっています。
〜この記事を書こうと思った理由〜
現在のプロジェクトに移動してから、コードを書くことよりもオブジェクトを操作してUnity上で画面を作っていく作業が多くなり
「知っているのと知らないのとでは作業効率に影響しそうなUnityの設定」を先輩エンジニアから色々と伝授していただいたのがきっかけなのですが・・
この記事を読んで下さっている方の中で、Unity作業中、気付けば何度も何度も同じ作業をしているということはありませんか?
・・・恥ずかしいことに私はたくさんありました。
その作業自体は1分で終わるような簡単な作業でも、「塵も積もれば山となる」というように
毎日していれば月単位で数十分、年単位では数時間、またはプロジェクト単位で考えると数日分
時間を取られてしまっている、なんていう可能性もなくはないと思います。
個人的には時間だけでなく、「なんか仕組み化できそうなことを、何回も一から繰り返しながら作業する」という事実にモチベーションまで削られていました。
実際に使ってみて作業効率が体感倍くらいに上がったのはよいのですが、
効率が上がれば上がるほど、「もっと早く知ってたらな、気付けてたらな」という気持ちが大きくなっている気もするので
この先、自分のように「もっと早く知ってたら」と思ってしまう人を出来るだけ増やさない為にもここにまとめていくことにしました。
中にはもう知ってた、使ってる、そんな方もいらっしゃると思いますが
興味のある方いらっしゃいましたら、今後の業務にきっと役立てることができると思うので是非軽く目を通してみてください。
どういう時に使えるかという説明 & 簡単な図解を添えて「参考にした・または参考にできそうな記事」をシェアしていきたいと思います。
〜こんな方を対象に書きました〜
◯ どちらかというとVisualStudioCodeなどのコードエディタよりもUnityEditorとにらめっこしている時間が多い初心者〜中級者の方
× どちらかというとUnityEditorよりもVisualStudioCodeなどのコードエディタと向き合っている時間が多い方
なんとなく分けてみましたが、Unity使う人だったら対象です。
1.プリセット作成
使用シーン:コンポーネント追加時、オブジェクト作成時
参考記事 :【Unity】uGUI のオブジェクト作成時に Raycast Target をデフォルトでオフにする方法
対象バージョン :2018.4, 2019.4, 2020.1, 2020.2
公式ドキュメント:https://docs.unity3d.com/ja/2018.4/Manual/Presets.html
Unityで作業する際に使われないことはないであろう「Add Component」(もしくはオブジェクト作成)。
例えばTextコンポーネントを新しく追加した時に、Unityがデフォルトで色々と値を入れてくれたりチェックしてくれてたりしますよね。
この時
「フォントサイズがよく使うサイズにデフォルトで変わってたらいいなー」
「フォントスタイルが勝手にBoldになってたらいいなー」
と思ったことはありませんか?
その思い、プリセットを作成することで実現できます。
プロジェクトでの作業は特に、デザイン規則に則って画面デザインが出来上がっていくと思うので
毎度毎度違うフォントサイズになることの方がめずらしく、よく使うフォントサイズがあるはずです。
そのよく使うフォントサイズが、Textコンポーネントを使用する時、既に設定されてたらいちいちフォントサイズを変更する手間が省けます。
もちろんフォントサイズだけでなく、フォント、フォントスタイルなどなど、今までいちいち変更しないといけなかった分だけ省けるわけです。
一回の作業量はわずかな時間でも、積み重ねると結構な時間の削減になりそうではないですか?
特に、今のプロジェクトでやってよかったなと思ったのはImageコンポーネントのRaycastTargetのチェックをデフォルトで外したことでした。
Imageコンポーネントを追加した時、デフォルトではRaycastTargetにチェックが入っていますが
このチェックは必要なImageだけにあればいいコンポーネントのはず。
少なくとも今のプロジェクトではRaycastTargetが必要なImageは限られていて、不要になる(=デフォルトでついたままにしていると無駄な負荷がかかってしまう状態になる)ことがほとんどでした。
メンバー各々が「不要なImageにRaycastTargetはつけないようにしよう」と意識することももちろん大事ですが、
最初から外しておく→必要な時はつける、というにシステムにしておけば「忘れてた」ということが防ぎやすくなると思います。
2.カラーパレット(スワッチライブラリ)作成
使用シーン:Imageカラー、Textカラーなどのカラーを変更したい時
参考記事 :Unityでカラーパレットを使う
対象バージョン :2018.4, 2019.4
公式ドキュメント:https://docs.unity3d.com/ja/2018.4/Manual/PresetLibraries.html
1で触れたことに近いのですが、プロジェクトで使うカラーバリエーションもデザイン規則に則って限定されていませんか?
その為何回も同じカラーを使うことってよくあると思います。
(少なくともその時のノリでイメージカラーがコロコロ変わるということは稀なはず・・。)
フォントやイメージのカラーを変える際に、デザイナーさんから指定していただいたカラーコードが書いてあるメモを探して、そのコードをコピペして・・・という時間、ちりつもです!
カラーパレットを作成して、必要なカラーを選択するだけの状態にしてしまいましょう。
ついでについてくるいいこと:カラーコードを微妙に打ち間違える、という事態も回避できる。
3.リファレンス検索設定
使用シーン:アセット削除する時、どのアセットがどこで使われているかを知りたい時
参考記事 :Unityでアセットの参照を高速に調べるツール【ReferenceViewer】
対象バージョン:ツールによって異なる
「このPrefab(またはTexture)使ってなさそうだから消しちゃおう」
そうやって気軽に消したものの
実は知らないところで使われていてエラーが出る、ゲームが動かなくなるなんていう経験ありませんか?
そんな時に使えるのがリファレンス検索機能なのですが、現プロジェクトで使われている機能は独自に開発されているものだった為、図解等の詳細は大人の事情でこちらで公開するのを控えさせていただきます。
検索してみると色々あるみたいなのでプロジェクトに合ったものを是非探してみてください。
ただ、どの拡張ツールを使うとしても目指しているものは同じ。
「安全に作業を進める」ということです。
プロジェクトに開発初期から携わっているとか、途中から参加したとか関わらず
何のアセットがどこで使われているのか、全てを把握出来ている人ってほとんどいないと思います(多分)。記憶力があるないとかの問題ではないと思うからです。
プロジェクトが進んでいく中で
「デザインが変わってこの素材は使わなくなった」「prefabを作り直した」
→削除
そういうことってよくあると思うのですが
何かを削除する際に最も大事なことは、消した影響がどこに及ぶのかを把握することだと思います(私調べ)。ですので、一発でリファレンスがわかるようにPluginを入れて拡張してしまいましょう。
少なくとも、「消しちゃったけど本当に大丈夫だっただろうか・・」「ゲーム止まらないだろうか・・・」
そんな不安が無くなります(大事)。
まとめ
先輩から伝授した知識を我が物顔でまとめてみましたが、
きっとこの仕組みを知っているだけで
何回も同じ作業をする手間が省け、無駄な時間を削減できるはずです。
浮いた時間でブラッシュアップするもよし、みんなでご飯に行くもよし、早く帰るのもよしだと思います。
もし気になった方いらっしゃいましたら是非活用してみてください。
ご一読いただきありがとうございました。