皆さま、お久しぶりでございます。ブログ更新がずっと滞っておりましたことをお詫びいたします。また、見に来てくださると、幸いです。
さて、わたくし、実はそこそこいいおっさんの年齢なのですが、最近、ゲームにハマりまして。とくにSteam系のPCゲーム、これが面白くてですね、毎日やっておりました。
そこでふと、「ゲーム自分で作ったら面白いんじゃない?」と思い立ちまして、思い立ったが吉日野郎、急遽ゲームを作ることになりました。
さて、ではどうやって作るかとWebで物色しておりますと、Unityが凄い!という意見が多く、こりゃわたしもはじめて見るか!と、相成った次第です。
さて、そこそこ開発業務に携わってきた身、Unityを知らないわけではなかったのですが、ゲーム作成は初めて、さらにそれをUnityで作るのも初めてとあれば、やはりなんらかの指南が欲しく、とりあえずいくつか本を探して、とっつきやすそうなものを買いました。
今回はこちら
「Unityの寺子屋」という入門書です。目標であるスマホゲーム開発入門がタイトルにあり、作者のいたのくまんぼう氏もスマホゲームをいくつか当てているという点で選びました。このリンク先のAmazonのページではUnity入門向けの書籍が結構出ていて、見るだけでそこそこ「これいいかも」的な書籍が見つかるかもしれません。
というわけで、まずはこのUnity本にてお勉強の開始です。
Contents
統合開発環境Unity
Unityってなんぞや
それではまずUnityについてお勉強したことを簡単に発表します。
Unityは一言で言えば、マルチプラットフォーム向けのゲーム開発環境です。といっても、かならずしもゲームだけに限らず、高度なアニメーションや、AR、VRコンテンツなども作成できるため、様々な分野で活用されています。
また、マルチプラットフォームとは、Unity自身もそうなのですが(WindowsとMac及びLinuxで動きます)Unityで開発したゲームが、マルチプラットフォーム向けにビルドできるようになっているわけです。
わたしの以前の知識では、Android用の開発環境、iPhone用の開発環境、またPC向け、コンソール向け、などそれぞれ独自の開発環境が必要だったと思います。(一部マルチプラットフォームのものもありましたが)それが、一度にどのプラットフォームに向けてもビルドができるというのは、とんでもないカルチャーショックでした。
とにかく、Unityはとんでもなく高性能な統合開発環境だということです。
Unityでandroid向けもiphone向けも一緒に作れるんだ!
と、わたしも思っておりました。
これは間違っているわけではありません。Unityのビルドセッティング画面はこうなっています。
ご覧のように、iOSでもAndroidでもPS4でもXboxでWindowsでもなんでも来いです。
しかし! これはビルドできるというだけです。
Androidアプリは、Google Playに登録してビルドファイルをアップロードすれば、Windowsマシンからでもmacマシンからでも公開できます。
一方iphoneアプリは・・・、macマシンからでないと公開はできないのでございます(´;ω;`)
つまり、そこはUnityでは如何ともし難いので、mac持ってない奴は、mac買ってiphoneアプリ登録せなあかんで、ということ。
なかなか世知辛い世の中でございますなぁ。
どうせゲームを作るなら、たくさんの人に見てもらいたい、知人友人にもドヤりたいというのがありまして。
シェアは減ってきたと言っても、まだスマホ持ちの半数はiphoneです。やはりいずれはmac買って、iphoneアプリ申請が必要・・・お金ないっす(´;ω;`)
とまあ、先々のことはおいておいて、とにかくUnityの凄さが伝わったところで、勉強開始です!
UnityとVSCodeで開発
unityのテキストエディタ
unity自体は以下のような画面構成になっておりまして、ここで様々な設定やらアニメーションやら設置やらアタッチやらを行うわけです。
しかし、スクリプトを書くエディタに関しては、「勝手に選んでどうぞ」的なスタイルで、デフォルトエディタはMonoDevelopというツールです。
スクリプトを書くといっても、最近のバージョンのUnityはC#オンリーで書くので、C#がかけるエディタならなんでもOK、というわけで色々情報収集してみた結果、VSCodeが良さげだとなりました。
VSCodeってなに?
VSCodeはMicrosoftがフリーで出しているエディタで、結構な高性能、かつ多くの言語に対応しており、さらに拡張機能もたくさんという、MS最近頑張ってるなぁ的なエディタです。
VSCodeで検索すれば一発で出てきますし、インストールなどめっちゃ簡単なので、省略しますが、拡張機能には必ずC#を入れる必要があります。(当たり前ですが)
さらに拡張機能にはUnity向けのものも多くあり、お役立ち間違いなし。
わたしの環境での拡張機能は現在模索中なので、まだバチッとご紹介できないのですが、近いうちに紹介したいと思います。
Unity + VSCodeの罠
コード補完が効かない?
さあ、ここからが実は本題だったりします。
Unityをインストールして、VSCodeも入れて、本も開いて、さあサンプル作ってみるぞ! と勢い込んだわたしですが、スクリプトを書くところにきて、VSCodeがコード補完してくれていないことに気づきました。
コード補完は最近のエディタには大概入っているので、まさか天下のMS様のエディタができないはずはない、とさあ、調査開始です。
すると、最初に出てきたのは、Unityからみの設定についてでした。
どうやらプロジェクト内にある「.csproj」ファイルがいかんぞと、それを消して、Unityからもう一度開けと、さすれば道は開かれんと、こういうわけです。
プロジェクトフォルダ内にある、赤線を引いてある「.csproj」ファイルを削除します。(あとの操作でまた作成されるので、消しても大丈夫です)
AssetsメニューのOpen C# Project(赤丸)を押下すると、新しい.csprojファイルが作成され、VSCodeが立ち上がります。他のサイト様ではこれで補完が効くようになるとこのと。
どれどれと勢いよく立ち上げます。
・・・しかし、相変わらず補完されない!(´;ω;`)
OmniSharpがなんか言ってる
いろいろ調べていくうちに、そもそもVisualStudioではなく、VSCodeでは.NET Framework周りが違うらしく、VSCodeにてC#を書くためのOminiSharpがエラーを吐くという情報をゲットしました。
そして、ようやくコンソールを確認(笑)
おお、出てます! 何やら英語でいろいろ仰ってる!
どうやら、.NET Frameworkのバージョンが違うと言っているようですね。
親切にも「こっからダウンロードして入れろや」とURLまで出してくれています。では早速、URL先に飛びます。
このページのDeveloper Packをダウンロードしてインストールします。
するってえと
出た! ちゃんとコード補完もできるし、メソッドなんかのコメントもでてきました。
いやあ、為せば成るもんですね。
これでようやくまともにコードが書けるようになりました!補完なしではツラタンなダメプログラマです(´;ω;`)
そして、記事にすると結構サクサクと進みましたが、まぁまぁ調査やトライアンドエラーに時間がかかって、もうそれだけで疲れちゃいました。
まとめ
開発環境構築
現役のエンジニアの頃からそうでしたが、これが意外にハマる穴多いですし、ハマるとなかなか抜けられない。
同じような環境の例と解決策を見つけても、微妙な違いでうまく行かない、しょうがないから片っ端からトライアンドエラー→めっちゃ時間だけが消費される。
という「いつものこと」が起こります。しかし、それも勉強だ! という強い心で進みましょう。
さすれば、多分、道は開かれます。きっと、おそらく、まぁちょっとは無理かも。
今後の予定
基本的にはしばらく本を買ってはサンプル作って、色々慣れていく必要がありそうです。サンプル作りでハマったところなど、書いていけたら、皆さんのお役に立てるかもなぁと思っています!
結構すでに何冊かUnity本を買っていますので、本のレビューみたいなのも書いていこうかなと思っていますので、また見に来てくだいね!