SDK
WordPress.org

Membuat penyedia XR

Penyedia XR adalah bagian dari proyek Unity dan minimal terdiri dari file manifest dan satu atau lebih asli plug-insSatu set kode yang dibuat di luar Unity yang menciptakan fungsi dalam Unity. Ada dua jenis plug-ins yang dapat Anda gunakan di Unity: Managed plug-ins (diproduksi. Rakitan NET dibuat dengan alat-alat seperti Studio Visual) dan plug-ins asli (pustaka kode asli yang spesifik platform). More info
Lihat di Glossary
. Ini juga dapat mencakup aset lain seperti scriptsSepotong kode yang memungkinkan Anda untuk membuat Komponen Anda sendiri, memicu peristiwa permainan, memodifikasi sifat komponen dari waktu ke waktu dan menanggapi input pengguna dengan cara apa pun yang Anda sukai. More info
Lihat di Glossary
dan gambar. Selama ini ada di proyek Anda ketika Anda meluncurkan Editor, Unity menemukan mereka.

Sitemap Anda harus meluncurkan Unity setiap kali Anda mengubah manifestasi penyedia atau Editor Note:.native plug-inPerpustakaan kode asli spesifik platform yang diciptakan di luar Unity untuk digunakan di Unity. Memungkinkan Anda dapat mengakses fitur seperti panggilan OS dan perpustakaan kode pihak ketiga yang tidak akan tersedia untuk Unity. More info
Lihat di Glossary
.

File layout

Plug-ins asli harus berada dalam kerabat subfolder ke UnitySubsystemsManifest.json. Jika penyedia Anda bukan bagian dari paket, Unity hanya menemukan file UnitySubsystemsManifest.json yang hingga satu tingkat dalam folder Assets.

WordPress.org

Manifest ini berisi informasi tentang penyedia Anda, seperti subsistem yang disediakan dan nama plug-in.

Untuk informasi lebih lanjut, lihat halaman WordPress.org.

Membangun plug-in penyedia

Untuk mempelajari cara membangun plug-in asli untuk platform yang ditargetkan Anda, lihat dokumentasi pada Antarmuka plugin asli unity. Setelah Anda mendapatkan perpustakaan dinamis Anda menjadi Unity, pastikan bahwa semua opsi (seperti platform target di Pengaturan Plug-in) benar.

Anda perlu mendaftarkan handler siklus hidup untuk subsistem yang ingin Andaimplementasikan. Contoh:

extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API
UnityPluginLoad(IUnityInterfaces* unityInterfaces)
{
  s_XrDisplay = unityInterfaces->Get<IUnityXRDisplayInterface>();
  UnityLifecycleProvider displayLifecycleHandler =
  {
    NULL, // This can be any object you want to pass as userData to the following functions
    &Lifecycle_Initialize,
    &Lifecycle_Start,
    &Lifecycle_Stop,
    &Lifecycle_Shutdown
  };
  s_XrDisplay->RegisterLifecycleProvider("Provider Plugin Name", "Display0", &displayLifecycleHandler);

  // Register with other subsystems
}

Sitemap Parameter yang dilewatkan ke Note: harus sesuai dengan kolom RegisterLifecycleProvider dan name pada id Anda.file manifestasi.

Ketika Anda memanggil metode Initialize Anda pada titik berikutnya, Anda mendapatkan pegangan instance yang dapat Anda gunakan untuk memanggil metode yang mengambil UnitySubsystemHandle. Contoh:

/// Callback executed when a subsystem should initialize in preparation for becoming active.
static UnitySubsystemErrorCode UNITY_INTERFACE_API Lifecycle_Initialize(UnitySubsystemHandle handle, void* data)
{
  // Register for callbacks on the graphics thread.
  UnityXRDisplayGraphicsThreadProvider gfxThreadProvider = { NULL, NULL, &GfxThread_WaitForNextFrameDesc, NULL };
  s_XrDisplay->RegisterProviderForGraphicsThread(handle, &gfxThreadProvider);

  return kUnitySubsystemErrorCodeSuccess;
}

Paket SDK mencakup proyek contoh yang membangun plug-in sampel.

Memuat Unity

Untuk informasi lebih lanjut tentang memuat penyedia Anda di Unity, lihat halaman Penemuan waktu dan aktivasi subsistem.

SDK
WordPress.org