Geospatial API را برای برنامه Unity (AR Foundation) خود که iOS را هدف قرار می دهد، فعال کنید

تنظیمات برنامه خود را طوری پیکربندی کنید که بتواند از Geospatial API استفاده کند.

پیش نیازها

قبل از ادامه، مطمئن شوید که مفاهیم اساسی AR و نحوه پیکربندی یک جلسه ARCore را درک کرده اید.

برای اطلاعات بیشتر در مورد Geospatial API به مقدمه Geospatial API مراجعه کنید.

اگر در توسعه با ARCore تازه کار هستید، برای اطلاعات در مورد نیازهای نرم افزار و سخت افزار، پیش نیازها و سایر اطلاعات ویژه پلتفرم هایی که استفاده می کنید، به شروع به کار مراجعه کنید.

برای استفاده از ARCore Geospatial API، پروژه شما باید از AR Foundation و ARCore Extensions for AR Foundation پشتیبانی کند.

ARCore API را فعال کنید

قبل از استفاده از Visual Positioning System (VPS) در برنامه خود، ابتدا باید ARCore API را در پروژه Google Cloud جدید یا موجود فعال کنید. این سرویس وظیفه میزبانی، ذخیره و رفع لنگرهای جغرافیایی را بر عهده دارد.

مجوز بدون کلید ترجیح داده می شود، اما مجوز کلید API نیز پشتیبانی می شود.

کتابخانه های مورد نیاز را به برنامه خود اضافه کنید

پس از مجاز کردن برنامه خود برای فراخوانی ARCore API، باید کتابخانه‌هایی را اضافه کنید تا ویژگی‌های Geospatial را در برنامه خود فعال کنید.

  1. به Edit > Project Settings > XR Plug-In Management > ARCore Extensions بروید. مطمئن شوید که iOS Support Enabled انتخاب شده باشد.
  2. در قسمت ویژگی های اختیاری ، Geospatial را انتخاب کنید.

قابلیت های Geospatial را در پیکربندی جلسه فعال کنید

هنگامی که عملکرد Geospatial در برنامه شما فعال شد، قابلیت های Geospatial را در پیکربندی جلسه AR برنامه خود فعال کنید تا بتواند با ARCore API ارتباط برقرار کند:

  1. مطمئن شوید که پوشه Assets پروژه حاوی یک شیء قابل اسکریپت ARCoreExtensionsConfig باشد. برای ایجاد یکی، در قسمت Assets کلیک راست کرده و Create > XR > ARCore Extensions Config را انتخاب کنید.
  2. شیء اسکریپت پذیر ARCoreExtensionsConfig را در پوشه Assets خود انتخاب کنید و حالت Geospatial را روی Enabled قرار دهید.

  3. شی بازی ARCore Extensions را برای استفاده از پیکربندی ARCoreExtensionsConfig پیکربندی کنید. در صفحه سلسله مراتب ، شیء بازی ARCore Extensions را که در ابتدای راه‌اندازی ARCore Extensions ایجاد کردید، پیدا کنید و فیلد ARCore Extensions Config را به شیء قابل اسکریپت ARCoreExtensionsConfig در پوشه Assets خود متصل کنید.

از کاربر بخواهید اجازه استفاده از داده های دستگاه را بدهد

برنامه‌هایی که از ARCore Geospatial API استفاده می‌کنند باید به کاربر درخواستی برای تأیید و اجازه استفاده از داده‌های دستگاهش ارائه دهند. برای اطلاعات بیشتر به الزامات حریم خصوصی کاربر مراجعه کنید.

سازگاری دستگاه را بررسی کنید

همه دستگاه هایی که از ARCore پشتیبانی می کنند از Geospatial API نیز پشتیبانی نمی کنند. برای بررسی سازگاری دستگاه کاربر، با AREarthManager.IsGeospatialModeSupported() تماس بگیرید. اگر FeatureSupported.Unsupported را برگرداند، سعی نکنید جلسه را پیکربندی کنید.

از کاربر برای مجوزهای مکان در زمان اجرا بخواهید

برای فعال کردن سرویس‌های مکان یونیتی در اسکریپتی که درخواست‌های مجوز زمان اجرا را فعال می‌کند، موارد زیر را انجام دهید:

  1. در Project Settings > iOS > Other Settings > Location Usage Description نام برنامه ای که درخواست مجوز می کند را وارد کنید.

  2. خدمات مکان یونیتی را برای راه اندازی درخواست مجوز زمان اجرا به شرح زیر فعال کنید:

    public void OnEnable()
    {
        Input.location.Start();
    }
    
    public void OnDisable()
    {
        Input.location.Stop();
    }
    

    برای اطلاعات بیشتر به مستندات LocationService Unity مراجعه کنید.

در دسترس بودن Geospatial را در مکان فعلی دستگاه بررسی کنید

از آنجایی که Geospatial API از ترکیبی از VPS و GPS برای تعیین موقعیت جغرافیایی استفاده می کند، تا زمانی که دستگاه قادر به تعیین موقعیت مکانی خود باشد، API می تواند مورد استفاده قرار گیرد. در مناطقی با دقت GPS پایین، مانند فضاهای داخلی و محیط‌های شهری متراکم، API برای ایجاد حالت‌های با دقت بالا به پوشش VPS متکی است. در شرایط معمولی می توان انتظار داشت که VPS دقت موقعیتی تقریباً 5 متر و دقت چرخشی 5 درجه را ارائه دهد. از AREarthManager.CheckVpsAvailability() برای تعیین اینکه آیا یک مکان مشخص دارای پوشش VPS است یا خیر استفاده کنید.

Geospatial API همچنین در مناطقی که پوشش VPS ندارند قابل استفاده است. در محیط‌های بیرونی که موانع بالای سرشان کم است یا اصلاً وجود ندارد، GPS ممکن است برای ایجاد یک حالت با دقت بالا کافی باشد.

بعدش چی