超初心者のゲーム開発記~Unity~

超初心者がUnityでゲーム(目標はAndroidアプリ )を開発していくブログです!

【超初心者】Unity でデータをセーブ・ロードする方法!!

こんにちは!ヤギです!

今回は、ゲームを作るときに、欠かせない要素である、データのセーブとロードの方法のついてご紹介したいと思います。
※記事で紹介しているゲームも、今回の方法でデータのセーブとロードを行い、
ベストスコアを表示する機能を実装しています。
yagigame.hatenablog.com

使う機能

今回は、PlayerPrefsというゲーム内でデータのセーブやロードが可能になる機能を使います。
※ゲームを終了しても、セーブした情報は消えません!

データをセーブする方法

  • データをセーブする場合、PlayerPrefs.SetIntという機能を使います。
  • .setIntの場合、Int型の値が保存されますが、他にも.setStringなど文字列も保存できます。
  • 第一引数に、セーブするデータのキーの名前、第二引数にセーブするデータを指定します。

※実際にベストスコアをセーブするソースの例になります。
※BestScoreというキーに、bestScoreというデータを保存しています。

//ベストスコアを更新する場合
if (this.bestScore < this.speed)
{
      this.bestScore = Mathf.RoundToInt(this.speed);
      //ベストスコアに新しい値をセーブする
      PlayerPrefs.SetInt("BestScore", this.bestScore);
}

セーブデータをロードする方法

  • セーブデータをロードする場合、PlayerPrefs.GetInt("キーの名前")という機能を使います。
  • 引数にキーの名前を指定することで、セーブデータがロードできます!

※実際にセーブしたベストスコアをロードするソースの例になります。
※キーの名前がBestScoreの情報をロードし、テキストとして表示しています。

//ベストスコアを文字列に変換して表示する
this.bestScoreText.GetComponent<Text>().text =
    PlayerPrefs.GetInt("BestScore").ToString();

補足:セーブデータを削除する場合

  • セーブデータを削除する場合、PlayerPrefs.DeleteKey("キーの名前")という機能を使います。

これで、データをセーブ、ロードして表示、不要な場合は削除まで出来るようになりました!

実際に確認してみる!

今回は、冒頭ご紹介した、制作中のゲームで動作確認してみました。
※スワイプの速度を測るゲームです!
現在のベストスコアは、2171m/sです。
f:id:yagigame:20181026212344p:plain
ベストスコアよりも遅い時は、ベストスコアが更新されず、
f:id:yagigame:20181026212424p:plain
ベストスコアより早い時は、ベストスコアが更新されました!
f:id:yagigame:20181026212437p:plain


今回も記事を読んでいただきありがとうございました!

【超初心者】Unityで使えるフォントを増やす方法 Google Font編

こんにちは!ヤギです!

今回は、ゲームより良く見せるために、Unityで使えるフォントを増やす方法について書きたいと思います。

今回は、Googleが提供しているフリーフォントをUnityで使えるようにしていきます!

※Googleの提供するフリーフォントは商業利用可のオープンソースとなっています。

フォントをダウンロードする

1. Google Font のサイトにアクセスします。
fonts.google.com

2. 好きなフォントを探し、右上のSELECT THIS FONTをクリックします。
f:id:yagigame:20181025202355p:plain

3. 画面右下に、画面が表示されます。
f:id:yagigame:20181025202628p:plain

4. 表示された画面を、クリックします。すると、次の画面が表示されます。
※青枠のダウンロードボタンをクリックします。
f:id:yagigame:20181025202930p:plain
※zipファイルのダウンロードが始まります。

5. ダウンロードしたzipファイルを解凍します。
※解凍すると、.tffファイルがあります。このファイルがフォントデータのファイルです!
f:id:yagigame:20181025204932p:plain

Unityにフォントを取り込みます

6. Unityを起動します。
7. 画面左上のAssets > Import New Assetをクリックします。
f:id:yagigame:20181025205732p:plain

8. 先ほどダウンロードしたフォントファイルを選択し、Importをクリックします。
f:id:yagigame:20181025205829p:plain
※インポートしたフォントデータのファイルが、Project viewに表示されていたら成功です!
f:id:yagigame:20181025210114p:plain

実際にフォントを変更する!

9. フォントを変更したいゲームオブジェクトのInspecter viewを表示します。
10. フォントファイルを、Inspecter view > Font にドラッグします。
f:id:yagigame:20181025210833p:plain

これで、フォントを変更することができました!!

実際に確認してみる!

まずは、Unityに最初から入っているフォントを使用したときは、
f:id:yagigame:20181025211224p:plain

フォントをインポートしたフォントに変更すると、こうなります!
f:id:yagigame:20181025211244p:plain

これで、Unityで使えるフォントを増やすことができました!
あなたの、好きなフォントを見つけて是非活用してください!
今回も記事を読んでいただきありがとうございました!

【Unityゲーム】スワイプの速度を測るゲームを作る part.2

こんにちは!ヤギです!

今日は、スワイプの速度を測るゲームを作るpart2として、
タイトル画面をタップし、ゲーム画面に遷移する方法について書いていきます!

※前回の記事ではスワイプの速度を測る方法について紹介しました!
yagigame.hatenablog.com

今回やる事

  • ゲームのタイトル画面を作る!
  • タイトル画面をタップするとゲーム画面に遷移出来るようにする!

それでは早速作っていきます。

タイトル画面を作る

1. Unityを起動し、File > New Sceneをクリックしシーンを新しいシーンを作ります。
※Sceneの名前はTitleSceneとしました。
f:id:yagigame:20181024212556p:plain

2. Hierarchy > Create > UI > Textをクリックし、タイトルを表示するテキストを作成します。
※Textの名前はTitleとしました。
f:id:yagigame:20181024212838p:plain
※Textを作成すると以下画面のようになります。
f:id:yagigame:20181024220219p:plain

3. Titleをクリックし、画面右側のInspecterから、Pos.XとPos.Yを0にします。
f:id:yagigame:20181024213218p:plain

4.手順3と同じInspecterから、Anchors をクリックし、真ん中を選択します。
※これで、Titleが画面中央に表示されます!
f:id:yagigame:20181024213444p:plain

ここまでで、超シンプルなタイトル画面の完成となります。
f:id:yagigame:20181024215312p:plain

画面遷移を作る

ここからは、タイトル画面をタップし、ゲーム画面に遷移する部分を作っていきます!

5. Project > Create > C#scriptをクリックし、画面を遷移するスクリプトを作成します。
※スクリプトの名前は、ViewControllerとしました。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement; //シーンを遷移させるために必要

public class ViewController : MonoBehaviour {
	// Update is called once per frame
	void Update () {

        //タップされた場合
        if(Input.GetMouseButtonDown(0)){
            //ゲーム画面を呼び出す
            SceneManager.LoadScene("GameScene");
        }
	}
}

6. 作成したスクリプトを、Hierarchy viewのTitleにドラッグします。
7. File > Build Setting をクリックし、Build Setting画面を開きます。
8. Add Opens Scenesをクリックし、Title Sceneを追加します。
9. ゲーム起動時に最初に表示したいのは、タイトルシーンのため順番を入れ替えます。
※7 ~ 9を実施して、以下の画面のように設定されていればOKです!
f:id:yagigame:20181024220417p:plain

これで、タイトル画面をタップするとゲーム画面に遷移するようになりました!

実行してみましょう!

実行直後は、タイトル画面が表示されて
f:id:yagigame:20181024215312p:plain
タップすると、ゲーム画面が表示される!
f:id:yagigame:20181024215356p:plain
※ゲーム画面では、スワイプの速度が表示されます!

補足:スクリプトの説明

画面遷移を行うために、以下2つが必要となります!

  • using EnityEngine.SceneManagementを宣言し、画面遷移を行う処理を使えるようにする!
  • SceneManager.LoadScene("GameScene")で、ゲーム画面を読み込む!

今回も記事を読んで頂きありがとうございました!

【Unityゲーム】スワイプの速度を測るゲームを作る part.1

こんにちは!ヤギです!

今回は、スワイプの速度を測るゲームを作っていきます!
何回かの連載型として、最終的には、Google Playにリリースするところまで書きたいと思います!

作るゲームの概要

  • スワイプ速度を測ることが出来る!
  • Androidで動く!
  • タイトル画面からゲーム画面に遷移する!

それでは作っていきます!

※今回の記事は、スワイプの速度を測るところまでとなります。

1. Unityを起動し、新規プロジェクトを作成する。

2. Build SettingからAndroidにSwitch Platformする。

3. hierarchy > create > UI > Text をクリックする。
f:id:yagigame:20181023201817p:plain
※スワイプの速度を表示するためのTextを用意します!
※画面の中央に表示するために、Inspecter > Anchorから真ん中を選択しましょう。
f:id:yagigame:20181023210252p:plain

4. Project > create > c#scriptをクリックする。
※スワイプの速度を計測するためのスクリプトを作成します!
※スクリプト内に説明を記載いたしました!
f:id:yagigame:20181023201942p:plain

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class GameController : MonoBehaviour {

    
    Vector3 startPos; //タップした場所を記録
    Vector3 endPos; //指を離した場所を記録
    float dir = 0; //スワイプした距離を取得
    float time = 0; //スワイプした時間を取得
    float speed = 0;

    GameObject text;

    // Use this for initialization
    void Start () {
        this.text = GameObject.Find("Text");
	}
	
	// Update is called once per frame
	void Update () {

        //タップした場所と時間を取得する
        if(Input.GetMouseButtonDown(0)){
            this.startPos = Input.mousePosition;
            this.time = 0;
        }

        //スワイプ中の時間を取得する
        if(Input.GetMouseButton(0)){
            this.time += Time.deltaTime;
        }

        //指を離した場所を取得する
        if(Input.GetMouseButtonUp(0)){
            this.endPos = Input.mousePosition;

            //スワイプした距離を取得する
            this.dir = Mathf.Abs(Vector3.Distance(this.startPos, this.endPos));

            //速度を計算する
            this.speed = this.dir / this.time;

        }

        //速度を文字列に変換して表示する
        this.text.GetComponent<Text>().text = this.speed.ToString();
	}
}

5. 作成したスクリプトを、Hierarchy viewのTextにドラッグし紐づけます。
f:id:yagigame:20181023205853p:plain

6. シーンの名前をGameSceneとして保存します。
※次回以降、ゲームタイトル用のシーンを作ります。それと区別するためです!
ここまでで、スワイプの速度が表示されるようになりました!

完成!

実行し、スワイプすると画面の中央に速度が表示されると思います!
f:id:yagigame:20181023211051p:plain

補足:スクリプトの内容説明

速度を求めるために、距離と時間が必要になります!
以下の方法で速度を求めています。

  • 距離については、指でタップした場所から、指を離した場所までの距離を取得します。
  • 時間は、タップしたタイミングを0として、スワイプ中の経過時間を取得しています。
  • 距離と時間から速度を求め、文字列に変換し表示しています。

記事を読んで頂きありがとうございました!
次回は、タイトル用のシーンの作成と、タイトルシーンからゲームシーンへの遷移を書きたいと考えています!

これからも、宜しくお願いいたします!

【Unity tips】Unity でGoogle Admobの広告をつける方法

こんにちは!ヤギです!
記事を読んでいただきありがとうございます!

Google Admobの広告をつけたい!

今回の記事では、UnityでGoogle Admobの広告を表示するための方法を書いていきます!
※バナー形式の広告が表示されるようにしたいと思います!

早速作っていきましょう!

広告を表示するプロジェクトを作成

Unityを起動し、広告を表示するプロジェクトを作成します!

Unity以外の事前準備

1, Google Admobに登録する!
以下のサイトから、Google Admobに登録します。
www.google.co.jp

2. 登録したGoogle Admobのサイトに、広告を表示したいアプリを登録します!
※Google Admodから、アプリを追加をクリックすると、以下画面が表示されます。
今回は、Google Playに公開していないため、いいえを選択!
f:id:yagigame:20181022201416p:plain

3. 表示したい広告の種類を選択します!
※今回は、バナーを選択しました!
f:id:yagigame:20181022201447p:plain

ここまで実施すると、以下2つを入手できます!

  • アプリID: 広告を表示するアプリを指定
  • 広告ID :表示する広告を指定


4. 以下のリンクから、Unityで広告を表示するためのプラグインをダウンロードする!
github.com
※リンクを開いた後、下記画面の青枠内をクリックでプラグインをダウンロードできます!
f:id:yagigame:20181022202012p:plain

Unityで広告を表示する設定を行う

5. Assets > Import Pachkage > Custom Packageをクリックし、ダウンロードしたプラグインを、インポートする!
※全てにチェックをつけてインポートしましょう!
f:id:yagigame:20181022202511p:plain


6. 広告を表示するためのスクリプトを作成!
※アプリIDと広告IDは手順3で取得したIDを使用します!
ただし、テスト実行する際の広告IDは、以下のサイトのテスト用IDを使用しましょう!
Test Ads  |  Google AdMob > Mobile Ads SDK > Android  |  Google Developers

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds.Api; //Google Admobを使うために必要

public class GoogleAdmob : MonoBehaviour {

    private BannerView bannerView; 

    //初期化処理
    public void Start()
    {
        //先ほど取得したアプリIDを指定
        string appId = "アプリID";

        // 初期化
        MobileAds.Initialize(appId);

        this.RequestBanner();
    }


    //広告を表示する    
    private void RequestBanner()
    {
        //先ほど取得した広告IDを指定
        string adUnitId = "広告ID";

        //バナー広告を画面上部に表示する設定
        bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

        //広告を表示するリクエストを作成
        AdRequest request = new AdRequest.Builder().Build();

        //リクエストを投げて、広告を表示
        bannerView.LoadAd(request);
    }
}

7. 作成したスクリプトをGame Objectに紐付ける!
f:id:yagigame:20181022203717p:plain

8. Build SetringsからAndroid に Switch Platformする!
これで、画面にGoogle Admobの広告が表示されるようになりました!

完成!実機で確認!

実際の実行するとこのように広告が表示されます!
※確認するときは、Android端末をUSB接続して確認しました!
f:id:yagigame:20181022215553j:plain

今回の記事を読んで頂きありがとうございました!

これからも、Unityに関する記事を書いていきたいと思います!

Unity Adsのご紹介

今回のGoogle Admobの広告以外にも、Unity Adsという広告を表示するサービスもあります!
Unity Adsを表示する方法の記事と、実際にUnity Adsを動作を確認できるアプリをリリースしています!
よろしければ、こちらもご活用ください!
▼記事はこちら
yagigame.hatenablog.com
▼アプリはこちら
play.google.com

【2018年度版】超初心者がUnityで広告付きアプリを作ってみる!

こんにちは!ヤギです!

早速ですが、

  • Unityで広告付きアプリを作ってみたい!
  • Unityでアプリを作ったけど、広告の出し方がわからない!
  • UnityAds使ってみたいけど、どうやって使うんだろう?

このような、気持ちをお持ちの方に向けて、Unityに触った事のない私が、Unityで広告付きアプリを作った経験談を共有致します。

この記事読んで頂ければ、Unityで作ったアプリに広告を出すことがきっと出来るようになります!

まずは、自作で恐縮ですが、広告を表示するアプリからご紹介します!
play.google.com
※google playに公開しています!よかったら、完成イメージとして使ってみてください!
一見するとゲームみたいな見た目ですが、『Watch UnityAds』をタッチすると広告が表示されるだけのアプリです!

それでは作っていきましょう!

※今回の記事では、Unity上でボタンを押すと広告が表示されるところまで作ります!

【事前準備】
以下リンクから、Unity Adsに登録する!
unityads.jp


1. unityを起動し、新規プロジェクトを作成する!

2. hierarchy view → create → UI → Buttonをクリックし、ボタン(押下すると広告が表示されるようにする予定の)を作成する!
f:id:yagigame:20181021172749p:plain

3. 画面左上のwindow → General → Services とクリックする!
f:id:yagigame:20181021172933p:plain

4. 表示されたSevice画面のads をオンにする。英語で13歳以下対象かが聞かれるが、対象ではないのでチェックせず、Continueをクリックする!
f:id:yagigame:20181021173122p:plain


広告を表示するためのプログラムを作成していきます!

5. Project → Create → C#Script をクリックし、名前をButtonControllerとする!
f:id:yagigame:20181021173351p:plain

6. 以下の、広告を表示するためのコードを記述する!
f:id:yagigame:20181021174100p:plain

7. hierarchy view → Button に、広告を表示するための処理を紐付ける!
f:id:yagigame:20181021174906p:plain

8. Project → Build Settings → Androidを選択し、Swith Platformをクリックする!
f:id:yagigame:20181021182056p:plain


これで、ボタンをクリックした際に、広告が流れます!!実行ボタンを押してみましょう!
f:id:yagigame:20181021182113p:plain

いかがでしたでしょうか?
今回の記事では、ボタン押して広告を表示するアプリを作成する手順をまとめました。

次回以降、以下の内容で記事を書きたいと思います!

  • 実際にゲームを作ってみて、その過程をブログにする!
  • unity上で作ったアプリを、google playで公開するためには!

読んで頂きありがとうございました!

【超初心者】ブログを始めました!

はじめまして!ヤギと申します!

ブログは全くの未経験かつ、文章を書いて公開することなど、一切した事がないですが、始めてみました!

なぜ、始めたのか....

それは、いつかブログや、アプリ等でお小遣いが稼げたらいいなーと思ったからです!

同じ思いを持っている方が、きっといるのではないでしょうか!!!!!

そのような方たちに、超初心者の私の超リアルな経験談や失敗談をお届けしていきたいと思います!

記事の内容は、Unityで開発したアプリの事などを記事にしていきたいと考えています!!

この記事は、以下の手順で書いてみました!

1. スマホからはてなブログに会員登録!
2. 登録完了後の初期表示の画面の、記事を書くをクリック!
3. 表示された入力欄に文字を入力!

以上!!!!!!!
読んで頂きありがとうございました!

これから、よろしくお願い致します!