ARFoundationクイックエントリー-11 Raycasting

1683 ワード

一、Raycasting概要


Raycasting:放射線投射とは、3次元空間から無限長の放射線を一方向に放出し、平面に衝突すると衝突から平面の集合に戻ることを意味します.
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.ARFoundation;
using UnityEngine.XR.ARSubsystems;

///  
[RequireComponent(typeof(ARRaycastManager))]
public class ARRaycastTest : MonoBehaviour
{
    private static List Hits;
    private ARRaycastManager mRaycastManager;

    private void Start()
    {
        Hits = new List();
        mRaycastManager = GetComponent();
    }

    // , , 
    public bool Detect(Vector2 touchPs,out Vector3 ps)
    {
        if (mRaycastManager.Raycast(touchPs, Hits, TrackableType.PlaneWithinPolygon | TrackableType.PlaneWithinBounds))
        {
            var hitPose = Hits[0].pose;
            ps = hitPose.position;
            return true;
        }

        ps = Vector3.zero;
        return false;
    }
   
}

 

二、ARRaycastHit


1.ARRaycastHit:衝突物体を発射する情報を保存する
2.Distance:floatタイプ、放射線源から命中点までの距離を取得
3.trackableId:stringタイプ、ヒットオブジェクトの一意の識別子
4.Pose:オブジェクトに命中する姿勢
5.hitType:TrackableTypeタイプ、ヒットオブジェクトのタイプ
6.sessionRelativeDistance:Session空間における放射線の始点から衝突点までの距離
7.sessionRelativePose:Session空間での衝突点の姿勢
 

おすすめ学習資料


1.Unity公式API:技術を学び、公式チュートリアルは最も権威がある
2.ARFoundation Samples:ARFoundationサンプルアドレス
3.ARFoundationの道:著者:yolon 3000、現在見つかったARFoundationチュートリアルの中で最も包括的な
AR技術に興味のある友人を歓迎して、QQ群に参加します:883655607討論