LoginSignup
2
0

More than 1 year has passed since last update.

Lightship ARDK タッチ位置の取得方法

Posted at

前回はベースプロジェクトの作り方を書きました。

今回は Lightship ARDK のタッチ位置の取得方法を記載します。

ゴール

この記事では画面のタッチした位置を取得して、タッチした位置に文字を表示するアプリを通して、タッチ位置の取得方法を記載します。

タッチ位置を取得するAPI

ARFoundation でタッチ位置を取得するには、Input.GetTouch() を使用しますが、ARDK ではクロスプラットフォームに対応した ARDK の API である PlatformAgnosticInput を使用してタッチ位置を取得します。

Niantic AR Development Kit (ARDK): PlatformAgnosticInput

取得方法

  1. ベースプロジェクトの作り方の通りプロジェクトを作成します。
  2. タッチした位置に表示する Text を作成します。今回は下図のようにしてみました。

    image.png

  3. スクリプトを作成し、下記のコードを書きます。

    TouchManager.cs
    using Niantic.ARDK.Utilities;
    using UnityEngine;
    
    namespace TouchInput
    {
        public class TouchManager : MonoBehaviour
        {
            [SerializeField]
            private GameObject _obj;
    
            private void Start()
            {
                _obj.SetActive(false);
            }
    
            private void Update()
            {
                // タッチされた数を確認
                if (PlatformAgnosticInput.touchCount <= 0)
                {
                    return;
                }
    
                // スクリーン0のタッチインスタンスを取得
                var touch = PlatformAgnosticInput.GetTouch(0);
                // タッチかどうか判定
                if (touch.phase == TouchPhase.Began)
                {
                    _obj.SetActive(true);
                    _obj.transform.position = touch.position;
                }
            }
        }
    }
    
  4. 作成したスクリプトを適当なオブジェクト(空オブジェクトから作成したTouchManager等)にアタッチします。

    image.png

  5. InspectorでTouchManagerスクリプトのObjにテキストを設定します。

    image.png

  6. デバイスで実行します。

  7. 画面をタッチすると、タッチした位置に文字が表示されます。

応用先

  • 平面検知と IARFrameのHitTest を組み合わせればタッチした平面を取得できます。
  • Semantic Segmentationと IARFrameのHitTest を組み合わせればタッチしたピクセルのチャネルを取得できます。

まとめ

タッチを取得するときは PlatformAgnosticInput を使用すると取得することができます。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0