چگونه‌ها

شروع کار با Unity و Android XR

مطالعه ۶ دقیقه‌ای
Luke Hopkins
مهندس روابط توسعه‌دهنده، اندروید

سامسونگ گلکسی XR از راه رسید ، مجهز به اندروید XR! این پست وبلاگ بخشی از هفته ویژه اندروید XR ما است که در آن منابعی - پست‌های وبلاگ، ویدیوها، نمونه کد و موارد دیگر - را ارائه می‌دهیم که همگی برای کمک به شما در یادگیری، ساخت و آماده‌سازی برنامه‌هایتان برای اندروید XR طراحی شده‌اند.

هیچ زمانی بهتر از الان برای شروع توسعه XR نبوده است. دسامبر گذشته، ما اندروید XR ، پلتفرم جدید اندروید گوگل که بر اساس استانداردهای باز مانند OpenXR و Vulkan ساخته شده است را معرفی کردیم که توسعه XR را بیش از هر زمان دیگری در دسترس قرار می‌دهد.


و وقتی با ابزارهای XR موجود در Unity ترکیب شود، یک پشته توسعه قدرتمند و بالغ به دست می‌آید. این امر ایجاد و استقرار برنامه‌های XR را که در چندین دستگاه کار می‌کنند، ممکن می‌سازد.

openxr_face_tracking2.webp

فرقی نمی‌کند که قبلاً توسعه XR انجام داده باشید یا نه، ما می‌خواهیم در شروع کار به شما کمک کنیم.

این وبلاگ شما را با توسعه اندروید XR و یونیتی آشنا می‌کند. ما بر روی مراحل عملی برای پیکربندی محیط شما، درک اکوسیستم پکیج و شروع به ساخت تمرکز خواهیم کرد.

در پایان این وبلاگ، شما درک خوبی از موارد زیر خواهید داشت:

  • اکوسیستم بسته‌بندی
  • مراحل ضروری راه‌اندازی
  • روش‌های ورودی
  • حریم خصوصی و مجوزها
  • لایه‌های ترکیب‌بندی

توسعه یونیتی برای اندروید XR

شما می‌توانید یونیتی را به دلیل سازگاری چند پلتفرمی آن انتخاب کنید، که به شما امکان می‌دهد یک بار برنامه را بسازید و آن را روی اندروید XR و سایر دستگاه‌های XR مستقر کنید.

هنگام استفاده از یونیتی، از اکوسیستم و ابزارهای بالغ XR آن بهره‌مند می‌شوید. این سیستم عامل از قبل بسته‌های تثبیت‌شده‌ای مانند XR Interaction Toolkit ، افزونه OpenXR ، لایه‌های ترکیب XR ، XR Hands ، یک فروشگاه گسترده از ابزارها و کامپوننت‌های آماده XR و ابزارهای شبیه‌سازی و تست XR را ارائه می‌دهد. و از آنجایی که یونیتی ۶ نوامبر گذشته منتشر شد، از عملکرد بهبود یافته Universal Render Pipeline (URP) ، پشتیبانی بهتر از گرافیک Vulkan و پروفایل‌های ساخت پیشرفته آن نیز بهره‌مند خواهید شد.

در اینجا چند نمونه پروژه برای ایده گرفتن از آنچه می‌توان انجام داد، آورده شده است:

تنظیمات ضروری: پایه و اساس توسعه شما

الزامات و نصب یونیتی ۶

برای ساخت برنامه خود به Unity 6 نیاز دارید، زیرا نسخه‌های قبلی از Android XR پشتیبانی نمی‌کنند. ابتدا Unity Hub و سپس Unity 6 را به همراه ماژول Android Build Support با دنبال کردن این مراحل نصب کنید.

unity6.png

پروفایل‌های ساخت اندروید XR: ساده‌سازی پیکربندی

پروفایل‌های ساخت یونیتی، دارایی‌های پروژه هستند که تنظیمات و پیکربندی‌های خاص پلتفرم شما را ذخیره می‌کنند. بنابراین به جای نیاز به تنظیم دستی ۱۵ تا ۲۰ تنظیم مختلف در چندین منو، می‌توانید از یک پروفایل ساخت برای انجام خودکار این کار استفاده کنید.
شما می‌توانید پروفایل‌های ساخت خودتان را ایجاد کنید، اما فعلاً توصیه می‌کنیم از پروفایل ساخت اختصاصی اندروید XR که خودمان ایجاد کرده‌ایم استفاده کنید.

شما می‌توانید با انتخاب File > Build Profile از پروژه Unity خود، پروفایل ساخت خود را انتخاب کنید. برای دستورالعمل‌های کامل، به صفحه گردش کار Develop for Android XR مراجعه کنید .

اگر تغییراتی ایجاد کنید، می‌توانید یک پروفایل ساخت جدید ایجاد کنید تا با تیم خود به اشتراک بگذارید. به این ترتیب، تجربه ساخت ثابتی را در همه زمینه‌ها تضمین می‌کنید.

ساخت پروفایل.png

پس از این مراحل، می‌توانید APK خود را برای دستگاه‌های Android XR بسازید و اجرا کنید.

رابط برنامه‌نویسی گرافیکی: چرا ولکان اهمیت دارد؟

پس از اینکه پروژه Unity خود را با پروفایل ساخت Android XR راه‌اندازی کردید، ابتدا توصیه می‌کنیم مطمئن شوید که Vulkan را به عنوان API گرافیکی خود تنظیم کرده‌اید. Android XR به عنوان یک پلتفرم مبتنی بر Vulkan ساخته شده است. در مارس 2025، گوگل اعلام کرد که Vulkan اکنون API گرافیکی رسمی برای اندروید است . این یک API گرافیکی مدرن و سطح پایین است که به توسعه‌دهندگان کمک می‌کند تا عملکرد GPUهای مدرن را به حداکثر برسانند و ویژگی‌های پیشرفته‌ای مانند ردیابی پرتو و چندرشته‌ای را برای تصاویر بازی واقع‌گرایانه و همه‌جانبه باز می‌کند.

این استانداردها بهترین سازگاری را برای برنامه‌های موجود شما فراهم می‌کنند و مشکلات و هزینه‌های پورت کردن را کاهش می‌دهند. و امکان فعال کردن ویژگی‌های پیشرفته اندروید XR مانند URP Application Space Warp و foveated rendering را فراهم می‌کنند.

یونیتی ۶ به طور خودکار Vulkan را مدیریت می‌کند، بنابراین وقتی از پروفایل ساخت اندروید XR استفاده می‌کنید، یونیتی Vulkan را به عنوان API گرافیکی شما پیکربندی می‌کند. این تضمین می‌کند که بدون هیچ گونه پیکربندی دستی به تمام ویژگی‌های پیشرفته اندروید XR دسترسی خواهید داشت.

شما می‌توانید تنظیمات API گرافیکی خود را با رفتن به «ویرایش» > «تنظیمات پروژه» > «پخش‌کننده» > «زبانه اندروید» > «سایر تنظیمات» > «APIهای گرافیکی» تأیید کنید.

appentrypoint.png

درک اکوسیستم بسته‌بندی

دو بسته مختلف وجود دارد که می‌توانید برای اندروید XR در یونیتی استفاده کنید. یکی با استفاده از افزونه‌های اندروید XR برای یونیتی و دیگری با استفاده از بسته Unity OpenXR: Android XR.

ممکن است این‌ها شبیه به هم به نظر برسند، اما صبور باشید .

بسته Unity OpenXR: Android XR بسته رسمی Unity برای پشتیبانی از Android XR است. این بسته اکثر ویژگی‌های Android XR را که از طریق استانداردهای OpenXR در دسترس هستند، ارائه می‌دهد. همچنین امکان ادغام AR Foundation را برای ویژگی‌های واقعیت ترکیبی فراهم می‌کند. مزیت اصلی استفاده از بسته Unity OpenXR: Android XR این است که یک API یکپارچه برای پشتیبانی از دستگاه‌های XR ارائه می‌دهد.


در حالی که افزونه‌های اندروید XR برای یونیتی ، بسته XR گوگل است که به طور خاص برای توسعه برای دستگاه‌های اندروید XR طراحی شده است. این بسته Unity OpenXR را با ویژگی‌های اضافی مانند حالت‌های ترکیبی محیط، مش‌بندی صحنه، ردیابی تصویر و ردیابی بدن تکمیل می‌کند. نکته منفی این است که شما فقط می‌توانید برای دستگاه‌های اندروید XR توسعه دهید.


اینکه کدام یک را انتخاب کنید به نیازهای خاص شما بستگی دارد، اما ما معمولاً Unity OpenXR: Android XR را توصیه می‌کنیم، زیرا انعطاف‌پذیری بسیار بیشتری برای دستگاه‌هایی که برنامه شما با آنها سازگار است به شما می‌دهد و سپس بر اساس نیازهای برنامه خود می‌توانید افزونه‌های Android XR را برای Unity اضافه کنید.

نحوه نصب بسته‌ها

برای افزودن یک بسته جدید، در حالی که پروژه شما در یونیتی باز است، 'Window' > 'Package Management' > 'Package Manager' را انتخاب کنید.

از اینجا می‌توانید این بسته‌ها را از طریق تب «Unity Registry» نصب کنید:

مدیر بسته.png

شما می‌توانید بسته اندروید XR برای یونیتی را از طریق گیت‌هاب و با انتخاب آیکون ➕، انتخاب گزینه «نصب بسته از git URL» و سپس وارد کردن «https://github.com/android/android-xr-unity-package.git» نصب کنید.

packagemanager2.png

ویژگی‌های مورد نیاز OpenXR

حالا که بسته‌های مورد نیازتان را نصب کرده‌اید، بیایید برخی از ویژگی‌های اصلی را فعال کنیم تا پروژه‌مان کار کند.

می‌توانید تنظیمات OpenXR را برای اندروید فعال کنید: 'ویرایش' -> 'تنظیمات پروژه' -> 'مدیریت افزونه XR' -> روی اندروید کلیک کنید و OpenXR را فعال کنید

xrpluginmgmt.png

در مرحله بعد باید پشتیبانی از «پشتیبانی از اندروید XR» را فعال کنیم، در صورت نیاز سایر ویژگی‌های OpenXR را نیز پوشش خواهیم داد. در حال حاضر فقط به فعال بودن پشتیبانی از اندروید XR نیاز داریم.

ورودی

اندروید XR از ورودی برای دست‌ها، صدا، ردیابی چشم، صفحه کلید و کنترلرها پشتیبانی می‌کند. توصیه می‌کنیم XR Interaction Toolkit و XR Hands را نصب کنید زیرا این دو شامل بهترین پیش‌ساخت‌ها برای شروع کار هستند. با استفاده از این پیش‌ساخت‌ها، هر آنچه را که برای پشتیبانی از دست‌ها و کنترلرها در برنامه خود نیاز دارید، خواهید داشت.

xrinteractiontoolkit.png

پس از نصب هر دو ابزار XR Hands و XR Interactive، توصیه می‌کنم Starter Assets و Hands Interaction Demo را وارد کنید. سپس باید پروفایل‌های Hand Interaction و Khronos Simple Controller را فعال کنید و ویژگی‌های Hand Tracking Subsystem و Meta Hand Tracking Aim را روشن کنید.

شما می‌توانید این تنظیمات را با رفتن به مسیر 'ویرایش' > 'تنظیمات پروژه' > 'مدیریت افزونه XR' > 'OpenXR' ویرایش کنید.

پروفایل‌ها.png

ما همچنین پیش‌ساخته Unity، XR Origin ، را توصیه می‌کنیم که موقعیت و جهت کاربر را در فضای XR نشان می‌دهد. این شامل تجهیزات دوربین و اجزای ردیابی مورد نیاز برای رندر تجربه XR شما از دیدگاه صحیح است.

ساده‌ترین راه برای اضافه کردن این پیش‌ساخته، وارد کردن آن از نسخه آزمایشی ادغام دست‌ها است که قبلاً وارد کردیم و می‌توانید آن را در اینجا پیدا کنید : 'Hands Integration Toolkit' > 'Hand Interaction' > 'Prefabs' > 'XR Origin'

پیش‌ساخته‌ها.png

من استفاده از این Prefab را به جای گزینه 'XR Origin' در اشیاء بازی خود توصیه می‌کنم، زیرا از XR Input Modality Manager استفاده می‌کند که به طور خودکار بین دست‌ها و کنترلرهای کاربر جابجا می‌شود. این کار بهترین موفقیت را برای جابجایی بین دست‌ها و کنترلرها به شما می‌دهد.

حریم خصوصی و مجوزها: ایجاد اعتماد کاربر

هر چیزی که می‌سازید، باید مجوزهای زمان اجرا را از کاربران دریافت کنید. دلیل این امر آن است که درک صحنه، ردیابی چشم، ردیابی چهره و ردیابی دست، دسترسی به داده‌هایی را فراهم می‌کنند که ممکن است برای کاربر حساس‌تر باشند.

این قابلیت‌ها اطلاعات شخصی عمیق‌تری نسبت به برنامه‌های سنتی دسکتاپ یا موبایل ارائه می‌دهند، بنابراین مجوزهای زمان اجرا تضمین می‌کنند که کاربران شما کنترل کاملی بر داده‌هایی که برای اشتراک‌گذاری انتخاب می‌کنند، دارند. بنابراین، برای رعایت سیاست‌های امنیتی و حریم خصوصی اندروید، اندروید XR مجوزهایی برای هر یک از این ویژگی‌ها دارد.

برای مثال، اگر از بسته XR Hands برای حرکات دست سفارشی استفاده می‌کنید، باید مجوز ردیابی دست (به پایین مراجعه کنید) را درخواست کنید زیرا این بسته باید اطلاعات زیادی در مورد دست‌های کاربر را ردیابی کند. این شامل مواردی مانند ردیابی حالت‌های مفاصل دست و سرعت‌های زاویه‌ای و خطی می‌شود.

توجه: برای مشاهده لیست کامل افزونه‌هایی که نیاز به مجوز دارند، به اطلاعات موجود در وب‌سایت توسعه‌دهندگان XR مراجعه کنید .

  const string k_Permission = "android.permission.HAND_TRACKING";

#if UNITY_ANDROID
void Start()
{
    if (!Permission.HasUserAuthorizedPermission(k_Permission))
    {
        var callbacks = new PermissionCallbacks();
        callbacks.PermissionDenied += OnPermissionDenied;
        callbacks.PermissionGranted += OnPermissionGranted;
        
        Permission.RequestUserPermission(k_Permission, callbacks);
    }
}

void OnPermissionDenied(string permission)
{
    // handle denied permission
}


void OnPermissionGranted(string permission)
{
    // handle granted permission
}

#endif // UNITY_ANDROID

افزایش کیفیت بصری با لایه‌های ترکیبی

لایه ترکیب (Composition Layer) روش پیشنهادی برای رندر کردن عناصر رابط کاربری است. این لایه‌ها امکان نمایش عناصر را با کیفیتی بسیار بالاتر در مقایسه با خط لوله رندر استاندارد یونیتی فراهم می‌کنند، زیرا همه چیز مستقیماً به کامپوزیتور پلتفرم رندر می‌شود.

برای مثال، اگر متن را نمایش می‌دهید، رندر استاندارد یونیتی احتمالاً متن تار، لبه‌های نرم و مصنوعات بصری خواهد داشت. در حالی که با لایه‌های ترکیبی، متن واضح‌تر، خطوط بیرونی واضح‌تر و در کل تجربه کاربری بهتر خواهد بود.


علاوه بر متن، ویدیو، تصاویر و عناصر رابط کاربری را نیز با کیفیت بسیار بالاتری رندر می‌کند. این کار را با استفاده از پشتیبانی بومی برای لایه‌های آهنگساز زمان اجرا انجام می‌دهد.

برای فعال کردن لایه‌های ترکیبی، Package Manager را باز کنید، «Unity Register» را انتخاب کنید، سپس «XR Composition Layers» را نصب کنید.

ساخت و اجرا

حالا که بسته‌های OpenXR خود را نصب کرده‌اید و ویژگی‌های آن را فعال کرده‌اید، یک تنظیمات پیش‌ساخته برای حرکت دست و سر دارید، می‌توانید صحنه خود را بسازید و مستقیماً برای آزمایش روی هدست خود مستقر کنید.

قدم بعدی: گسترش مهارت‌هایتان

حالا که محیط توسعه اندروید XR خود را تنظیم کرده‌اید و مفاهیم کلیدی را درک کرده‌اید، مراحل بعدی برای ادامه مسیر توسعه XR شما به شرح زیر است:

منابع ضروری برای ادامه تحصیل:

نمونه پروژه‌هایی که باید بررسی شوند:

    نوشته شده توسط:

    ادامه مطلب