এআর ফাউন্ডেশনের জন্য ইনস্ট্যান্ট প্লেসমেন্ট ডেভেলপার গাইড

আপনার নিজের অ্যাপ্লিকেশানগুলিতে ইনস্ট্যান্ট প্লেসমেন্ট API , বা ক্রমাগত রেকাস্টগুলি কীভাবে ব্যবহার করবেন তা শিখুন৷

পূর্বশর্ত

এগিয়ে যাওয়ার আগে নিশ্চিত করুন যে আপনি মৌলিক AR ধারণা এবং কীভাবে একটি ARCore সেশন কনফিগার করবেন তা বুঝতে পেরেছেন।

ধারণার নাম

নির্দিষ্ট ধারণা এবং পদ্ধতির নাম AR ফাউন্ডেশন এবং ARCore SDK for Unity-এর মধ্যে আলাদা হতে পারে। এগুলি সহজ রেফারেন্সের জন্য নীচের টেবিলে তালিকাভুক্ত করা হয়েছে।

এআর ফাউন্ডেশন ঐক্যের জন্য ARCore SDK
ক্রমাগত raycasts ইনস্ট্যান্ট প্লেসমেন্ট
ARRaycastManager.AddRaycast(Vector2, float) Frame.RaycastInstantPlacement(float, float, float, out TrackableHit)
ARRaycast TrackableHit
(কোন সমতা নেই) InstantPlacementPoint
ARRaycast.trackingState InstantPlacementPointTrackingMethod

পূর্বশর্ত

এই নির্দেশিকা অনুমান করে যে আপনি ইতিমধ্যেই ইউনিটি ইনস্টল এবং কনফিগার করেছেন। যদি না হয়, ইনস্টলেশন এবং সেটআপের ধাপগুলির জন্য এআর ফাউন্ডেশনের জন্য ARCore এক্সটেনশনের সাথে শুরু করা দেখুন।

ARRaycastManager এর সাথে একটি নতুন সেশন কনফিগার করুন

এআর ফাউন্ডেশন প্যাকেজের সাথে ইনস্ট্যান্ট প্লেসমেন্ট (অস্থির রেকাস্ট) বাক্সের বাইরে পাওয়া যায়। আপনার দৃশ্য সেট আপ করতে এই পদক্ষেপগুলি অনুসরণ করুন৷

AR ফাউন্ডেশন 4.x

  1. পূর্বনির্ধারিত গেম অবজেক্ট AR Session Origin এবং AR Session যোগ করুন।

  2. AR Session Origin গেম অবজেক্টে AR Raycast Manager কম্পোনেন্ট যোগ করুন।

যখন Raycast প্রিফ্যাব নাল না হয়, তখন ARRaycastManager প্রিফ্যাবকে ইনস্ট্যান্টিয়েট করবে এবং স্বয়ংক্রিয়ভাবে ARRaycast এর ভঙ্গির সাথে এর পোজ সিঙ্ক করবে।

AR ফাউন্ডেশন 5.x

  1. পূর্বনির্ধারিত গেম অবজেক্ট XR Origin এবং AR Session যোগ করুন।

  2. XR Origin গেম অবজেক্টে AR Raycast Manager উপাদান যোগ করুন।

যখন Raycast প্রিফ্যাব নাল না হয়, তখন 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 ফিরে আসবে না।