【Unity】PC・スマホ対応のスワイプの作り方

Unity

今回はよく下手くそな広告にあるスワイプゲーのようなスワイプ操作の作り方を紹介します。

Unity

運命走行

上記のようなスワイプで操作する仕様を作りたいと思います。

まずはCubeCapsuleを用意してを作りましょう。

次に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に最初にタッチした位置を記録して、指を動かした分だけ物体も動かされるって感じです。

結構単純な仕掛けなので是非是非使ってみてください。

タイトルとURLをコピーしました