چگونه در یونیتی یک اپلیکیشن موبایلی واقعیت افزوده بسازیم؟ ( قسمت دوم )
بعد از این که فرآیند نصب نرمافزار تمام شد، حالا زمان ساختن فریمورک فرا رسیده تا اپ واقعیت افزوده بتواند بر روی دستگاههای اندروید کار کند. این آموزش را می توانید از اینجا بخوانید
گویا آی تی: سفری که برای فراگیری نحوهی توسعهی نرمافزارها داریم میتواند طولانی و سخت باشد. خوشبختانه توسعهدهندگان نرمافزار، با روشهایی بیشباهت به سایر جنبههای فنی و خلاقانهی کار، معمولاً مسیرهای پیش رو را فوق العاده راحت میسازند تا دنبال کردنشان ساده باشد. این موضوع به احتمال زیاد متأثر از فلسفهی متن باز است که در طول ۲۰ سال گذشته سلطهی خود را در حوزهی توسعهی نرمافزار گستردهتر کرده است.
صرف نظر از استدلالهای مختلف، هزینهی ورود به این عرصه در سالیان اخیر به شکل چشمگیری کاهش یافته است.
نکتهی دیگری که در کنار این کاهش هزینه معرفی شده این است که دستیابی به قابلیتهای پیشرفتهتر آسان شده است. اکنون به نقطهای رسیدهایم که شخص با دانشی اندک دربارهی کدنویسی میتواند کار بر روی واقعیت افزوده را شروع کند، در حالی که این سیستم مجموعهی پیچیدهای از اجزای مختلف است که در کنار یکدیگر کار میکنند. در ادامه این موضوع را بهتر متوجه میشوید.
Scenes و Prefabs
در این مقاله میخواهیم دو حوزهی اصلی یونیتی که برای ساختن فریمورک لازم است را به شما معرفی کنیم: Scenes و Prefabs. یونیتی از یک فایل محتوانگهدار به نام صحنه (Scene) استفاده میکند که همهی جزءهایی را که در یک لحظه از آنها استفاده میکنیم نگهداری میکند. یک اپلیکیشن بسته به ساختار مدنظر شما میتواند فقط با یک صحنه یا با هر تعداد صحنه که شما بخواهید کار کند.
برای درک بهتر موضوع میتوانید صحنهها را مثل مراحل مختلف یک بازی در نظر بگیرید که میتوانید به تشکیل ساختار اپلیکیشن ما کمک کند. اما فکر نکنید یونیتی فقط یک موتور بازیسازی است. هرچند این پلتفرم به عنوان یک موتور بازیسازی طراحی شد، اما حالا که واقعیت افزوده و مجازی وارد جریان اصلی بازار شدهاند، بهتر است یونیتی را هم به عنوان یک موتور سهبعدی در نظر بگیرید.
مرحله ۱ – ایجاد صحنهی جدید
برای ساختن یک صحنهی جدید باید جایی برای ذخیرهسازی آن داشته باشید. پس ابتدا بگذارید یک پوشهی جدید برای صحنههایمان بسازیم. در پنجرهی Project، روی Assets کلیک راست کرده و از بخش Create گزینهی Folder را انتخاب کنید. سپس اسم پوشه را Scenes بگذارید.
حالا از منوی File گزینهی Save Scene as را انتخاب کنید. آنگاه به پوشهی Scenes بروید. عبارت NRARCore (یا هر چیزی که آن صحنه را به یاد شما میآورد) را در فیلد File name وارد کنید و روی دکمهی Save کلیک نمایید.
مرحله ۲ – آوردن ARCore Prefabs به Scene
Prefabs نوع داده است که به ما اجازه میدهد مجموعهای از آبجکتهای بازی (GameObjects) و اجزای مرتبط با آن را در آن ذخیره کنیم و در صورت نیاز بتوانیم بلافاصله آنها را در موتور توسعه اجرا نماییم. همهی تنظیماتی که در هنگام ساخت یک Prefab ذخیره میشود، همراه با خود اجزا نگهداری میشود. در اینجا میخواهیم دو Prefab-ای را که بخشی از فریمورک ARCore هستند به پروژهمان اضافه کنیم. در ادامه Prefab خودمان را میسازیم.
در پنجرهی Hierarchy یونیتی، هر دو گزینهی Main Camera و Directional Light را انتخاب کنید. سپس روی آنها کلیک راست کرده و Delete را انتخاب نمایید.
در پنجرهی Project، از بخش GoogleARCore وارد پوشهی Prefabs شوید. ARCore Device و Environmental Light را انتخاب کرده (فلش قرمز تصویر زیر را ببینید)، سپس این جفت Prefabs را از پنجرهی Project بکشید و به داخل پنجرهی Hierarchy ببرید (فلش سبز تصویر زیر را ببینید).
سپس از پنجرهی Hierarchy روی دکمهی Create کلیک و از بخش UI، Event System را انتخاب کنید.
مرحله ۳ – ایمپورت کردنBillboard و Texture
همان طور که قبلاً گفتیم، خودمان هم میتوانیم Prefab بسازیم. برای انجام این کار میخواهیم از دادههایی که در درسهای قبلی دانلود کرده بودیم استفاده کنیم. به محلی که قبلاً بیلبورد را دانلود کردیم بروید. برای دسترسی راحتتر آن را اکسترکت کنید.
فایل Next Reality texture را که از درس قبلی دانلود کرده بودید در همین پوشه کپی نمایید.
پنجرهی Windows Explorer را روی پنجرهی یونیتی قرار دهید تا بتوانید پوشهی Assets را در پنجرهی Project ببینید. سپس از درون پنجرهی Windows Explorer، پوشهای که حاوی مدل بیلبورد و فایل Texture است را انتخاب کنید. حالا آن را بکشید و در پوشهی Assets یونیتی رها کنید. در آخر نام فایل را به Billboard تغییر دهید.
مرحله ۴ – تخصیص Texture به Billboard
آبجکتهای سهبعدی ما نیازمند Texture یا فایل تصویری است. این تصاویر به نحوی در اطراف آبجکتهای سهبعدی قرار میگیرند که میتوانند رنگ آن آبجکت را تغییر دهند یا (همانطور که از نام Texture بر میآید) به آبجکت مذکور یک نوع طرح زمخت یا لطیف بدهند. در فرآیند ایمپورت کردن، پوشهای به نام Materials ساخته میشود. آن را باز کنید.
وقتی باز شد، روی ad کلیک نمایید.
به پنجرهی Inspector نگاه کنید تا جزئیات مربوط به متریالها را ببینید. سپس روی علامت دونات کوچکی که کنار Albedo قرار دارد کلیک کنید.
وقتی پنجرهی Select Texture باز شد، روی فایل nextreality.color-bg(2).png دو بار کلیک کنید.
بافت مذکور آن طور که انتظار داشتم بشود نشد، بنابراین باید آن را کمی تغییر بدهیم. از بخش Tiling دو مقدار X و Y را روی ۰٫۸۸ تنظیم کنید. سپس، در قسمت Offset مقدار X را به ۰٫۰۳ تغییر دهید ولی بگذارید Y صفر بماند.
مرحله ۵ – ایجاد Billboard Prefab
حالا بگذارید هر چه داریم را کنار هم قرار دهیم تا بیلبوردمان را بسازیم و آن را به یک Prefab تبدیل کنیم. در پنجرهی Project، از بخش Assets > Billboard، خود مدل Billboard را انتخاب کنید. و همان طور که قبلاً هم گفتیم، آن را بکشید و درون پنجرهی Hierarchy رها کنید.
در پنجرهی Project، از بخش Assets یک پوشهی Prefabs بسازید. آنگاه آبجکت Billboard را بکشید و در پنجرهی Hierarchy رها کنید.
وقتی Billboard Prefab به وجود آمد – مثل نمونهای که در تصویر زیر در پوشهی Prefabs میبینید– میتوانید آبجکت Billboard را از پنجرهی Hierarchy حذف کنید.
کار تقریباً تمام شده است. در بخش بعدی، عملاً اپلیکیشن را تست میکنیم و میبینیم که برای اولین بار بر روی یک دستگاه چطور اجرا میشود. از آن مرحله به بعد، کار بر روی بخش تعاملی را آغاز میکنیم.