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

सीखें कि कैसे इंस्टैंट प्लेसमेंट एपीआई या आपके ऐप्लिकेशन में, परसिस्टेंट रेकास्ट

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

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

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

कुछ कॉन्सेप्ट और तरीकों के नाम, एआर फ़ाउंडेशन और Unity के लिए ARCore SDK टूल. आसान रेफ़रंस के लिए, इनकी जानकारी नीचे टेबल में दी गई है.

एआर फ़ाउंडेशन Unity के लिए ARCore SDK टूल
बार-बार होने वाले रेकास्ट झटपट प्लेसमेंट
ARRaycastManager.AddRaycast(Vector2, float) Frame.RaycastInstantPlacement(float, float, float, out TrackableHit)
ARRaycast TrackableHit
(कोई समतुल्य नहीं) InstantPlacementPoint
ARRaycast.trackingState InstantPlacementPointTrackingMethod

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

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

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

एआर के साथ, झटपट प्लेसमेंट (परसिस्टेंट रेकास्ट) अलग से उपलब्ध है फ़ाउंडेशन पैकेज. अपना सीन सेट अप करने के लिए, यह तरीका अपनाएं.

एआर फ़ाउंडेशन 4.x

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

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

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

एआर फ़ाउंडेशन 5.x

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

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

जब Raycast Prefab शून्य नहीं होता है, तो 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.