i-school - Android実機で遊べるようにする
※ Unity2019は下記のStandard Assetsが非推奨アセットになったため、インポートができません。
その場合、次の14.Androidでのスワイプ操作を実装する(Unity 2019以降)をご覧ください。

 Unityの「Standard Asset」の1つである「Cross Platform Input」を利用して、アンドロイド端末で実際にゲームを操作して遊べるようにします。
事前準備として「Standard Asset」のインポートの他に、AndroidStudioのインストール、Unityの設定などが必要になりますので
そちらはSlackの「01_事前準備」と「02_Unityの導入方法」内に記載してあります。

GameSceneをMainシーンに切り替えます。Scenesフォルダ内よりMainシーンをダブルクリックして切り替えてください。
ProjectビューのAssetsフォルダより、StandardAssets -> CrossPlatformInput -> Prefabsフォルダを選択します。
Prefabsフォルダ内にあるプレファブが画面のタッチ操作を可能にする機能を追加してくれます。

ヒエラルキー内に「DualTouchControls」のプレファブを選択して、ドラッグ&ドロップをして追加します。
DualTouchControlsの構成は以下のようになっています。

・MoveTouchpad
・TurnAndLookTouchpad
・Jump

今回はMoveTouchpadを使用します。他の2つは非アクティブに切り替えるか、Deleteしてください。
ヒエラルキーのMoveTouchpadをダブルクリックするとCanvasへの視点に切り替わりますので
そこでMoveTouchpadの指定範囲を画面全体にします。画面の大きさに合うように調整してください。

続いて「TouchController」スクリプトを新規作成します。
Assets -> Scripts フォルダを開いて、その中で右クリックをして create -> C# script を選択し、名前を「TouchController」にします。
「TouchController.cs」を開いて、下記のソースコードを書き加えます。

TouchController.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;      <=  CrossPlatformInputの使用を宣言します。忘れずに追加してください。

public class TouchController : MonoBehaviour
{
    public float moveSpeed;                 //  Player(バー)の移動速度。外部で設定できるようにpublic修飾子をつける          
	
   // Update is called once per frame
    void Update () 
    {
        float horizontal = CrossPlatformInputManager.GetAxisRaw( "Horizontal" );   //  水平(横)方向のタッチ入力を取得するための変数verticalを用意する。"Vertical"ではfloat型の-1〜1の数字が取得できる。 

        if(horizontal != 0){                                                     //  水平方向のタッチがあるなら(0以外なら)
            transform.position += transform.forward * moveSpeed * -horizontal;  //  移動をさせる
	}
    }
}
このスクリプト(クラス)をPlayerオブジェクトにアタッチします。

Unityのメニュー内のMobileInputを「Enable」に変更します。(黒字が選択中)
ゲームを実行し、マウスのドラッグ&ドロップでPlayerオブジェクトが移動するかどうか確認してください。