身内向けUnityチュートリアル①Unityのセットアップから基本的な使い方編
身内向けUnityチュートリアルです。
プログラマ向けです。
僕も浅い人間なので浅い知識で多分雑だったり間違ってることめちゃくちゃ書いてると思うので、身内じゃない人は公式チュートリアルとか、他にも色々勉強できる場があると思います。
あくまで身内に雑にUnityの使い方を教える目的である点悪しからず。
◯Unityについて
僕もそんな詳しくないので、雑に。
UnityはIDE内蔵のゲームエンジンです。
つまり、モデルを動かしたり、UIを表示したり、といったゲームに必要不可欠なシステムを備えたゲームエンジンと、そのモデルやUIといったものを作成する開発環境を備えているソフトです。
スクリプトはC#でかけます。
つまり、Unityの使い方を雑に覚えて、C#でスクリプトが書ければゲームが作れます。
サーバ連携するようなものを作ろうとすると、サーバ側の知識やphpなどの知識も必要となってくるので、とりあえずクライアントのみで処理できるアプリを作れる程度のチュートリアルにしたいと思います。
◯環境のセットアップ
適当にダウンロードしてインストーラ起動して待つだけです。
・UnityHub
Unityのバージョン管理や、Unityプロジェクトを管理できるソフトです。
とりあえずこれを入れておいて、Unityやプロジェクトを登録しとけば、いろんなバージョンのUnityやいろんなプロジェクトをこのアプリから簡単にアクセスできるようになります。
・Unity本体
とりあえず、チームならチーム単位で決めたバージョンのUnityをダウンロードしましょう。
大体安定している年(一個前の年とか)のレイテストとかダウンロードしとけばいいんじゃないでしょうか。
あんまいろいろ使ったことないのでバグなさそうなやつにしとくといいと思います。
セットアップの際にパッケージかなんか選択させられると思うので、ビルドしてテストするときと想定する製品の環境に合わせましょう。
・VisualStudio
C#のコーディングに使います。
セットアップの時にUnityによるゲーム開発みたいな項目あったと思うのでそれにチェック入れときましょう。
まぁ正直書ければメモ帳でもいいです。
メモ帳でコーディングするやつはプログラミングやめた方がいいと思いますが。
・Gitかなんか
チーム開発するなら必須ですね。
Tortoiseとかいろいろあると思うので使い勝手いいのを。
これがないとチーム開発しんどいと思います。
1人でもあったらガチでやばいこと起こっても巻き戻したり取り返しがつくので入れといた方がいいと思います。
◯Unityの基本解説
Unityはいくつものタブが集まって画面が構成されてるかと思います。
それらについて簡単に解説します。
・Game
実際のゲーム画面が表示されます。
ゲームを実行した時はこの画面を見ながら、実際に操作してテストプレイする感じになるかと思います。
・Scene
そのゲーム内空間を見れます。
Gameタブは実際のゲーム中画面しか見れませんが、Sceneタブは自由に視点を操作したり、オブジェクトを動かしたりと、ゲーム制作中にはこの画面を見ながら作業することになると思います。
・Hierarchy
そのシーンに存在しているGameObjectを全て表示するツリーが並びます。
ここにGameObjectを作ることで実際の空間にオブジェクトができるので、それにいろいろ属性付けしていく感じです。
・Inspector
選択されたGameObjectの詳細情報が表示されて、それらを直接操作できるタブです。
このタブを使って座標やサイズを直接いじったり、スクリプトとの結び付けといったコンポーネント(後述)の取り付けが行えます。
・Project
ゲームに関係するファイル類を管理するタブです。
スクリプトファイルや音声ファイル、画像ファイル、モデルのデータ、Prefab(後述)などを管理できます。
・Console
デバッグ用コンソールです。
エラー文やスクリプト内で出力したログを表示できます。
テストプレイ時にこれと睨めっこしながらデバッグします。
◯基本的な開発の流れと機能の使い方
・Step1:GameObjectを作る
GameObjectはUnity上でゲームを動作させるための基本単位です。
プレイアブルキャラクターはGameObjectにモデルを付けて動かしますし、UIもGameObjectに画像を付けて表示する文字列などを設定して動かしますし、なんならゲームシステムそのものも大抵の場合見えないGameObjectにゲームシステムを操作するスクリプトを取り付けて操作します。
オブジェクト指向言語でいうインスタンスみたいなもんだと思ってくれればいいと思います。
Hierarchyタブで右クリックしたらGameObjectを作るみたいなのがあると思います。
それをクリックしたら作れます(当たり前)。
もちろん空っぽのGameObjectも作れますし、Unity側がプリセットで定義してくれてるものもあるので、色々置いて試してみるといいと思います。
あとはそれらを適当に配置したりすればゲームっぽくなるんじゃないでしょうか。
・Step2:スクリプトを書く
Step1だけではオブジェクトが並ぶだけで、思ったように動いてくれないと思います。
GameObjectを操作するためにはC#のスクリプトそ書いて制御する必要があります。
Projectタブに「Scripts」フォルダを作って、その中にC#スクリプトファイルを作ってコーディングしていきます。
Projectタブで右クリックしてCreate C# Scriptを選択してファイルを作ったら、それをダブルクリックしてVSを立ち上げましょう。
あとはそこにコーディングします。
できるだけ汎用化して、操作するオブジェクト毎や機能群によってファイル分けしましょう。
じゃないとStep3で苦労すると思います。
というか、僕も偉そうなこと言える立場じゃないですが、一個のファイルに長ったらしくいろんな種類のコード書く人、多分プログラマ向いてないような気がするので勉強しなおした方がいいかもしれないですね。
・Step3:オブジェクトにスクリプトを紐付け
スクリプトで操作したいオブジェクトをHierarchyタブで選んで、表示されたInspectorタブにスクリプトファイルをドラッグします。
もしくはAddComponentボタンを押してスクリプトファイルを検索してそれを選択してください。
これでそのオブジェクトにスクリプトがアタッチされました。
オブジェクトに取り付けられたスクリプトのことをコンポーネントと言い、競合するものでなければいくつでも取り付けることができます。
僕らが書くスクリプト以外にも、初めからUnity側で提供されているプリセットが数多くあり、基本的にはそのプリセット+そこから先を自分の書いたスクリプトで制御していく感じになります。
ボタンの機能とか、オブジェクトにモデルをつけたり画像をつけたり、ボタンにしたり、当たり判定を付けたりとかの基本要素はわざわざスクリプトで書かなくていいようにUnity側が準備してくれているので、僕らはボタンを押した時にどういう挙動をすればいいのかだけ書いてやればボタンギミックが完成するわけですね。
例えば、UIのボタン。
プリセットのButtonコンポーネントをアタッチし、Imageコンポーネントをアタッチすればボタンに画像も設定できます。
ボタンに文字情報を入れたければTextコンポーネントを入れれば文字列を設定できます(見た目がチープになりがちなので、文字列込みでデザインされたImage挿すのが綺麗で楽)。
あとはボタン押した時の挙動を書いたスクリプトを適当に設定してなんやかんやすれば動くようになると思います。
なんやかんやの部分は少しだけですが深堀りになるので、別の機会に。
以上、基礎の基礎、簡単で雑な紹介でした。