5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Unity玉転がしをスマホにビルド

Posted at

はじめに

Unityの玉転がしをスマホに入れる。
Unity Hubを使ってUnityを入れているとAndroidのビルドがすごく簡単。
Unity Hubをダウンロード:https://unity3d.com/jp/get-unity/download
iOSのビルドもしますが基本的にMacが必要なので注意。
また、私はAndroidなのでiOSの説明は雑になります注意。

スマホ操作用にスクリプトの書き換えもします。
完成したUnityチュートリアルの玉転がしを書き換える。
玉転がし:https://unity3d.com/jp/learn/tutorials/s/roll-ball-tutorial

Unityバージョンは2019.2.1f1
Unity Hubは 2.1.0

準備

Unity Hubを開いてインストール>3つの点>モジュールを加える。
スクリーンショット 2019-09-05 16.50.23.png
スクリーンショット 2019-09-05 16.52.23.png

Androidなら
Android Build Support
Android SDK & NDK Tools
OpenJDKの3つを選択して実行。

iOSならiOS Build Supportを選択して実行。
スクリーンショット 2019-09-05 17.01.12.png
何か聞かれるかもしれないけど同意してインストール。

インストールが終わったら準備ok。
プロジェクトを開く。

スクリプト書き換え

キーボードで操作していた部分をスマホでも操作できるようにする。
だいたいUpdate()の中身を書き換える。

PlayerController.cs
public class PlayerController : MonoBehaviour
{
    //重力加速度
    const float GRAVITY = 9.81f;    // 追加

    public float speed;
    public Text scoreText;
    public Text winText;

    private Rigidbody rb;
    private int score;

    private void Start()
    {
        rb = GetComponent<Rigidbody>();
        score = 0;
        SetCountText();
        winText.text = "";
    }

    void Update()
    {
        Vector3 vec = new Vector3();   // 追加

        //エディターか実機か判定する
        if (Application.isEditor)
        {
            // こちらが元々の操作
            // ここに元々Update()に入っていたコードを移す
            var moveHorizontal = Input.GetAxis("Horizontal");
            var moveVertical = Input.GetAxis("Vertical");
            var movement = new Vector3(moveHorizontal, 0, moveVertical);
            rb.AddForce(movement * speed);
        }
        else
        {
            // こちらがスマホでの操作
            vec.x = Input.acceleration.x;
            vec.z = Input.acceleration.y;
            vec.y = Input.acceleration.z;

            //シーンの重力を入力ベクトルの方向に合わせて変化させる
            Physics.gravity = GRAVITY * vec.normalized * speed/10;
        }
    }

キーボードでの操作から端末の傾きでの操作に変える。

タッチでの操作。

if (Input.GetTouch(0).phase == TouchPhase.Ended)
{
    // タッチで行いたい処理、ジャンプとか
}

これでスマホで操作できるはず。

設定

メニューからFile>Build Settingsを開く。
スクリーンショット 2019-09-05 17.30.34.png

使うシーンを入れる

Scenes In Buildに使うシーンをAssetsからドラッグドロップ。
シーンが複数あるなら最初に来て欲しいシーンを一番上にする。
玉転がしならシーンはひとつのはず。

プラットフォームを切り替える

iOSAndroidを選択してSwitch Platform
現在選んでいるプラットフォームにはUnityアイコンがついている。

Player Settings

Player Settingsを開く。
スクリーンショット 2019-09-05 17.43.57.png

Company NameProduct Nameを適当に変える。

変えないとビルドに失敗する。
◆Resolution and Presentation>Orientation>`Default Orientation`を`Landscape Right`にする。
スマホの向きを横向きで固定している。 他の向きにしたり傾き検知で回転もできる。
◆Other Settings>Identification>`PackageName`を一応確認する。iOSは`Bundle Identifier`。
先ほど変えたCompany NameとProduct Nameの組み合わせになっていれば○ 例:`com.watasi.ball`

 
これで設定ok。
ここからAndroidとiOSで分かれる。

Android

端末側の設定を変える。

◆ 設定>端末情報>ソフトウェア情報 からビルド番号を7回タップし開発者モードにする。
◆ 設定>開発者向けオプション からUSBデバッグをオンにする。
◆ 端末とPCをデータ通信が可能なケーブルでつなぐ。

これで端末側の準備はok。

ケーブルを繋いだらBuild SettingsBuild And Runをクリック。
スクリーンショット 2019-09-05 18.14.12.png

適当に名前をつけSave
保存場所もそのままで良い。

これで自身のスマホにゲームをビルドできたはず。
できなかった人は解決策をまとめるので見てみて。

iOS

Macがないとダメよ?
Xcodeが必要になるのでApp Storeからインストールする。

とりあえずBuild SettingsBuild And Runをクリック。
スクリーンショット 2019-09-05 18.27.33.png

適当に名前をつけSave
保存場所もそのままで良い。

ビルド後にXcodeが開くはず。
スクリーンショット 2019-09-05 18.35.02.png

左の一番上(Unity-iPhone)をクリック。
タブのGeneralを選択。
Teamを選んでAdd An Account、自身のApple IDでログイン、戻る。
またTeamを選んで先ほど追加したアカウントを選択。

端末とPCをケーブルで繋ぎ、上側の~~ Generic iOS Deviceから自身の端末を選ぶ。

再生マークのボタンを押す。

端末側でMacと制作者を信用する。

ビルド成功でok。

エラーが起きたら

体験したビルドの失敗と解決策を書いておく。

Androidエラー

No Android devices connected

◆端末をPCと繋がずにビルドした
繋ぐ。

◆ケーブルがデータ通信に対応していない
ケーブルがデータ通信に対応している場合、PCと繋いだ時端末側のステータスバーに「通常充電」の他に、「USBをファイル転送に使用」という項目が出てくるはず。

◆端末側でUSBデバッグがオンになっていない
上のAndroidを見てもう一度。

◆逆に繋いでいないのにこのエラーが出ない
プラットフォームがAndroidに切り替わってないかも。

CommandInvokationFailure: Unable to install APK to device. Please make sure the Android SDK is installed and is properly configured in the Editor. See the Console for more details.

実際に体験していないエラーなので解決策だけをつらつらと。
◆タスクマネージャーでadb.exeのプロセスを終了する
よく分からないけどこれでビルドが通るようになるらしい。

◆Package Nameを変える
[Player Settings](Player Settings)でCompany NameProduct Nameを変え、Package Nameが変わっていることを確認したはず。
それでもダメならさらにPackage Nameを変えてみる。

◆保存したビルドのパスに日本語を入れない
C:aaa/bbb/ccc/ddd.apk
ビルドすると拡張子がapkで保存されると思いますが、そこまでのパスに日本語が入っているとダメだそうです。

iOSエラー

なんのエラーがあったかふわっと忘れました。

https://qiita.com/segur/items/bef54efa7764885173bb
この方の「ケース:プライバシー情報がロックされてしまった」の症状でした。

おわり

だんだんと雑になっていく記事になりました。
大変ですがスマホに入れられるとわくわくしますね。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?