ইউনিটির এআর ফাউন্ডেশন ব্যবহার করে একটি এআর গেম তৈরি করুন

1. ওভারভিউ

ARCore হল স্মার্টফোনে অগমেন্টেড রিয়েলিটি এক্সপেরিয়েন্স তৈরি করার জন্য Google এর ফ্রেমওয়ার্ক। ক্রস-প্ল্যাটফর্ম এআর অ্যাপ্লিকেশন তৈরি করতে আপনি ইউনিটির এআর ফাউন্ডেশন ব্যবহার করতে পারেন।

আপনি কি নির্মাণ করবেন

এই কোডল্যাবে, আপনি AR ফাউন্ডেশন ব্যবহার করে একটি সাধারণ গেম তৈরি করবেন। গেমটির লক্ষ্য হল একটি গাড়ি ব্যবহার করে প্যাকেজ সংগ্রহ করা যা আপনি আপনার হ্যান্ডহেল্ড ডিভাইস ব্যবহার করে নিয়ন্ত্রণ করেন।

যাইহোক, এটি একটি সম্পূর্ণ ভার্চুয়াল জগতে ঘটবে না! প্লেয়ারের চারপাশের পরিবেশ বুঝতে পারে এমন একটি গেম তৈরি করে আপনি একটি নতুন ধরনের খেলোয়াড়ের অভিজ্ঞতা তৈরি করতে শারীরিক পরমাণু এবং ডিজিটাল বিটগুলিকে মিশ্রিত করবেন।

এই কোডল্যাবের শেষে, আপনার গেমটি সক্ষম হবে:

  • বাস্তব-বিশ্বের প্লেনগুলি সনাক্ত করুন এবং এটির উপর একটি খেলার ক্ষেত্র আঁকুন।
  • ক্যামেরার ভিউ থেকে রশ্মি নিক্ষেপ করুন এবং প্লেনের সাথে ছেদ সনাক্ত করুন।
  • আপনার গেমকে অতিরিক্ত বাস্তবতা দিতে বাস্তব-বিশ্বের আলোর অবস্থার প্রতি প্রতিক্রিয়া দেখান।

আপনি কি শিখবেন

  • ইউনিটির এআর ফাউন্ডেশন ব্যবহার করে এমন একটি প্রকল্প কীভাবে সেট আপ করবেন।
  • নতুন প্লেনে সদস্যতা নিতে কিভাবে ARPlaneManager ব্যবহার করবেন।
  • ভার্চুয়াল জ্যামিতির সাথে ছেদ খুঁজে পেতে Raycast কিভাবে ব্যবহার করবেন
  • আপনার দৃশ্যকে আলোকিত করতে ARLightEstimationData কিভাবে ব্যবহার করবেন।

আপনি কি প্রয়োজন হবে

2. আপনার উন্নয়ন পরিবেশ সেট আপ করুন

এই ধাপে, আপনি ইউনিটির এআর ফাউন্ডেশনের সাথে আপনার পরিবেশকে উন্নয়নের জন্য প্রস্তুত করতে পারবেন।

আপনার ডিভাইসটি AR-এর সাথে সামঞ্জস্যপূর্ণ কিনা তা নিশ্চিত করুন

Android ডিভাইসে AR অভিজ্ঞতাগুলি ARCore দ্বারা চালিত হয়, যা ARCore সমর্থিত ডিভাইসগুলিতে উপলব্ধ। আপনার ডেভেলপমেন্ট ডিভাইস AR এর সাথে সামঞ্জস্যপূর্ণ কিনা তা নিশ্চিত করুন। বিকল্পভাবে, আপনি একটি সঠিকভাবে কনফিগার করা AR-সামঞ্জস্যপূর্ণ Android এমুলেটর উদাহরণ ব্যবহার করতে পারেন।

আপনার ডিভাইসে USB ডিবাগিং সেটআপ করুন

ডিবাগ অ্যাপ্লিকেশানগুলি চালানোর জন্য আপনাকে আপনার ডিভাইসে বিকাশকারী বিকল্পগুলি সক্ষম করতে হবে৷ আপনি যদি এখনও তা না করে থাকেন, তাহলে বিকাশকারী বিকল্পগুলি এবং USB ডিবাগিং সক্ষম করুন- এ Android ডকুমেন্টেশন দেখুন৷

ইউনিটি ইনস্টল করুন (2020.3 LTS)

আপনার ওয়ার্কস্টেশনে ইউনিটি 2020 LTS ইনস্টল করুন। এই কোডল্যাবে, 2020.3 (LTS) সংস্করণে ইউনিটির UI-এর স্ক্রিনশট দেখানো হয়েছে। ইউনিটির অন্যান্য সংস্করণগুলি কাজ করতে পারে তবে অতিরিক্ত পদক্ষেপের প্রয়োজন হতে পারে। এটি এখানে দেখানো স্ক্রিনশটগুলির থেকে আলাদা দেখতে পারে৷

একটি নতুন প্রকল্প তৈরি করুন

ইউনিভার্সাল রেন্ডার পাইপলাইন টেমপ্লেট ব্যবহার করে একটি নতুন প্রকল্প তৈরি করুন। এটিকে একটি বর্ণনামূলক নাম এবং একটি উপযুক্ত অবস্থান দিন এবং CREATE টিপুন।

প্রয়োজনীয় ফ্রেমওয়ার্ক ইনস্টল করুন

ইউনিটির এআর ফাউন্ডেশন ইউনিটি প্যাকেজ ম্যানেজারে পাওয়া যাবে।

  1. উইন্ডো > প্যাকেজ ম্যানেজার- এ ক্লিক করে এটি খুলুন।

  1. এই উইন্ডোতে, আপনি এই কোডল্যাবে যে প্যাকেজগুলি ব্যবহার করবেন তা ইনস্টল করুন। আইকন ব্যবহার করে এর এন্ট্রি প্রসারিত করে এই ফ্রেমওয়ার্কগুলির সর্বশেষ সংস্করণগুলি দেখুন। এই প্রতিটি ফ্রেমওয়ার্কের জন্য সর্বশেষ সংস্করণ ইনস্টল করুন:
    • এআর ফাউন্ডেশন
    • ARCore XR প্লাগইন

আপনার কাজ শেষ হয়ে গেলে, আপনার প্যাকেজ ম্যানেজারকে এইরকম দেখতে হবে:

স্টার্টার প্যাকেজ ইনস্টল করুন

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

  1. Assets > Import Package > Custom Package... এবং starter-package.unitypackage খুলে স্টার্টার প্যাকেজ ইনস্টল করুন।
  2. পপ আপ হওয়া উইন্ডোতে, নিশ্চিত করুন যে সবকিছু নির্বাচন করা হয়েছে।
  3. আমদানিতে ক্লিক করুন।

বিল্ড সেটিংস পরিবর্তন করুন

যেহেতু অ্যাপ্লিকেশনটি অ্যান্ড্রয়েডে চলবে, তাই বিল্ড প্ল্যাটফর্মটিকে অ্যান্ড্রয়েডে পরিবর্তন করুন:

  1. ফাইল খুলুন > বিল্ড সেটিংস
  2. প্ল্যাটফর্ম প্যানে, Android নির্বাচন করুন।
  3. ঐচ্ছিকভাবে, আপনার অ্যাপ চলাকালীন ডিবাগিং তথ্য ধরে রাখতে ডেভেলপমেন্ট বিল্ড এবং স্ক্রিপ্ট ডিবাগিং সক্ষম করুন।
  4. স্যুইচ প্ল্যাটফর্মে ক্লিক করুন।

প্রকল্প সেটিংস পরিবর্তন করুন

AR ফাউন্ডেশনকে স্টার্টআপে XR সিস্টেম শুরু করার জন্য কনফিগার করতে হবে।

  1. সম্পাদনা > প্রকল্প সেটিংস খুলুন... এবং XR প্লাগ-ইন ব্যবস্থাপনা বিভাগে ক্লিক করুন।
  2. Android ট্যাবে, ARCore সক্ষম করুন।

  1. বাম দিকের ফলকে, প্লেয়ার বিভাগে ক্লিক করুন।
  2. অ্যান্ড্রয়েড ট্যাবে, অন্যান্য সেটিংসের অধীনে, গ্রাফিক্স এপিআই থেকে ভলকান সরান।

  1. AR প্রয়োজনীয় অ্যাপগুলি ARCore ব্যবহার করে ন্যূনতম API লেভেল 24 প্রয়োজন। নিচে স্ক্রোল করুন এবং ন্যূনতম API লেভেল খুঁজুন। ন্যূনতম API স্তর 24 এ সেট করুন।

প্রয়োজনীয় দৃশ্য উপাদান যোগ করুন

ইউনিভার্সাল রেন্ডার পাইপলাইন টেমপ্লেট কিছু গেম অবজেক্টের সাথে আসে যা আপনি এই টিউটোরিয়ালে ব্যবহার করবেন না।

  1. SampleScene সমস্ত গেম অবজেক্ট মুছুন।

  1. এআর ফাউন্ডেশন অবজেক্ট যোগ করুন। হায়ারার্কি প্যানে ডান-ক্লিক করুন। যোগ করতে এই মেনু ব্যবহার করুন:
  • XR > AR সেশন : এই বস্তুটি একটি AR অভিজ্ঞতার জীবনচক্র নিয়ন্ত্রণ করে।
  • XR > AR সেশন অরিজিন : এই বস্তুটি AR স্থানাঙ্ককে ইউনিটি ওয়ার্ল্ড কোঅর্ডিনেটে রূপান্তরিত করে।
  • আলো > দিকনির্দেশক আলো : এটি গেমের বস্তুগুলিকে আলোকিত করার জন্য একটি আলোর উত্স সরবরাহ করে।

আপনার অনুক্রমটি এইরকম হওয়া উচিত:

  1. আপনি অনুক্রমের মধ্যে তৈরি করা AR সেশন অরিজিনটি প্রসারিত করুন এবং AR ক্যামেরা অবজেক্টটি নির্বাচন করুন। ইন্সপেক্টরে, এর ট্যাগটি MainCamera এ পরিবর্তন করুন।

রেন্ডারিং সেট আপ করুন

ইউনিটির ইউনিভার্সাল রেন্ডার পাইপলাইন এআর ফাউন্ডেশনের সাথে সামঞ্জস্যপূর্ণ হতে একটি পরিবর্তন প্রয়োজন।

  1. প্রজেক্ট প্যানে, ফরওয়ার্ডরেন্ডারার সম্পদ খুঁজে পেতে সম্পদ > সেটিংসের মাধ্যমে নেভিগেট করুন।

  1. ফরোয়ার্ডরেন্ডারার নির্বাচন করুন।
  2. ইন্সপেক্টর প্যানে, একটি AR ব্যাকগ্রাউন্ড রেন্ডারার বৈশিষ্ট্য যোগ করতে রেন্ডারার বৈশিষ্ট্য যুক্ত করুন ব্যবহার করুন। এই উপাদানটি আপনার দৃশ্যে ক্যামেরা ফিড রেন্ডার করবে।

সেটআপ যাচাই করুন

  1. নিশ্চিত করুন যে আপনার ডিভাইসটি প্লাগ ইন করা আছে এবং ADB ডিবাগিং চালু আছে।
  2. ফাইল > তৈরি করুন এবং চালান ক্লিক করুন... এটি আপনার ডিভাইসে অ্যাপ্লিকেশনটি আপলোড করবে এবং এটি ইনস্টল হয়ে গেলে এটি শুরু করবে।
  3. আপনার ডিভাইসের স্ক্রিনে ক্যামেরা ফিড দেখতে হবে।

পরবর্তী ধাপে, আপনি আপনার অ্যাপে কার্যকারিতা যোগ করা শুরু করবেন।

3. বাস্তব জগতে বিমান সনাক্ত করুন

এখন যেহেতু একটি মৌলিক দৃশ্য সেট আপ করা হয়েছে, আপনি গেমটি বিকাশ করা শুরু করতে পারেন৷ এই ধাপে, আপনি প্লেনগুলি সনাক্ত করবেন এবং তাদের দৃশ্যে আঁকবেন।

একটি ARPlaneManager উপাদান যোগ করুন

একটি ARPlaneManager ARPlane গুলি সনাক্ত করে এবং পরিবেশ সম্পর্কে ডিভাইসের বোঝার পরিবর্তন হলে গেমের বস্তু তৈরি করে, আপডেট করে এবং সরিয়ে দেয়।

  1. হায়ারার্কি ফলক ব্যবহার করে, একটি খালি GameObject তৈরি করুন।
  2. এটির নাম পরিবর্তন করে Driving Surface Manager রাখুন। প্লেয়ার দ্বারা একটি নির্বাচন না করা পর্যন্ত এই উপাদান প্লেন প্রদর্শন করবে।
  3. নতুন গেম অবজেক্ট নির্বাচন করুন। পরিদর্শক ফলকের মধ্যে, একটি এআর প্লেন ম্যানেজার যোগ করতে উপাদান যোগ করুন ক্লিক করুন।

  1. Plane Prefab ক্ষেত্র সেট করে ARPlaneManager কনফিগার করুন:
    1. সিলেক্ট GameObject উইন্ডো আনতে None এর পাশের বোতামে ক্লিক করুন।
    2. সম্পদ ট্যাব নির্বাচন করুন এবং ড্রাইভিং সারফেস প্লেন অনুসন্ধান করুন।

স্টার্টার প্যাকেজের এই প্রিফ্যাবটি একটি গ্রিটি ফ্লোর টেক্সচার প্রদান করে যা প্লেন ডেকোরেশন হিসেবে ব্যবহার করা হবে।

  1. Detection Mode Horizontal এ পরিবর্তন করুন। এটি ARPlaneManager শুধুমাত্র অনুভূমিক প্লেন প্রদান করতে কনফিগার করে, যা চালনার জন্য আদর্শ।

একটি ARRaycastManager উপাদান যোগ করুন

একটি ARRaycastManager raycast কার্যকারিতা প্রকাশ করে। পরবর্তী ধাপে, আমরা ব্যবহারকারীর জন্য নিয়ন্ত্রণ প্রদান করতে এই বস্তুটি ব্যবহার করব।

  1. Driving Surface Manager নামক বস্তুটি হায়ারার্কি প্যানে নির্বাচিত হয়েছে তা নিশ্চিত করুন।
  2. ইন্সপেক্টরে, আপনার গেম অবজেক্টে একটি ARRaycastManager কম্পোনেন্ট যোগ করতে কম্পোনেন্ট যোগ করুন ক্লিক করুন।

এই উপাদানটির জন্য আর কোন কনফিগারেশনের প্রয়োজন নেই।

একটি DrivingSurfaceManager উপাদান যোগ করুন

একটি DrivingSurfaceManager হল স্টার্টার প্যাকেজ থেকে একটি সহায়ক স্ক্রিপ্ট যা একটি ARPlane নির্বাচন করার অনুমতি দেয়। একবার একটি ARPlane নির্বাচন করা হলে, অন্যান্য সমস্ত প্লেন লুকানো হবে এবং নতুন প্লেনগুলি অক্ষম করা হবে৷

  1. Driving Surface Manager নামক বস্তুটি হায়ারার্কি প্যানে নির্বাচিত হয়েছে তা নিশ্চিত করুন।
  2. ইন্সপেক্টরে, আপনার গেম অবজেক্টে একটি DrivingSurfaceManager উপাদান যুক্ত করতে উপাদান যোগ করুন ক্লিক করুন।

এই উপাদানটির জন্য আর কোন কনফিগারেশনের প্রয়োজন নেই।

অ্যাপটি চালান

  1. আপনার পরিবর্তনগুলি পরীক্ষা করতে ফাইল > বিল্ড এবং রান... এ ক্লিক করুন।
  2. আপনার ডিভাইসটিকে একটি অনুভূমিক বাস্তব-বিশ্বের পৃষ্ঠের দিকে নির্দেশ করুন এবং ARCore-এর বিশ্বের বোঝার উন্নতি করতে আপনার ডিভাইসটিকে চারপাশে নিয়ে যান।

  1. যখন ARCore একটি প্লেন শনাক্ত করেছে, তখন আপনি বাস্তব-বিশ্বের পৃষ্ঠতলের একটি ময়লা টেক্সচার কভার দেখতে পাবেন। ARPlaneManager প্রতিটি শনাক্ত করা প্লেনের জন্য প্রদত্ত Plane Prefab ইনস্ট্যান্টিয়েট করে। Driving Surface Plane প্রিফ্যাবে একটি ARPlaneMeshVisualizer উপাদান রয়েছে যা একটি প্রদত্ত ARPlane জন্য একটি জাল তৈরি করে।

পরবর্তী ধাপে, আপনি একটি শনাক্ত করা প্লেনকে খেলার ক্ষেত্র হিসেবে ব্যবহার করবেন।

4. সনাক্ত করা প্লেনগুলির বিরুদ্ধে একটি হিট পরীক্ষা করুন

পূর্ববর্তী ধাপে, আপনি একটি অ্যাপ্লিকেশন প্রোগ্রাম করেছেন যা প্লেন সনাক্ত করতে পারে। এই প্লেনগুলি আপনার গেমের দৃশ্যে প্রতিফলিত হয়। এখন, আপনি একটি লক্ষ্যযুক্ত রেটিকল এবং একটি গাড়ি তৈরি করে এই প্লেনের সাথে ইন্টারঅ্যাক্টিভিটি যোগ করবেন যা সনাক্ত করা বিমানের পৃষ্ঠে ড্রাইভ করবে।

একটি লক্ষ্যযুক্ত রেটিকল তৈরি করুন

এই অ্যাপের কন্ট্রোল স্কিমে প্লেয়ার তাদের ফোনকে একটি পৃষ্ঠের দিকে নির্দেশ করে। মনোনীত অবস্থানের জন্য স্পষ্ট চাক্ষুষ প্রতিক্রিয়া দেওয়ার জন্য, আপনি একটি লক্ষ্যযুক্ত রেটিকল ব্যবহার করবেন।

একটি AR সমতলে এই জালিকাটিকে "লাঠি" করার জন্য, একটি হিট পরীক্ষা ব্যবহার করুন। একটি হিট টেস্ট হল একটি কৌশল যা একটি প্রদত্ত দিকে একটি রশ্মি নিক্ষেপ করার সময় ছেদগুলি গণনা করে। আপনি ক্যামেরার দৃশ্যের দিক থেকে একটি ছেদ সনাক্ত করতে একটি হিট পরীক্ষা ব্যবহার করবেন৷

জালিকা যোগ করুন

  1. স্ক্রিনের নীচের কাছে প্রজেক্ট ফলকে, সম্পদ > স্টার্টার প্যাকেজে নেভিগেট করুন।
  2. রেটিকল প্রিফ্যাবটিকে প্রজেক্টের হায়ারার্কি প্যানে টেনে দৃশ্যে রাখুন।
  3. অনুক্রমের রেটিকল নির্বাচন করুন।
  4. ইন্সপেক্টরে, কম্পোনেন্ট যোগ করুন ক্লিক করুন। স্টার্টার প্যাকেজ থেকে ReticleBehaviour স্ক্রিপ্ট যোগ করুন। এই স্ক্রিপ্টে রেটিকল নিয়ন্ত্রণের জন্য কিছু বয়লারপ্লেট রয়েছে।
  5. ReticleBehaviour স্ক্রিপ্টটি আপনার আগে তৈরি করা Driving Surface Manager উপর নির্ভরশীল, তাই Driving Surface Manager চয়নকারীতে ক্লিক করে নির্ভরতা যোগ করুন। দৃশ্য ট্যাব নির্বাচন করুন এবং Driving Surface Manager নির্বাচন করুন।

ReticleBehaviour সম্পাদনা করুন

ReticleBehavior স্ক্রিপ্ট ডিভাইসের ভিউপোর্টের কেন্দ্রে থাকা প্লেনে রেটিকলকে অবস্থান করবে।

  1. Script ক্ষেত্রে ডাবল ক্লিক করে ReticleBehaviour.cs স্ক্রিপ্ট খুলুন।
  2. ক্যামেরার ViewToScreenPoint ব্যবহার করে স্ক্রিনের কেন্দ্র নির্ধারণ করুন। নিম্নলিখিত যোগ করতে Update() পদ্ধতি সম্পাদনা করুন:
var screenCenter = Camera.main.ViewportToScreenPoint(new Vector3(0.5f, 0.5f));
  1. একটি রেকাস্ট পরিচালনা করতে এই পয়েন্টটি ব্যবহার করুন। নিম্নলিখিত যোগ করুন:
var hits = new List<ARRaycastHit>();
DrivingSurfaceManager.RaycastManager.Raycast(screenCenter, hits, TrackableType.PlaneWithinBounds);

পরিবর্তনশীল hits ARRaycastHit s থাকবে যা ট্র্যাকেবলের পয়েন্টগুলি বর্ণনা করে যা ray দ্বারা ছেদ করা হয়েছে।

  1. hits তালিকা অনুসন্ধান করে আগ্রহের ছেদ বিন্দু নির্ধারণ করুন. DrivingSurfaceManager এ থাকা লক করা প্লেনটিকে অগ্রাধিকার দিন এবং যদি এটি বিদ্যমান না থাকে তবে প্রথম প্লেন হিট ব্যবহার করুন৷ Update() এর শেষে নিম্নলিখিত যোগ করুন:
CurrentPlane = null;
ARRaycastHit? hit = null;
if (hits.Length > 0)
{
    // If you don't have a locked plane already...
    var lockedPlane = DrivingSurfaceManager.LockedPlane;
    hit = lockedPlane == null
        // ... use the first hit in `hits`.
        ? hits[0]
        // Otherwise use the locked plane, if it's there.
        : hits.SingleOrDefault(x => x.trackableId == lockedPlane.trackableId);
}
  1. যদি hit কোনো ফলাফল থাকে, তাহলে এই GameObject এর রূপান্তরটিকে হিট অবস্থানে নিয়ে যান।
if (hit.HasValue)
{
    CurrentPlane = DrivingSurfaceManager.PlaneManager.GetPlane(hit.Value.trackableId);
    // Move this reticle to the location of the hit.
    transform.position = hit.Value.pose.position;
}
Child.SetActive(CurrentPlane != null);

রেটিকল পরীক্ষা করুন

  1. আপনার পরিবর্তনগুলি পরীক্ষা করতে ফাইল > বিল্ড এবং রান... এ ক্লিক করুন।
  2. আপনি যখন আপনার ডিভাইসটিকে একটি সমতলে নির্দেশ করেন, তখন আপনি দেখতে পাবেন যে রেটিকলটি আপনার ক্যামেরার গতিবিধি অনুসরণ করে৷

একটি গাড়ি তৈরি করুন

প্লেয়ার একটি খেলনা গাড়ি নিয়ন্ত্রণ করবে যা রেটিকলের অবস্থানের দিকে ড্রাইভ করবে। স্টার্টার প্যাকেজে এই গাড়ির মডেল এবং আচরণ দেওয়া আছে।

আপনার দৃশ্যে একটি CarManager যোগ করুন

  1. হায়ারার্কিতে , একটি নতুন খালি GameObject তৈরি করুন।
  2. এটিকে Car Spawner নাম দিন।
  3. আপনার তৈরি বস্তু নির্বাচন করুন. হায়ারার্কি প্যানে, CarManager কম্পোনেন্ট যোগ করতে Add Component-এ ক্লিক করুন।
  4. প্রতিটি ক্ষেত্রের জন্য চয়নকারীতে ক্লিক করে CarManager এর নির্ভরতা সেট আপ করুন:
    • কার প্রিফ্যাব : সম্পদে , কার প্রিফ্যাব নির্বাচন করুন।
    • Reticle : দৃশ্যে , Reticle Prefab নির্বাচন করুন।
    • ড্রাইভিং সারফেস ম্যানেজার : দৃশ্যে , ড্রাইভিং সারফেস ম্যানেজার নির্বাচন করুন।

এই CarManager আচরণ প্লেনে একটি খেলনা গাড়ির জন্ম দেয় যে রেটিকল চালু আছে। আপনি যদি চান, গাড়িটি কীভাবে প্রোগ্রাম করা হয় তা জানতে CarBehaviour স্ক্রিপ্টটি দেখুন।

টেস্ট ড্রাইভিং

  1. আপনার পরিবর্তনগুলি পরীক্ষা করতে ফাইল > তৈরি করুন এবং চালান ক্লিক করুন।
  2. আপনি যখন একটি প্লেনে ট্যাপ করবেন, তখন আপনি সেই স্থানে একটি ছোট গাড়ি দেখতে পাবেন। এই গাড়ী জালিকা অনুসরণ করবে.

খেলা উপাদান যোগ করুন

এখন যে প্লেয়ার দৃশ্যে একটি সত্তা নিয়ন্ত্রণ করতে পারে, প্লেয়ারকে গাড়ি চালানোর জন্য একটি গন্তব্য দিন।

  1. হায়ারার্কিতে একটি নতুন খালি GameObject তৈরি করুন।
  2. Package Spawner নাম পরিবর্তন করুন।
  3. আপনার তৈরি বস্তু নির্বাচন করুন. হায়ারার্কি প্যানে, PackageSpawner উপাদান যোগ করতে কম্পোনেন্ট যোগ করুন ক্লিক করুন।
  4. প্রতিটি ক্ষেত্রের জন্য চয়নকারীতে ক্লিক করে PackageSpawner এর নির্ভরতা সেট আপ করুন:
    • প্যাকেজ প্রিফ্যাব : সম্পদে , প্যাকেজ প্রিফ্যাব নির্বাচন করুন।
    • ড্রাইভিং সারফেস ম্যানেজার দৃশ্যে , ড্রাইভিং সারফেস ম্যানেজার নির্বাচন করুন।

এই PackageSpawner আচরণটি একটি লক করা ARPlane এ একটি এলোমেলো অবস্থানে একটি নতুন প্যাকেজ তৈরি করে যদি আগে থেকে কোনো প্যাকেজ না থাকে।

খেলা পরীক্ষা

  1. আপনার পরিবর্তনগুলি পরীক্ষা করতে ফাইল > তৈরি করুন এবং চালান ক্লিক করুন। 2, আপনি একটি গাড়ী তৈরি করার পরে, একটি প্যাকেজ তৈরি করা উচিত।
  2. প্যাকেজে আপনার গাড়ি চালান।
  3. একটি র্যান্ডম অবস্থানে একটি নতুন প্রদর্শিত হবে.

5. আলোর অনুমান সেট আপ করুন

এখন যেহেতু মৌলিক গেমটি সম্পন্ন হয়েছে, আপনার এআর দৃশ্যে বাস্তবতার একটি স্পর্শ যোগ করুন। এই ধাপে, আপনি আগত ক্যামেরা ফ্রেমের উপর ভিত্তি করে বাস্তব জগতে উপস্থিত আলো শনাক্ত করতে ARCore এর লাইটিং এস্টিমেশন API ব্যবহার করবেন। এই তথ্যটি বাস্তব-বিশ্বের আলোর সাথে মেলে আপনার দৃশ্যের আলোকে মানিয়ে নিতে ব্যবহার করা হবে৷

আলোর অনুমান সক্ষম করুন

  1. হায়ারার্কিতে , AR সেশন অরিজিন প্রসারিত করুন এবং AR ক্যামেরা অবজেক্টটি নির্বাচন করুন।
  2. ইন্সপেক্টরে , AR ক্যামেরা ম্যানেজার স্ক্রিপ্ট প্রসারিত করুন।
  3. আলোর অনুমান ক্ষেত্রটি সবকিছুতে পরিবর্তন করুন।

দিকনির্দেশক আলো পরিবর্তন করুন

  1. হায়ারার্কিতে , দিকনির্দেশক আলো বস্তুটি নির্বাচন করুন।
  2. এতে LightEstimation কম্পোনেন্ট যোগ করুন। স্টার্টার প্যাকেজের এই উপাদানটি আলোর পরিবর্তনগুলিতে সদস্যতা নেওয়ার জন্য কিছু বয়লারপ্লেট সরবরাহ করে।
  3. FrameReceived() ফাংশনে, যোগ করুন:
ARLightEstimationData lightEstimation = args.lightEstimation;

if (lightEstimation.averageBrightness.HasValue)
    Light.intensity = lightEstimation.averageBrightness.Value;

if (lightEstimation.averageColorTemperature.HasValue)
    Light.colorTemperature = lightEstimation.averageColorTemperature.Value;

if (lightEstimation.colorCorrection.HasValue)
    Light.color = lightEstimation.colorCorrection.Value;

if (lightEstimation.mainLightDirection.HasValue)
    Light.transform.rotation = Quaternion.LookRotation(lightEstimation.mainLightDirection.Value);

if (lightEstimation.mainLightColor.HasValue)
    Light.color = lightEstimation.mainLightColor.Value;

if (lightEstimation.mainLightIntensityLumens.HasValue)
    Light.intensity = lightEstimation.averageMainLightBrightness.Value;

if (lightEstimation.ambientSphericalHarmonics.HasValue)
{
    RenderSettings.ambientMode = AmbientMode.Skybox;
    RenderSettings.ambientProbe = lightEstimation.ambientSphericalHarmonics.Value;
}

আপনার পরিবর্তন পরীক্ষা করুন

  1. আপনার পরিবর্তনগুলি পরীক্ষা করতে ফাইল > তৈরি করুন এবং চালান ক্লিক করুন।
  2. দৃশ্যের বস্তুগুলি দেখার সময়, আপনি লক্ষ্য করতে পারেন যে পরিবেশের আলোর উপর নির্ভর করে সেগুলি রঙিন।
  3. যদি সম্ভব হয়, আপনার আলো পরিবর্তন করার চেষ্টা করুন। উদাহরণস্বরূপ, আপনি যে ঘরে আছেন তার লাইট বন্ধ করার চেষ্টা করুন। আপনি দেখতে পাবেন যে বস্তুর আলো বাস্তব-বিশ্বের আলোর পরিবর্তনের সাথে খাপ খায়।

6. মোড়ানো

অভিনন্দন! আপনি ইউনিটি এআর ফাউন্ডেশনের এই কোডল্যাবের শেষ পর্যন্ত এটি তৈরি করেছেন।

আপনি কভার করেছেন কি

  • ইউনিটির এআর ফাউন্ডেশন এবং ইউনিভার্সাল রেন্ডারিং পাইপলাইন ব্যবহার করে কীভাবে একটি মৌলিক প্রকল্প সেট আপ করবেন।
  • নতুন প্লেনে সদস্যতা নিতে কিভাবে ARPlaneManager ব্যবহার করবেন।
  • ভার্চুয়াল জ্যামিতির সাথে ছেদ খুঁজে পেতে Raycast কিভাবে ব্যবহার করবেন।
  • আপনার দৃশ্যকে আলোকিত করতে ARLightEstimationData কিভাবে ব্যবহার করবেন।

পরবর্তী পদক্ষেপ

বোনাস অ্যাসাইনমেন্ট

আপনি যদি এখানে তৈরি করা গেমটি প্রসারিত করতে চান তবে এখানে কিছু ধারণা রয়েছে যা আপনি অনুসরণ করতে পারেন:

  • যখন একটি PackageManager একটি নতুন প্যাকেজ তৈরি করে তখন TextMeshPro পরিবর্তন করে আপনার গেমে একটি স্কোর কাউন্টার যোগ করুন।
  • পারফরম্যান্স ওভারলে সক্ষম করে আপনার গেমটি যখন চলছে তখন পারফরম্যান্সের তথ্য দেখুন।
  • আপনার দৃশ্যে প্রথমে নতুন অবজেক্ট রাখতে পারসিস্টেন্ট রেকাস্ট ব্যবহার করুন। যখন একটি প্লেন সেই এলাকায় সনাক্ত করা হয়, সেই বস্তুটি সেই প্লেনে স্ন্যাপ করার জন্য আপডেট হবে।