【Unity入門】Unityを使用する際の注意点

ここまで、Unityの基本的な使い方を解説してきました。いよいよゲーム開発に取り掛かりたいところですが、その前にUnityを使用する際に注意するべき事を見ていきましょう。

この記事は本のように順を追って解説しています。この記事は途中のページになります。この記事を見ていて、現在の状況がわからない場合や忘れてしまった事などが出てきたら↓のリンクから目次ページへ飛べますので立ち戻って見てください。

<シーン再生中の記録について>

さて、まずUnityを使用していて注意しなければいけないのはシーンの再生中に変更したインスペクターの値は保存されない点です。

以前シーン再生中にインスペクターの値をいじる事で値を調整できるよという話をしていました。しかし、調整した後シーンを停止すると値が元に戻ってしまいます。

rotate cube

こういった場合は、調整した値をコピーしておいて、再生が停止した時に貼り付ける必要があります。

ちょっとレベルが高くなりますが、プログラムがわかるようになってくるとシーン再生中でも値を保存する事もできます。これに関してはエディタ拡張というものをしないといけないので解説はまた別の機会にしようと思います。

とりあえず、今は再生中のパラメータをいじる際は注意してください。

そして、Unityのややこしいところは全てのパラメータが元に戻る訳ではないという点には注意してください。

↓ではTransformとマテリアルのパラメータをいじっていますが、再生を解除するとTransformのパラメータはリセットされていますが、マテリアルのパラメータは保存されている事がわかると思います。

move and color change

実は全部が全部リセットされる訳ではないのです。

一見インスペクターでいじれるパラメータがリセットされるように見えますが、プロジェクトウィンドウに保存される系の奴は再生中にパラメータをいじっても保存されます

asset

スクリプトもそうなんじゃないのって感じですが、インスペクターの値はシリアライズ化されてUnity側に保存されているものなので実は扱いが違います。

と、いうか基本的にシリアライズ化されているものは再生中にいじっても停止すると元に戻るといった感じです。

シリアライズが何かわからない方は↓の記事で解説していますので、参考にしてみてください。

<シリアライズ化した変数について>

変数をシリアライズ化するとインスペクターで値をいじる事ができますが、実はスクリプトで書いた値は上書きされます。

serialize script

↑のスクリプトではaは1になっています。

inspector serialized valiable

↑インスペクターでは99にしています。

この状態で再生すると

result console serialized variable

このように99と表示されます。

スクリプト上でも値を指定する事ができますが、シリアライズ化するとその値で上書きされるので注意してください。

じゃぁ、ややこしくなるので、スクリプトに値を指定しなければいいのでは?と思うかもしれません。ですが、メリットもあるので値を指定するのもアリなんです。

そのメリットとは何かというといちいち値を入力しなくてもいいという点です。

script attach game object

↑ではスクリプトをアタッチした瞬間に「1」の値が入っている事がわかります。本来なら0が入るはずです。これはスクリプトであらかじめ1を入れているからですね。

パラメータをたくさん増やしていくと、ゲームオブジェクトにアタッチした際にいちいち入力するのがめんどくさくなる時があります。また、「ちょうどいい値に調節」した後にスクリプトに書いておくと、他でも使う際にいちいち調節しないで済みます。

<セーブについて>

セーブは大事だって事はみなさんよくわかっているかと思います。

Unityを使っているとなんとなくいろんな物が勝手にセーブされててオートセーブなのかと錯覚してしまいそうになる時があるのですが、そんな事はなく、突然Unityが落ちてしまった場合、それまでの作業分が消えてしまいます。

例えば、プロジェクトウィンドウで色々なファイルをいじったとします。

asset

実は、シーンをセーブした際にもこれらのファイルがセーブされるので、知らない間にセーブされてたりします。

そのため、保存を押してないのに保存されているのでファイルをいじったら、いじった瞬間セーブされるものと勘違いしがちなんですが、そんな事はないので、Unityの機能で作成したファイル系をいじった後は

save scene

SaveかSave Projectを押した方がいいです。Unityが落ちたりするとパーになってしまう事もよくあるので、やっぱりセーブは大事です。

ちょっと混乱するかもしれませんが、Saveを押さなくても保存されるファイルもあります。元のファイルそのものを直接触っている場合です。これらはSaveを押さなくても保存されますが、まぁ、小まめにセーブするのに越したことは無いので変に意識せずにセーブしてしまえばいいと思います。

<まとめ>

Point

・シーン再生中にシリアライズ化したパラメータを変更しても保存されないよ!

・スクリプトに書いた値はシリアライズ化すると上書きされるよ!

・シーンを保存すると他のものも保存されるよ!

<わからない事があったら>

このサイトの説明ではよくわからなかったとか、もっと知りたい事などがあれば、また別の勉強方法があるので違った切り口を使ってみるのもいいと思います。

<オススメの本>

本で詳しい解説がされているので書籍を買ってみるというのも手の一つです。最近はKindle版があるので届くまで待つ事もなく場所も取らないのでとても良いです。

<オンラインスクール>

オンラインスクールでは人に質問する事ができるので、行き詰まってしまった方にオススメです。 無料体験もあるので試しに見てみるのも手ですよ




さて、長々と説明してきましたが、説明ばっかりしていても頭に入ってきづらいと思うので、次回からいよいよゲームを作成していこうかなと思います。手始めに簡単な2Dゲームの作り方を解説していこうと思うので次回もよろしくお願いします。




タイトルとURLをコピーしました