RealityUI adalah kumpulan utilitas dan objek UI untuk realityKit. Objek UI yang termasuk dalam RealityUI bertujuan untuk menawarkan standar antarmuka pengguna yang akrab, tetapi dalam pengaturan 3D untuk realitas augmented dan virtual melalui RealityKit.
RealityUI juga memiliki koleksi komponen untuk berinteraksi dengan entitas apa pun melalui interaksi sentuhan atau seret.



Tambahkan URL repositori ini ke proyek XCODE 11+ Anda di bawah Project > Swift Packages .
https://github.com/maxxfrazer/RealityUI.git
Tambahkan import RealityUI ke bagian atas file Swift Anda untuk memulai.
Semua komponen yang digunakan dalam realityUI harus didaftarkan sebelum digunakan, cukup panggil RealityUI.registerComponents() di mana saja di aplikasi Anda sebelum kelas apa pun yang dimulai dengan RUI diinisialisasi untuk menghindari masalah dengan itu. Untuk informasi lebih lanjut tentang apa yang dimaksud dengan mendaftarkan komponen, lihat dokumentasi Apple di sini.
Dengan visionos, gerakan dapat diaktifkan pada pandangan reality menggunakan View/addRUIDragGesture() atau View/addRUITapGesture() pengubah, atau dengan menambahkan gerakan langsung dengan .gesture(RUIDragGesture()) atau .gesture(RUITapGesture()) . Wawancara reality mungkin terlihat seperti ini:
RealityView { content in
let swtch = RUISwitch ( )
swtch . scale = . init ( repeating : 0.1 )
content . add ( swtch )
} . addRUIDragGesture ( )Cuplikan di atas menambahkan sakelar/sakelar interaktif ke tempat kejadian.
Gerakan ini berfungsi untuk entitas apa pun dengan ruidragComponent, misalnya:
RealityView { content in
let movable = try ! await ModelEntity ( named : " toy_biplane " )
movable . generateCollisionShapes ( recursive : false )
movable . components . set ( RUIDragComponent ( type : . move ( nil ) ) )
movable . components . set ( InputTargetComponent ( ) )
content . add ( movable )
} . addRUIDragGesture ( ) 
Mengaktifkan Gerakan RealityUI dapat dilakukan ARView menyebut RealityUI.enableGestures(.all, on: ARView) .
Ruislider, Ruiswitch, Ruistepper, dan RUIBIUTTON semuanya menggunakan RUIDragComponent , yang membutuhkan .ruiDrag . Jika Anda menambahkan elemen yang menggunakan komponen RUITapComponent Anda dapat menggunakan Gesture .tap . Saya hanya akan merekomendasikan menggunakan .all saat mengaktifkan gerakan, karena ini pasti akan bergerak ketika realityUI berkembang.
RealityUI.enableGestures(.all, on: arView)
Secara default semua entitas realitas cukup besar. Ini digunakan untuk membakukan ukuran sehingga Anda selalu tahu apa yang diharapkan. Sebagai contoh, semua jempol UI adalah bola dengan diameter 1 meter, yaitu 1 unit dalam realityKit, ± penyesuaian bantalan apa pun. Semua entitas realitas yang dihadapi [0, 0, -1] secara default. Agar mereka menunjuk ke kamera pengguna, atau .zero , Anda dapat menggunakan .look(at:,from:,relativeTo:) metode seperti demikian: .look(at: .zero, from: [0, 0, 1]) . Atau jika Anda ingin berbalik langsung jika Anda telah memposisikannya di [0, 0, -1] , atur orientasi ke simd_quatf(angle: .pi, axis: [0, 1, 0]) . Menggunakan metode .look () bekerja di sini dengan mengatur nilai at: ke arah tombol harus digunakan.
Ruiswitch adalah sakelar sakelar 3D dengan keadaan hidup dan mati. Kotak pembatas default adalah 2x1x1m

Lebih detail
Ruistepper digunakan untuk menambah atau mengurangi nilai. Kotak pembatas default adalah 2x1x0.25m

Lebih detail
Trek interaktif untuk mewakili nilai interpolasi. Kotak pembatas default adalah 10x1x1m termasuk ibu jari.

Lebih detail
RUIBUTTON digunakan untuk memulai tindakan tertentu. Tindakan di sini hanya akan memicu jika gerakan dimulai pada tombol, dan juga berakhir pada tombol yang sama. Ini mirip dengan acara uicontrol touchupinside. Kotak pembatas tombol default sebelum menekan tombol ke pangkalan adalah [1, 1, 0.3]

Lebih detail
Semua entitas kontrol realitas menggunakan gerakan khusus yang tidak standar dalam realityKit, tetapi beberapa dari mereka telah diisolasi sehingga siapa pun dapat menggunakannya untuk memanipulasi adegan realityKit mereka sendiri.
Seret objek di mana saja di ruang angkasa dengan 3 derajat kebebasan dengan ruidragComponent, menggunakan tipe .move.

Jenis ini memiliki kendala opsional, untuk memperbaiki gerakan dalam kriteria tertentu:
Kendala Kotak : Membatasi pergerakan dalam BoundingBox yang ditentukan, menyediakan area yang ditentukan di mana entitas dapat bergerak.
Poin Kendala : Membatasi pergerakan ke satu set titik yang telah ditentukan, diwakili sebagai array SIMD3<Float> .
Kendala klem : Menggunakan fungsi penjepitan khusus untuk mengontrol gerakan. Fungsi ini mengambil SIMD3<Float> sebagai input dan mengembalikan SIMD3<Float> untuk menentukan posisi baru.
Buka kunci kemampuan untuk memutar entitas realityKit hanya dengan satu jari.

Lebih detail
Buat objek dalam adegan RealityKit Anda dengan suatu tindakan, dan secara otomatis akan diambil setiap kali pengguna mengetuknya!
Tidak ada GIF untuk yang ini, tetapi periksa RuitapComponent untuk melihat cara menambahkan ini ke entitas di aplikasi Anda.
Jika Anda malah ingin menggunakan sesuatu yang mirip dengan ketuk "Touch Up Inside", Anda dapat menggunakan RuidRagComponentType/klik.

Tidak ada banyak animasi yang ditambahkan secara default ke RealityKit, terutama tidak ada yang bisa Anda ulangi. Lihat halaman Wiki tentang cara menggunakan animasi ini.
Putar entitas di sekitar sumbu dengan mudah menggunakan Ruispin.
Lebih detail
Kocok entitas untuk menarik perhatian, atau menandakan sesuatu salah.
Lebih detail
Sudah mungkin untuk menempatkan teks di RealityKit, tetapi saya merasa perlu sedikit peningkatan.
Dengan Ruitext Anda dapat dengan mudah membuat entitas dengan teks yang ditentukan dengan pusat kotak pembatas di tengah entitas Anda.

Lebih detail
Informasi lebih lanjut tentang semua yang disediakan dalam paket Swift ini dalam dokumentasi.
Juga lihat contoh proyek untuk iOS di repositori ini.