Unityの3Dゲーム開発を勉強した。
一番面白かったのは、サブカメラ機能。
はろー、yukiです。
Unityを久しぶりに使い、3Dゲーム開発の勉強をしました。
参考にしたのは技術評論社の『初心者でもできる! 7日間で作るUnityゲーム開発』です。
連載のタイトルには7日間とありますが、それほど難しい内容ではないので、ざっくりやれば1日でもできます(おそらくそうした構成になっている)。
下記、勉強になった内容。
・GUI
HierarchyにGemeObjectを配置して,そのGameObjectに実行するスクリプトファイルを張り付ける→アタッチ
InspectorにあるComponentで選択したGameObjectをクリックすると、該当のObjectが黄色く表示される
fps(frame per second):1秒間に何回画面を描画するか
複数のカメラを配置して画面に映す機能がある
GameObject上でドラッグアンドドロップをすると、親子関係を作ることができる
親を変更すると、子にも反映される(同じ設定をしたい場合に便利)
Trail Renderer:軌跡を描画する
・Script
ScriptでコーディングしたpublicフィールドをUnityのGUIから設定する(コードを書き替えずにパラメータを設定できる)
Objectにタグ付けする機能があり、Scriptからタグ名をキーにしてObjectを検索する
ScriptでclassのpublicフィールドにIDEから参照を設定できる
標準UI機能では,OnGUIというメソッドの中にラベルやボタンなどのUIを表示するコードを書く
Updateメソッドは毎フレームごとに呼び出される
基本的なことばかりだと思いますが、この連載を通しで行うことで多くのことが学べます。
ただし、記事が3年以上前と、かなり古いのでいくつかの点でできないことがありました。
例えば音声・BGMです。Scriptで外部参照がうまくできませんでした。
それらを除けば、大体のことができますし、個人的にアレンジしたこともあります。
併せて下記にまとめます。
・Exlode On StartがOnだと処理落ちする
PCの性能かもしれませんが、敵に球が当たると爆発するというエフェクトは次の箇所でオフにできます。
・Hierarchy>Directional lightのLight>Intensityの数値を0.48→1に変更して画面を明るくした
ゲーム画面がかなり暗くて操作しづらいと思ったので、明るくしました。その変更箇所が次です。
Before:
After:
・Application.LoadLevel("Teddy Bear Bazooka");をSceneManager.LoadScene("Teddy Bear Bazooka");に変更した
「Application.LoadLevel」が古く、「もう一度遊ぶ」を選択したときに画面が遷移しませんでした。
「SceneManager.LoadScene」を使用することで改善しました。
・「Sci-fi Music Pack」は有料になっていた
有料でしたので、設定しませんでした。
・「Trail Renderer」をAvaterにアタッチした
これにより、Avaterが走ると火が出ます。
3Dゲームの勉強をしてみて思ったのは、奥が深くて、勉強する内容がとても多いということです。
ただ、勉強する内容はどれも視覚的になって表れるので、面白いですね。
以上。