Unityの初心者でも中級者の話を聞けるようになりたい① - 導入編
はじめに
初めに、
このブログはUnityの初心者or挫折者が中級者になるための筋道を見つけるためのブログです。
中級者:
- 「ポスプロ焚いたんだけど、見た目よくならないんだよねぇ、、、」
- 「自分で作ったクラスをシリアライズフィールド化するのってどうすればいいんだっけ?」
- 「コルーチン便利すぎワロタ」
今回は↑の中級者(?)の話が分からないというか、どう調べたらついていけるの??って人向けのブログです。
というか、この会話はどちらかというと中級者になるための会話、みたいな感じです
自分もまだ、中級者に足を突っ込もうとしている最中なので、間違ってたらすみません…
でも、少なからず、「Unityの教科書は読んだけど、そのあとどうするの??」とか
「問題が起きてることはわかるんだけど、どう調べたらいいか、どう解決するのかわからない」とかって方はいると思います。
今回はその方々の悩みを解決するためのブログです。
あ、間違ってたら即教えてほしいですよろしくです。
今回の主なターゲット層
今回の主なターゲット層は、入門書は一通りやってみた(全部完璧に理解ってわけじゃなくても)けど、
- 今後どうしたらいいかわからない
- アセットをとりあえず入れてみたけどエラーが呼ばれてどうしようもない
- 次に勉強するべき先が見つからない
- やりたいことができないけど、そもそもなんでできないかよくわからない
という方向けです。
Unity全くの未経験の初学者の方は、とりあえず「Unityの教科書」を学ぶことをお勧めします。↓
その際、Standard Assets関係で何かが起こった際は、下記を参照ください
「Standard Assets」がダウンロードできない場合の対応方法 | SBクリエイティブ
Unity 2019.3でのStandard Assetsのエラーへの対処方法 | SBクリエイティブ
ということで、これからはUnityの入門書を読んだ体で、話を進めていきます。(筆者はUnityの教科書ベースです)
重要な考え方 - トラブルシューティングのエイムを合わせる方法
Unityの初学者として、自分がぶち当たった壁は、Unity内の要素が多すぎて、先ず何すればええんやってなったことです。
あとは、エラーが出ても、どこでエラーが出てるのか、何が問題なのか、を見つけるのが億劫すぎて結局進みが悪いというところです。
まずはここから改善していきましょう。Unityは色々な技術の集合体ですが、一つ一つの技術を順番に理解していくと以外と視野が広がってきて楽です。
わからない部分があってもとりあえずは飛ばして、その部分以外がわかるようになれば、少なくとも前よりわかる場所が増えるので、その部分のトラブルシューティングは楽になるかもしれません。
気楽にいきましょう
めんどくさい複雑な要素・形式は大体、軽量化かパソコン都合のせいで起きてる
あくまで自分の中のちっぽけな経験則ですが、
Unityで起きたエラーや、複雑なわけわからんシステムは
この二つの要素のために起きていることが多いです。
パソコン都合は、ここでは
「PCが処理するうえで処理が楽になるからそうなっていること」
ということです。
たとえば、コンピューターは基本的な計算の多くを2進数によって管理しています。
それによることで、小数点以降に不備が出てしまったりなんてことがあったりするのですが、コンピュータ側からすると、結構好都合なんですよね。
多分、ほかにわかりやすい言葉が有るんですが、フィーリングで察していただければと思います。ゴメンネ。
軽量化は、ここでは
「PCが処理するうえで、こっちのほうが軽量になるから、処理が早くて軽いゲームになる」
ということです。
ゲームは基本的には、重たい処理を嫌う性質があるので、この部分も重要です。
例えば映画用のCG・物理処理は、一つのフレーム(画像)を作るのにかなりな時間をかけてよりリアルな絵にして出力したりするのですが、
ゲーム用の処理は一つのフレームを作るのには1/30秒以下でないと許されないので、元々時間がかかるCGの処理などの部分で軽量化を行っています。
という感じです。
エラーが出てきたり、新たな要素を学んでいるときには、PC側の気持ちを考えながら理解しようとすると、「なるほどなああ、めんどくさ」ってなりやすいのでおすすめです。
個人的には複雑な処理が増えるのは「軽量化」によるもののほうが多いと感じています。
問題の調べ方
問題の調べ方は、結構初学者にとって難しいと思います。
エラー文そのままコピーしてもわけわからん「stack overflow」みたいなサイトに飛ばされて、英語だし、翻訳しても誤訳おおいし、解決してない。アンサーに書いてあるURLでも解決してないやん。てかそもそも全然関係ないこと書いてあるし、なんこれ
ってなってることもしばしば。
まだ自分もそういうこと多いので、中級者とは名乗れないんですよね。はは
という感じで、じゃあ結局なんて調べたらよかったんだろう。となるときに
もっと早く問題を把握できるようにしましょう。
問題の検索が早く終わる方法は大別すると、以下の要素があります
- Unityについて、内部の動きや概要を知っている
- 経験に基づいて早い検索ができる
- 問題の細分化がうまお
いや、ムズイすよね。
でも、「問題の細分化がうまお」の部分なら、他と比べて簡単に上達できるかもしれません。
例えば
「ゲームオブジェクトにマテリアルをアタッチしたけど、まっピンク色になっちゃって、どうしようもない場合」
この時には
「マテリアル 色 おかしい」
よりも
「マテリアル ピンク色 おかしい」
と調べたほうがうまくいきます。
なので、問題は細分化しておいたほうがいいのです。
この場合だと、色を指定することで細分化できましたが、もっともっともっと細分化しなければ自分と同じ問題にたどり着かない場合もあります。
普段から気を付けろ!って言えるほど自分もできていないので、
「なんか自分のバグのトラブルシューティングが出てこないなあ」ってなったときはこれをやってみてください。
例えばですが、Unityが立ち上がらなくなってしまった場合も
「Unity 立ち上がらない」
よりも
「Unity 立ち上がらない win10 更新後」
や
「Unity 2020.1.3f 立ち上がらない」
とかのほうがうまくいく可能性もあります。
まずは自分の置かれている状況とエラーが起きる条件を確認しましょう。
ちなみに「解決法がインターネットに全く乗ってない」って場合もあります。
そんなときは深く考えすぎずに、近くに仲間がいたら聞くとか、Twitterでエラーに対してつぶやくとかは、やってみていいかもです。
おすすめのエディター
宣伝です。
Jet Brains Riderは最強です。
とにかく、おすすめです。
使えばわかります。
Riderは学生は教育用の使用は基本無料で、候補や校閲機能がすげぇコードエディターです。C#を書くときにいちいち「void OnCollisionEnter()」とか書かなくても、「void OnCo」ぐらいで候補がでてくれます。
クソみたいなスペルミスが減って開発効率も上がります。
あと、つよつよなUnity戦士の方々にバグがでたときに
「なんでVSCodeの予測も何もないもの使ってるん???」って言われなくて済みます。
ちなみにおすすめしてるだけなので、こだわりがある方とかは全然飛ばしてOKです。
というか、Visual StudioもVS Codeも予測変換はあります。
なので、あくまでおすすめとして、とらえてもらえればと思います。
Riderの機能がうまく使えてないな…と思ったらこちら
Unity 開発者向け Visual Studio からの Rider 乗り換え案内
次回
次回は「コンポーネント」についてのおさらい、総復習になります。
興味のある方はこちら。