今回はよく下手くそな広告にあるスワイプゲーのようなスワイプ操作の作り方を紹介します。
Unity
上記のようなスワイプで操作する仕様を作りたいと思います。
まずはCubeとCapsuleを用意して道と人を作りましょう。
次にSwipe.csというスクリプトを作ってください。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Swipe : MonoBehaviour { // 最初にタップした位置 Vector3 StartPos; // スワイプした時の移動スピード public float SwipeSpeed; // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { // もし左クリックされたら(タップされたら) if (Input.GetMouseButtonDown(0)) { // Input.mousePosition(最初にタップした位置)をStartPos(最初にタップした位置の保管場所)に代入 StartPos = Input.mousePosition; } if (Input.GetMouseButton(0)) { // (現在タップしている位置) - (最初に押した位置の保管場所) の結果をresultに代入 Vector3 result = Input.mousePosition - StartPos; // Input.mousePositionを代入してStartPosの位置を更新する StartPos = Input.mousePosition; // 現在の位置 + new Vector3のx軸にresultを代入 * speed; Vector3 CarPos = transform.position + new Vector3(result.x / Screen.height, 0, 0) * SwipeSpeed; // CarPosの結果をtransform.positionに代入して動かす transform.position = CarPos; } } }
そしたらこのコードをSwipe.csにコピーしてください。
そしてSwipe.csをCapsuleにアタッチしてください。その後SwipeSpeedを1に設定してください。
そして実行してみるとスワイプできるようになったと思います。
あとはCameraをCapsuleの子要素にしてあげれば完成です。
仕組み
仕組みとしては、StartPosに最初にタッチした位置を記録して、指を動かした分だけ物体も動かされるって感じです。
結構単純な仕掛けなので是非是非使ってみてください。