スマートデバイスプログラミング 第1回
開発の準備をしよう(イントロダクション、開発環境の導入)

概要

授業概要を説明します。
開発環境上でのプロジェクトの作成、ビルドの方法などを学びます。

UnityとGameCanvasのダウンロード


https://github.com/sfc-sdp/GameCanvas-Unity/

ページ中央付近にある「導入方法」に沿って実行していきます。

1:UnityHubをDLしてインストール。

2:UnityHubを起動して、Unity2022.3.10f1をインストール。

※Unity2022.3.10f1が見つからない方はUnity2022.3.24f1などでも問題ありません。(プロジェクトを開く際に「バージョン変更をしますか」と聞かれるので「バージョンを変更」を選んだあと、開く際にもWarning画面が出るので「Continue」を選択してください
※「導入方法」のページにもありますが「Android Build Support(OpenJDK,Android SDK&NDK Tools)、iOS Build Support、日本語言語パック」を選択するようお願いします。(これを忘れると、実機を動かす回で10ギガの再インストールが必要です)
※開発者ツールのMicrosoft Visual Studio Comunity(1.5ギガ強)は、使ってみたい方以外は不要ですので、チェックボックスを外してください。(他の授業などで既にVisualStudioCodeなどのエディタを入れている方が多いと思います)
※ライセンス、UnityIDが必になったらsfcのメールアドレス等でアカウント(UnityID)を作成してください。ライセンス自体は無料のもの(Personal)で問題ありません。

3:GameCanvasの入手、解凍、配置
「最新のGameCanvas」の文字をクリックしてDLページに行きます。
移った画面の下の方にあるDownloadsの「Source code(zip)」の部分をクリックすると DLが始まります。
DLが終わったら解凍してフォルダの場所を移しましょう。
配置先については「ドキュメント」(macの場合は「アプリケーション」)フォルダ以下にあるUnityフォルダ内などが良いでしょう。
フォルダ名自体も「GameCanvas-Unity-master」→「k01」などに変えてみましょう。

4:Unityを起動してプロジェクト内のGame.sceneを開く
k01の中にあるAssets/Game.unityを実行してみましょう。
Unityが起動してプロジェクトk01を開き、、更にGameという名前のシーンを開きます。
(うまくいかない場合はUnityを立ち上げる→プロジェクトk01を読み込む→
プロジェクトが開いたら中央下段のproject窓にて、
Assetsフォルダの中に、Gameという名前のUnityアイコンが見えるので
ダブルクリックで開く、という手順でも同様の状態になります)

(UnityHubの「プロジェクト」の画面で「リストに追加」を選び、解凍したフォルダ(k01)を選択する操作でも、同様の状況になります。
画面上部中央の再生ボタンを押すとゲームが実行されます。
サンプル実行がうまくいけば、導入は成功です。

青い空の画像と文字が出ている筈です。
(真っ白な画面しか出ないかた、一度停止してからもう一度再生してみてください)

サンプル実行がうまくいけば、導入は成功です。
導入がうまくいったら、Game.csを開いて、少し編集してみましょう。

Game.csの編集

  1. 中央下段のproject窓にてAsssets/Game.csをダブルクリックして開きます。
  2. 何らかエディタが開きます。
  3. プログラムを編集します。
  4. 
    //14行目を↓次の2行で上書き
    int time = 600;
    int score = 0;
    
    //23行目を↓次の1行で上書き
    gc.ChangeCanvasSize(360, 640);
    
    //31~32行目(UpdateGameの{と}の間)を↓次の12行で上書き
    time -= 1;
    
    if (time >= 0)
    {
        score += gc.PointerBeginCount;
    }
    
    if (gc.GetPointerDuration(0) >= 2)
    {
        time = 600;
        score = 0;
    }
    
    //50~63行目(DrawGameの{と}の間)を↓の10行で上書き
    gc.ClearScreen();
    
    if(time >= 0 ){
      gc.DrawString("time:"+time,60,0);
    }
    else {
      gc.DrawString("finished!!",60,0);
    }
    
    gc.DrawString("score:"+score,60,60);
    
    
    
  5. 保存してUnityの画面に戻ります。
  6. 実行ボタンを押してみましょう。
  7. 600フレーム(秒間60フレームなので、10秒間)で何回タップできたかを競うゲームになっています。
  8. 画面を2秒長押しすると、スコアとタイムがリセットされます(再度遊べます)

補足

エディタについて

 プログラムがメモ帳で開かれる場合は、
 何かしらのプログラムエディタの導入をお勧めします。

 既に何かしら使っているエディタがある場合は、それを使っても良いですし、  容量は食いますがVisualStudioCodeを導入するのもオススメです。

GameCanvsのAPIのマニュアルについて

 以下から辿れます。最終課題などの参考に。
 https://github.com/sfc-sdp/GameCanvas-Unity/

Unityのマニュアルについて

 以下に一式あります。
 http://docs.unity3d.com/ja/current/Manual/
 但し、GameCanvas無しで開発する前提でのマニュアルなので、
 GameCanvasでの開発では活用できない情報も多々あります。
 GameCanvas自体を作ってみたい、自力で3Dアプリを作りたい、
 Unityについての知識を深めたい、という方は、色々見てみると良いかもしれません。

よくある質問

スクリプトを更新したのに、何も変わらない

プログラムが間違っていてビルドエラーが出ている可能性が高いです。

エディタ上でbuildしてみましょう。

{}の対応が間違っていないか、全角スペースが入っていないかなど、確認してみましょう

Unityのインストーラが起動できない(winの人)

「1410966677を開くにはどのアプリを使いますか?」と聞かれた人は下記手順でやってみてください。

「開く」ではなく「保存」を選んでファイルを保存してください。

保存が終ったら、「フォルダを開く」でDLしたフォルダを開いてください。

DLしたファイルをリネームして拡張子に.exeを付加してください。

(例)「UnityDownloadAssistant-2017.4.0f1.1410966677」→「UnityDownloadAssistant-2017.4.0f1.1410966677.exe」

リネームしたファイルを、ダブルクリックして実行してください。