こんにちわ、Unityエンジニアのオオバです。

Unity開発で気をつけておきたい7つの事 -2015年版-

この記事を書いたのが2015年7月。
1年経って改めて Unity開発で気をつけておきたいことをまとめてみます。

この記事の内容

1位. Find系関数は極力使わない

2015年版から引き続き、Find系関数は出来る限り使用しないようにしています。

まさに去年の記事と同じで、開発中・運用中のヒエラルキー変更は日常的に発生する事案です。その度にコードを変更するのは時間のムダです。そんなことより、プロダクトのクオリティを上げることに時間を使うべきです。

※2016年版改定箇所

2016年だから訂正するということではありませんが、『public変数定義』をオブジェクトのアタッチ機能として使用しないという結論に至りました。

理由としては、インスタンス外から簡単に上書きできてしまうからです。

// ☓ オオバはこの方法を禁止しています  
public Transform hoge;  

// ○ こちらを採用  
[Serializefield]  
private Transform foo;  

2位.SendMessageは使わない

堂々の第2位はSendMessageです。

SendMessageを使っているソースコードは読むのが嫌になります。

補足するとSendMessageはprivate関数もインスタンスの外側から実行可能です。下手にSendMessageを導入してしまうとルールが崩壊しプロジェクトがカオス化する可能性があります。

ただ、この機能を利用してEditor拡張でprivateな関数をテストとして呼ぶということも出来るので、工夫次第で便利ではあります。

3位.カメラの同時使用数は極力減らす

カメラ負荷はかなり大きいものです。Unity Profilerで見ても一目瞭然です。
3Dのゲームであれば最低限 3D表示用2DUI表示用 の2つは必要になると思いますが、

その他にも例えば、

などなど。油断しているどんどん増えていきます。

増えてもよいのですが、同時に使用する個数を制限するように設計しないと負荷がとんでもない事になり、調整に時間がかかることになると思います。

出来る限り減らすということを心がけたいです。

4位. ログ出力にルールを設ける

ログはデバッグする上で欠かせない存在です。

Debug.Log ("黄色のログ");  
Debug.Log ("カラーコードのログ");  

Unity開発で気をつけておきたい7つの事 -2016年版-_0

その一環でコンソールは色分けすると分かりやすくなると思います。

良いデバッグログはプロジェクトの資産である - Speaker Deck

また、コンソール内のログ検索が可能になるConsole Enhancedを使うと更に強力です。

参考記事

UnityアセットConsole Enhancedが超絶便利な件

5位.Resourcesフォルダには最低限のものだけを入れる

Resources格納ファイル数に対するスプラッシュ時の遅延時間は計測しないとなんとも言えませんが、確実にコストにはなりますので、最低限に留めたいです。

6位.デザイナーと出来ること出来ないことを認識合わせしておく

などなど

制作するゲームの仕様次第ではありますが、デザイナーとは密接に認識合わせしておくことは非常に大事です。

UnityのuGUIカーニングについて皆が知っておかなくてはならない事実

UnityのuGUIを使う場合のデザインリスク

7位.Prefab名とコンポーネント名は出来る限り同じにする

作業効率的にも、後からプロジェクトにジョインした人のためにも、プロジェクト初期から習慣づけておきたいところです。

まとめ

気をつけたい視点が、集団開発でプロジェクトを長期的に見た時にカオス化させないための順位になっていることに書き終わって気づきました。
オオバ自身が今同じような状況だったからかもしれません。
個人でサクッと作って運用しないというプロジェクトには当てはまらないものも多いと思います。そこは取捨選択して頂きつつ。。。

何事も最初が肝心で、習慣的な間違いを修正するなら早いに越したことはありません。 あくまで参考に。

また、前回の記事から外れてしまった項目は、オオバの中でプライオリティが下がったということでランク外になりました。

こちらは現行バージョンでは修正されています。

期間限定 最大95%オフセール
効率UPメガバンドル開催中!最大95%オフ!!!
期間 : 11月1日午後15時59分まで
オススメ記事
検証環境