【Unityゲーム】スワイプの速度を測るゲームを作る part.1
こんにちは!ヤギです!
今回は、スワイプの速度を測るゲームを作っていきます!
何回かの連載型として、最終的には、Google Playにリリースするところまで書きたいと思います!
作るゲームの概要
- スワイプ速度を測ることが出来る!
- Androidで動く!
- タイトル画面からゲーム画面に遷移する!
それでは作っていきます!
※今回の記事は、スワイプの速度を測るところまでとなります。1. Unityを起動し、新規プロジェクトを作成する。
2. Build SettingからAndroidにSwitch Platformする。
3. hierarchy > create > UI > Text をクリックする。
※スワイプの速度を表示するためのTextを用意します!
※画面の中央に表示するために、Inspecter > Anchorから真ん中を選択しましょう。
4. Project > create > c#scriptをクリックする。
※スワイプの速度を計測するためのスクリプトを作成します!
※スクリプト内に説明を記載いたしました!
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にドラッグし紐づけます。
6. シーンの名前をGameSceneとして保存します。
※次回以降、ゲームタイトル用のシーンを作ります。それと区別するためです!
ここまでで、スワイプの速度が表示されるようになりました!
完成!
実行し、スワイプすると画面の中央に速度が表示されると思います!補足:スクリプトの内容説明
速度を求めるために、距離と時間が必要になります!以下の方法で速度を求めています。
- 距離については、指でタップした場所から、指を離した場所までの距離を取得します。
- 時間は、タップしたタイミングを0として、スワイプ中の経過時間を取得しています。
- 距離と時間から速度を求め、文字列に変換し表示しています。
記事を読んで頂きありがとうございました!
次回は、タイトル用のシーンの作成と、タイトルシーンからゲームシーンへの遷移を書きたいと考えています!
これからも、宜しくお願いいたします!