আপনার দৃশ্যে একটি 3D বস্তুর সঠিক স্থান নির্ধারণ করতে একটি রেকাস্ট বা হিট-টেস্ট করুন। সঠিক বসানো নিশ্চিত করে যে AR সামগ্রী যথাযথ (আপাত) আকারে রেন্ডার করা হয়েছে।
হিট ফলাফল প্রকার
একটি হিট-টেস্ট চারটি ভিন্ন ধরনের হিট ফলাফল দিতে পারে, যেমনটি নিম্নলিখিত সারণীতে দেখানো হয়েছে।
ফলাফল টাইপ হিট | বর্ণনা | ওরিয়েন্টেশন | কেস ব্যবহার করুন | পদ্ধতি কল |
---|---|---|---|---|
গভীরতা | একটি বিন্দুর সঠিক গভীরতা এবং অভিযোজন নির্ধারণ করতে সমগ্র দৃশ্য থেকে গভীরতার তথ্য ব্যবহার করে | 3D পৃষ্ঠের লম্ব | একটি নির্বিচারে পৃষ্ঠে একটি ভার্চুয়াল বস্তু রাখুন (শুধু মেঝে এবং দেয়ালে নয়) | এটি কাজ করার জন্য Depth সক্ষম করা আবশ্যক।ARRaycastManager.Raycast(Vector2 screenPoint, List<ARRaycastHit> hitResults, TrackableType trackableTypes TrackableType.Depth) |
সমতল | একটি বিন্দুর সঠিক গভীরতা এবং অভিযোজন নির্ধারণ করতে অনুভূমিক এবং/অথবা উল্লম্ব পৃষ্ঠে আঘাত করে | 3D পৃষ্ঠের লম্ব | সমতলের সম্পূর্ণ জ্যামিতি ব্যবহার করে একটি বস্তুকে সমতলে (মেঝে বা দেয়াল) রাখুন। অবিলম্বে সঠিক স্কেল প্রয়োজন। ডেপথ হিট-টেস্টের জন্য ফলব্যাক | ARRaycastManager.Raycast(Vector2 screenPoint, List<ARRaycastHit> hitResults, TrackableType trackableTypes TrackableType.PlaneWithinPolygon) |
বৈশিষ্ট্য বিন্দু | একটি বিন্দুর সঠিক অবস্থান এবং অভিযোজন নির্ধারণ করতে ব্যবহারকারীর ট্যাপের বিন্দুর চারপাশে ভিজ্যুয়াল বৈশিষ্ট্যের উপর নির্ভর করে | 3D পৃষ্ঠের লম্ব | একটি নির্বিচারে পৃষ্ঠে একটি বস্তু রাখুন (শুধু মেঝে এবং দেয়ালে নয়) | ARRaycastManager.Raycast(Vector2 screenPoint, List<ARRaycastHit> hitResults, TrackableType trackableTypes TrackableType.FeaturePoint) |
ক্রমাগত রেকাস্ট (তাত্ক্ষণিক বসানো) | কন্টেন্ট রাখার জন্য স্ক্রীন স্পেস ব্যবহার করে। প্রাথমিকভাবে অ্যাপ দ্বারা প্রদত্ত আনুমানিক গভীরতা ব্যবহার করে। অবিলম্বে কাজ করে, কিন্তু ARCore প্রকৃত দৃশ্যের জ্যামিতি নির্ধারণ করতে সক্ষম হলে ভঙ্গি এবং প্রকৃত গভীরতা পরিবর্তিত হবে | +Y নির্দেশ করছে, অভিকর্ষের বিপরীতে | প্লেনের সম্পূর্ণ জ্যামিতি ব্যবহার করে একটি সমতলে (মেঝে বা প্রাচীর) একটি বস্তু রাখুন যেখানে দ্রুত স্থান নির্ধারণ করা গুরুত্বপূর্ণ, এবং অভিজ্ঞতা অজানা প্রাথমিক গভীরতা এবং স্কেল সহ্য করতে পারে | ARRaycastManager.AddRaycast(Vector2 screenPoint, float estimatedDistance) |
একটি প্রমিত raycast সঞ্চালন
একটি রেকাস্ট (হিট-টেস্ট) করতে ARRaycastManager.Raycast(Vector2, List<ARRaycastHit>, TrackableType)
এ কল করুন। ARRaycastManager
সমস্ত TrackableType
s সমর্থন করে।
var touch = Input.GetTouch(0);
if (touch.phase != TouchPhase.Began)
return;
// Raycast against planes and feature points.
const TrackableType trackableTypes =
TrackableType.FeaturePoint |
TrackableType.PlaneWithinPolygon;
List<ARRaycastHit> hits = new List<ARRaycastHit>();
// Perform the raycast.
if (raycastManager.Raycast(touch.position, hits, trackableTypes))
{
// Raycast hits are sorted by distance, so the first one will be the closest hit.
var hit = hits[0];
// Do something with hit.
}
একটি নির্বিচারে রশ্মি এবং দিক ব্যবহার করে একটি রেকাস্ট পরিচালনা করুন
রেকাস্টগুলিকে সাধারণত ডিভাইস বা ডিভাইস ক্যামেরা থেকে রশ্মি হিসাবে গণ্য করা হয়, তবে আপনি স্ক্রিন-স্পেস পয়েন্টের পরিবর্তে বিশ্ব স্থান স্থানাঙ্কে একটি নির্বিচারে রশ্মি ব্যবহার করে রেকাস্ট পরিচালনা করতে Raycast(Ray, List<ARRaycastHit>, TrackableType)
ব্যবহার করতে পারেন।
একটি ARRaycastHit
ব্যবহার করে একটি অ্যাঙ্কর তৈরি করুন
আপনার একবার রেকাস্ট হিট হয়ে গেলে, একটি অ্যাঙ্কর তৈরি করতে GameObject.AddComponent<ARAnchor>
ব্যবহার করুন এবং ইনপুট হিসাবে raycast হিট ব্যবহার করে আপনার GameObject
এ একটি উপাদান হিসাবে যোগ করুন। ARAnchor
উপাদান ক্রমাগত গেম অবজেক্টের Transform
আপডেট করবে, যাতে গেম অবজেক্টটি হিট ফলাফলের জন্য অন্তর্নিহিত Trackable
সাথে সংযুক্ত থাকে।
ক্রমাগত রেকাস্ট (তাত্ক্ষণিক বসানো)
আপনার দৃশ্যে AR কন্টেন্ট রাখার জন্য একটি নতুন ARRaycast
তৈরি করার জন্য ক্রমাগত রেকাস্টগুলি একটি স্ক্রীন অবস্থান এবং একটি পৃষ্ঠের আনুমানিক দূরত্ব ইনপুট হিসাবে ব্যবহার করে। ARCore-এ, এটি ইনস্ট্যান্ট প্লেসমেন্ট নামে পরিচিত।
ARRaycastManager.AddRaycast()
কল করুন একটি ARRaycast
তৈরি করতে যা স্বয়ংক্রিয়ভাবে আপডেট হতে থাকে যতক্ষণ না আপনি ARRaycastManager.RemoveRaycast()
কল করেন বা ARRaycastManager
অক্ষম করেন৷
প্রাথমিকভাবে, ARRaycast
এর দূরত্ব হবে AddRaycast()
কলে প্রদত্ত দূরত্ব। একবার ARCore স্থানীয় জ্যামিতি ম্যাপ করে এবং একটি ছেদকারী সমতল খুঁজে পেলে, দূরত্বটি প্রকৃত দূরত্বে আপডেট করা হয়। দূরত্বের পরিবর্তন বস্তুর আপাত "আকার" বা অনুভূত স্কেলকে প্রভাবিত করতে পারে।