एआर फ़ाउंडेशन के लिए झटपट प्लेसमेंट डेवलपर गाइड

अपने ऐप्लिकेशन में, Instant Placement API या स्थायी रेकास्ट का इस्तेमाल करने का तरीका जानें.

ज़रूरी शर्तें

आगे बढ़ने से पहले, पक्का करें कि आपको एआर से जुड़े बुनियादी कॉन्सेप्ट और ARCore सेशन को कॉन्फ़िगर करने का तरीका पता हो.

कॉन्सेप्ट के नाम

AR Foundation और Unity के लिए ARCore SDK टूल में, कुछ कॉन्सेप्ट और तरीकों के नाम अलग-अलग हो सकते हैं. इन्हें आसानी से समझने के लिए, यहां दी गई टेबल में दिखाया गया है.

AR Foundation Unity के लिए ARCore SDK टूल
स्थायी रेकास्ट Instant Placement
ARRaycastManager.AddRaycast(Vector2, float) Frame.RaycastInstantPlacement(float, float, float, out TrackableHit)
ARRaycast TrackableHit
(कोई इक्विवेलेंट नहीं है) InstantPlacementPoint
ARRaycast.trackingState InstantPlacementPointTrackingMethod

ज़रूरी शर्तें

इस गाइड में यह मान लिया गया है कि आपने Unity को पहले ही इंस्टॉल और कॉन्फ़िगर कर लिया है. अगर आपने ऐसा नहीं किया है, तो इंस्टॉल करने और सेटअप करने के चरणों के लिए, AR Foundation के लिए ARCore Extensions का इस्तेमाल शुरू करना लेख पढ़ें.

ARRaycastManager के साथ नया सेशन कॉन्फ़िगर करना

AR Foundation पैकेज के साथ, Instant Placement (स्थायी रेकास्ट) की सुविधा तुरंत उपलब्ध हो जाती है. अपनी सीन को सेट अप करने के लिए, यह तरीका अपनाएं.

AR Foundation 4.x

  1. पहले से तय किए गए गेम ऑब्जेक्ट AR Session Origin और AR Session जोड़ें.

  2. AR Raycast Manager कॉम्पोनेंट को AR Session Origin गेम ऑब्जेक्ट में जोड़ें.

जब Raycast Prefab की वैल्यू null नहीं होती है, तब ARRaycastManager प्रीफ़ैब को इंस्टैंशिएट करेगा और उसके पोज़ को ARRaycastके पोज़ के साथ अपने-आप सिंक कर देगा.

AR Foundation 5.x

  1. पहले से तय किए गए गेम ऑब्जेक्ट XR Origin और AR Session जोड़ें.

  2. AR Raycast Manager कॉम्पोनेंट को XR Origin गेम ऑब्जेक्ट में जोड़ें.

जब Raycast Prefab की वैल्यू null नहीं होती है, तब ARRaycastManager प्रीफ़ैब को इंस्टैंशिएट करेगा और उसके पोज़ को ARRaycastके पोज़ के साथ अपने-आप सिंक कर देगा.

AR Foundation 6.x

  1. पहले से तय किए गए गेम ऑब्जेक्ट XR Origin और AR Session जोड़ें.

  2. AR Raycast Manager कॉम्पोनेंट को XR Origin गेम ऑब्जेक्ट में जोड़ें.

जब Raycast Prefab की वैल्यू null नहीं होती है, तब ARRaycastManager प्रीफ़ैब को इंस्टैंशिएट करेगा और उसके पोज़ को ARRaycastके पोज़ के साथ अपने-आप सिंक कर देगा.

कोई ऑब्जेक्ट प्लेस करना

नए ARCore सेशन में, हिट टेस्ट करने के लिए ARRaycastManager.AddRaycast(Vector2, float) का इस्तेमाल करें.

public ARRaycastManager RaycastManager; // set from the Editor Inspector.

void Update()
{
    Touch touch;
    if (Input.touchCount < 1 || (touch = Input.GetTouch(0)).phase != TouchPhase.Began)
    {
        return;
    }

    if (EventSystem.current.IsPointerOverGameObject(touch.fingerId))
    {
        return;
    }

    ARRaycast raycast = RaycastManager.AddRaycast(touch.position, _estimateDistance);
    if (raycast != null)
    {
        // You can instantiate a 3D object here if you haven’t set Raycast Prefab in the scene.
        
    }
}

ARRaycast के ट्रैकिंग स्टेटस को मॉनिटर करना

अगर ARCore के पास सटीक 3D पोज़ है, तो ARRaycast.trackingState की वैल्यू Tracking होगी. ऐसा न होने पर, इसकी वैल्यू Limited होगी. हालांकि, ARCore के पास सटीक 3D पोज़ होने पर, इसकी वैल्यू Tracking में बदल जाएगी. ट्रैकिंग स्टेटस की वैल्यू Tracking होने के बाद, यह Limited में वापस नहीं बदलेगी.