محتوای AR باید به درستی قرار داده شود و اندازه آن در یک صحنه ترکیب شود. مانند اشیاء دنیای واقعی، اشیای مجازی که دورتر هستند باید کوچکتر به نظر برسند. شما می توانید یک تست ضربه (یا یک raycast در AR Foundation for Unity) برای تعیین قرارگیری صحیح یک شی سه بعدی در صحنه خود انجام دهید. قرارگیری صحیح تضمین می کند که محتوای AR در اندازه مناسب (ظاهری) ارائه می شود.
تستهای آماری تقاطعهایی بین هندسه سهبعدی دنیای واقعی و یک پرتو مجازی متشکل از مبدأ و جهت پیدا میکنند. پرتوهایی با دوربین دستگاه به عنوان مبدأ بیشتر مورد استفاده قرار می گیرند، اگرچه ARCore شامل یک API برای انجام تست ضربه با یک پرتو دلخواه در مختصات فضای جهان است.
تصور کنید که یک پرتو از دوربین دستگاه کاربر نشات میگیرد که به جلو امتداد مییابد تا زمانی که به هندسه سهبعدی صحنه، مانند کف، دیوار یا شیء برخورد کند. هنگامی که این اتفاق می افتد، لیستی از نتایج ضربه یا تقاطع هایی با هندسه صحنه شناسایی شده دریافت می کنید. فهرست بر اساس فاصله از دستگاه، با نزدیکترین تقاطع ابتدا مرتب شده است. این مهم است زیرا به طور کلی نمی توانید اشیاء را در پشت اشیاء دیگر مسدود کنید، بنابراین در بیشتر مواقع اولین نتیجه مهم ترین است.
محتویات یک نتیجه ضربه
یک نتیجه ضربه فردی به صورت لیستی با اطلاعات زیر برای هر نتیجه برگردانده می شود:
فاصله از مبدأ پرتو، بر حسب متر
پوز (موقعیت و جهت) نتیجه ضربه
هندسه سه بعدی که به آن ضربه زدید، به شکل Trackable
چهار نوع نتیجه ضربه وجود دارد: نتایج عمق، صفحه، نقطه مشخصه و نتایج قرار دادن فوری. همانطور که در جدول زیر نشان داده شده است، هر کدام موارد استفاده و معاوضه خاص خود را دارند.
نوع نتیجه را بزنید
شرح
گرایش
مورد استفاده
عمق
از اطلاعات عمق کل صحنه برای تعیین عمق و جهت صحیح یک نقطه استفاده می کند
عمود بر سطح سه بعدی
یک شی مجازی را روی یک سطح دلخواه (نه فقط روی زمین و دیوار) قرار دهید.
سطح
برای تعیین عمق و جهت صحیح نقطه، به سطوح افقی و/یا عمودی برخورد می کند
عمود بر سطح سه بعدی
یک شی را با استفاده از هندسه کامل هواپیما روی یک صفحه (کف یا دیوار) قرار دهید. فوراً به مقیاس صحیح نیاز دارید. جایگزینی برای آزمون ضربه عمق
نقطه ویژگی
برای تعیین موقعیت و جهت گیری صحیح یک نقطه، به ویژگی های بصری در اطراف نقطه ضربه کاربر متکی است
عمود بر سطح سه بعدی
یک شی را روی یک سطح دلخواه (نه فقط روی زمین و دیوار) قرار دهید.
قرار دادن فوری (رایکست مداوم)
از فضای صفحه برای قرار دادن محتوا استفاده می کند. در ابتدا از عمق تخمینی ارائه شده توسط برنامه استفاده می کند. فورا کار می کند، اما زمانی که ARCore بتواند هندسه صحنه واقعی را تعیین کند ژست و عمق واقعی تغییر می کند.
+Y به سمت بالا، مخالف گرانش
یک شی را بر روی یک صفحه (کف یا دیوار) با استفاده از هندسه کامل هواپیما قرار دهید، جایی که قرارگیری سریع بسیار مهم است، و تجربه می تواند عمق و مقیاس اولیه ناشناخته را تحمل کند.
تاریخ آخرین بهروزرسانی 2025-07-24 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-07-24 بهوقت ساعت هماهنگ جهانی."],[[["\u003cp\u003eARCore hit-tests, or raycasts, help you determine the correct placement and scale of virtual objects in the real world by finding intersections between a ray and the scene's geometry.\u003c/p\u003e\n"],["\u003cp\u003eHit results provide distance, pose, and trackable information, allowing you to realistically anchor 3D content.\u003c/p\u003e\n"],["\u003cp\u003eThere are four hit result types: Depth, Plane, Feature Point, and Instant Placement, each with different use cases and tradeoffs depending on the desired outcome and device capabilities.\u003c/p\u003e\n"],["\u003cp\u003eDepth hit results, available on Depth supported devices, utilize depth information for precise object placement on any surface, while Plane hit results are suitable for floors and walls.\u003c/p\u003e\n"],["\u003cp\u003eFeature Point hit results rely on visual features, and Instant Placement allows for fast content placement even with initially unknown depth and scale.\u003c/p\u003e\n"]]],[],null,["# Hit-tests place virtual objects in the real world\n\n**Platform-specific guides** \n\n### Android (Kotlin/Java)\n\n- [Developer guide](/ar/develop/java/hit-test/developer-guide)\n\n### Android NDK (C)\n\n- [Developer guide](/ar/develop/c/hit-test/developer-guide)\n\n### Unity (AR Foundation)\n\n- [Developer guide](/ar/develop/unity-arf/hit-test/developer-guide)\n\nYour browser does not support the video tag.\n\nAR content must be correctly placed and sized to blend into a scene. Like real-world objects, virtual objects that are further away should appear smaller. You can perform a **hit-test** (or a **raycast** in AR Foundation for Unity) to determine the correct placement of a 3D object in your scene. Correct placement ensures that the AR content is rendered at the appropriate (apparent) size.\n\nHit-tests find intersections between either real-world 3D geometry and a virtual ray consisting of an origin and direction. Rays with the device's camera as the origin are used most commonly, though ARCore includes an API for performing hit-tests with an arbitrary ray in world space coordinates.\n\nImagine that there is a ray originating from a user's device camera that extends forward until it hits the 3D geometry of the scene, such as a floor, wall, or object. Once this happens, you receive a list of **hit results**, or intersections with detected scene geometry. The list is sorted by distance from the device, with the nearest intersection first. This is important because generally you can't see objects occluded behind other objects, so most of the time the first result is the most significant.\n| **Note:** Hit-tests are typically performed as rays from the device or device camera, but it is possible to have an arbitrary ray origin and direction.\n\nContents of a hit result\n------------------------\n\nAn individual hit result is returned as a list with the following information for each result:\n\n- Distance from the ray origin, in meters\n- Pose (position and orientation) of the hit result\n- The 3D geometry that you hit, in the form of a Trackable\n\nYou can then use the desired hit result to [realistically place your 3D content using an Anchor](/ar/develop/anchors).\n\nHit result types\n----------------\n\nThere are four types of hit results: Depth, plane, feature point, and Instant Placement results. Each has its own use cases and tradeoffs, as shown by the following table.\n| **Note:** Depth hit results require [Depth supported devices](/ar/devices#google_play_devices). On non-Depth supported devices, Depth supported devices that do not have depth data yet or on sessions where Depth has been disabled, use plane hit results instead.\n\n| Hit result type | Description | Orientation | Use case |\n|----------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Depth | Uses depth information from the entire scene to determine a point's correct depth and orientation | Perpendicular to the 3D surface | Place a virtual object on an arbitrary surface (not just on floors and walls) |\n| Plane | Hits horizontal and/or vertical surfaces to determine a point's correct depth and orientation | Perpendicular to the 3D surface | Place an object on a plane (floor or wall) using the plane's full geometry. Need correct scale immediately. Fallback for the Depth hit-test |\n| Feature point | Relies on visual features around the point of a user tap to determine a point's correct position and orientation | Perpendicular to the 3D surface | Place an object on an arbitrary surface (not just on floors and walls) |\n| Instant Placement (Persistent Raycast) | Uses screen space to place content. Initially uses estimated depth provided by the app. Works instantly, but pose and actual depth will change once ARCore is able to determine actual scene geometry | +Y pointing up, opposite to gravity | Place an object on a plane (floor or wall) using the plane's full geometry where fast placement is critical, and the experience can tolerate unknown initial depth and scale |\n\nDevice compatibility\n--------------------\n\nHit-tests work on all [ARCore supported devices](/ar/devices), but Depth hit-tests will require [Depth supported devices](/ar/devices#google_play_devices).\n\nUse hit results to place AR content\n-----------------------------------\n\nOnce you have a hit result, you can use its pose as input to [place AR content](/ar/develop/anchors) in your scene."]]