আপনার নিজের অ্যাপ্লিকেশানগুলিতে ইনস্ট্যান্ট প্লেসমেন্ট 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
পূর্বনির্ধারিত গেম অবজেক্ট AR Session Origin এবং AR Session যোগ করুন।
AR Session Origin গেম অবজেক্টে AR Raycast Manager কম্পোনেন্ট যোগ করুন।
যখন Raycast প্রিফ্যাব নাল না হয়, তখন ARRaycastManager
প্রিফ্যাবকে ইনস্ট্যান্টিয়েট করবে এবং স্বয়ংক্রিয়ভাবে ARRaycast
এর ভঙ্গির সাথে এর পোজ সিঙ্ক করবে।
AR ফাউন্ডেশন 5.x
পূর্বনির্ধারিত গেম অবজেক্ট XR Origin এবং AR Session যোগ করুন।
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
ফিরে আসবে না।