iOS/Androidアプリ開発をしたことがある人がUnity 2Dでスマホゲームアプリを作り始める際に知っておくべきこと


# 概要
この文章はiOS/Androidアプリ開発をしたことがある人がUnityを使って2Dゲームアプリを作り始める時に知っておくべきことを書いておきます。

Unityのバージョンは4.3.4です。

## 学習する順序

学習する順序は段階的に次のような順序が効率的だと思います

- 2Dゲームチュートリアル
- ボタンなどゲーム内GUIの作り方
- iOS/Androidでの実機確認
- 広告やGoogleAnalyticsなどの導入
- GameCenterの利用方法
- リリース方法

# Unityのダウンロードとユーザー登録

## ダウンロード

Unityのダウンロードページ
http://japan.unity3d.com/unity/download/

Mac OSX ならUnity-4.3.4.dmgをダウンロード後、Unity.pkgからインストーラを起動すればインストールできます。

## アカウント登録

Unity.appを起動し開発者のアカウント登録を行います。ライセンスフリーの場合は"free activate"を選びメールアドレス・パスワードを入力します。

# 段階的に学習する内容

## チュートリアル

### チュートリアルの前にUIの基本

チュートリアルに取り掛かる前に、Unity開発環境の操作を憶えるために、Unity公式サイトにUIについて軽く説明されているのでまずUnity.appを起動しながら確認してみると良いでしょう。

http://japan.unity3d.com/developer/document/tutorial/basic/

### 2Dゲームのチュートリアル

![](http://japan.unity3d.com/developer/document/tutorial/2d-shooting-game/img/top_thumb_intro.jpg)

チュートリアルはUnity公式の2Dチュートリアルが日本語で一番分かりやすいです。
http://japan.unity3d.com/developer/document/tutorial/2d-shooting-game/

このチュートリアルでは下記について学べるのが良いですね

- 2Dの基礎
- 画像の組み込み
- マウスでの入力部分
- 効果音
- 敵機の生成
- 当たり判定
- モバイル用複数解像度の対応方法

チュートリアルを全てこなす必要はないと思いますが、ゆっくりやっても土日の2日間くらいあれば終わると思います。

## ゲーム内GUIの作り方

### NGUIがオススメ

ゲーム内でのGUIを自前で作ろうとすると結構時間が取られることとがあるのでNGUIやEZ GUIという有料アセットがあります。

NGUIは古い2.7.0がフリーで配布されていることからNGUIのフリー版で動作を検証し必要があれば有料のものを購入するのが良いでしょう。

NGUIフリー版は下記のページ"Free Version"にあるhereからダウンロードできます
http://www.tasharen.com/?page_id=140

また、NGUI3系のチュートリアル動画もあり何度も見返すことになると思います
https://www.youtube.com/watch?v=B66xhIvYF00

### NGUIでスクロールビューがずれる時

NGUI v3.5でスクロールビューがずれる時は初期化しておく必要がありました

NGUIのUIScrollViewがずれる
http://qiita.com/yimajo/items/6a7a61bfea6a69ca76a0

## iOS/Androidでの実機確認

Androidアプリの場合、Android SDKさえあればEclipseなどの開発環境はいらず直接端末にapkを転送できますが、デバッグ実行でログを確認することやAndroidManifest.xmlを直接編集出来るため分かりやすく基本的にはプロジェクトファイルを出力しEclipse上からapkファイルを端末にインストールすることがメインになると思います。

![Unityでのアプリ開発.jpg](https://qiita-image-store.s3.amazonaws.com/0/16400/6bb5fcf9-1e60-a8bd-0a88-65a1d1b5525a.jpeg "Unityでのアプリ開発.jpg")

広告などのために複数のパッケージを読み込んだ場合にAndroid端末実機で実行できなくなる場合はパーミッションの設定が足りてないなどがあるので最終的にAndroidManifest.xmlがどうなっているかは確認が必要だしEclipseは必要になります（AndroidStudioでもいいのかもしれない）。iOSはXcodeは必要です。

## 広告やGoogleAnalyticsなどの導入

### アプリ内広告

Unityでつくったアプリでも広告を導入することができますが、iOS/Androidアプリ開発のようなSDKが配布されているわけではなくUnityプラグインによってUnity上から組み込む形になっています。

やっかいなのはUnity上のゲーム画面から広告は表示されず、実機実行した際にのみ公告の表示が確認できる点と細かく広告表示用のコンテナViewのようなものを作れるわけでもないし操作もできず、複数解像度に応じた大きさのコントロール出来ないことです。


最近よくみかけるアイコン型はnend、ダイアログ型はBEADのプラグインで実装できます。

![](https://qiita-image-store.s3.amazonaws.com/0/16400/4f7fe6f2-52f9-3c6b-5871-fd6d27fc2b22.png)

nend Unityプラグインで広告を表示するメモ
http://qiita.com/yimajo/items/28c93d5ce26c9b31beb0

Unity3D BEAD プラグイン for iOS and Androidで広告を表示する
http://qiita.com/yimajo/items/54cf1847b6902481c7f6

### GoogleAnalytics

UnityでGoogleAnalyticsを利用する場合、公式のSDKがあるわけではなくGoogleAnalyticsのサーバーに対してHTTPのGETやPOSTで必要なパラメータを送るMeasurement Protocolをつかっています。

UnityでGoogleAnalyticsを使う
http://qiita.com/yimajo/items/0861a79e741cbd463179

## GameCenterの利用方法

iOSではGameCenterを利用することで、ゲームアプリに世界ランキングを導入することができます。2Dのカジュアルゲームでは特に自分のスコアが良いのか悪いのかということの指標にもなるので導入することでユーザー体験が高まりますね。

UnityでiOSのGamceCenterを利用する
http://qiita.com/yimajo/items/503cb2451e303e9f3841

![](https://qiita-image-store.s3.amazonaws.com/0/16400/9a756484-db79-4aaf-62ba-bb717de421db.png)

## リリース方法

iOS/Androidアプリを開発したことがある人なら、アプリのリリースについては自分でとにかくカンタンな2Dゲームを作ってリリースしてみるのが一番手っ取り早いと思います。

自分がさくっと作ってみたのはシンプルなクロスワードパズルのアプリでした。

クロスワードポケット iOS版
https://itunes.apple.com/jp/app/id878183602?mt=8

クロスワードポケット Android版
https://play.google.com/store/apps/details?id=jp.co.curiosity.crossword

### Androidアプリのアップロード

Androidアプリの場合は"Build Settings"から直接apkファイルを出力したものをGoogle Play Consoleにアップロードするだけです。

![スクリーンショット 2014-05-21 21.56.09.png](https://qiita-image-store.s3.amazonaws.com/0/16400/e0259cc6-ff31-ef07-bd18-fa1ddc8d322d.png "スクリーンショット 2014-05-21 21.56.09.png")

### iOS

iOSアプリの場合は普段と同じようにXcodeのオーガナイザからアーカイブしてサブミットします。

### 失敗したこと

Unityではデフォルトでユニバーサル対応とされてしまうので、iPadで調整が出来ていないのにリリースしてしまっているのが悩みどころ。Androidも7inchと10inchに対応という設定でリリースされてしまっているのが悩ましいですね。あえてユニバーサル対応をオフにしても良いかと思うのですが自動でできてしまっているのが悩ましいところです。

# Unityに関する情報が書かれていて参考になるブログURL

West Hill 開発メモ
http://westhillapps.blog.jp/

テラシュールウェア
http://terasur.blog.fc2.com/blog-category-11.html

とあるプログラマーのブログ
http://ameblo.jp/chicktack123/