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討論