Buat App Realiti Diperkaya Killer: 7 Langkah

Buat App Realiti Diperkaya Killer: 7 Langkah

Isi kandungan:

Anonim

Tutorial ini akan menunjukkan kepada anda cara menggunakan API dalam Perpaduan supaya anda boleh membuat aplikasi realiti diperkukuhkan anda lebih bijak. Semuanya akan ditujukan kepada pemula. Kami akan menggunakan enjin permainan video Unity 3D kerana ini akan membolehkan kami membuat aplikasi platform silang yang akan berfungsi pada IOS atau Android. Plugin Vuforia akan membolehkan kami mengakses aliran kamera dan kelas WWW Unity akan membolehkan kami berkomunikasi dengan API melalui protokol http. Ini adalah mekanisme yang sama yang digunakan apabila anda mengakses laman web dalam penyemak imbas anda.

Saya rasa permohonan pembunuh sebenar realiti bertambah bukan permainan, tetapi sebaliknya menggunakan AR sebagai alat untuk benar-benar meningkatkan persepsi semasa anda terhadap realiti. Cara untuk melakukan ini adalah dengan membuat aplikasi yang berkaitan yang memanfaatkan kuasa internet.

Setakat perisian anda akan memerlukan Unity 3D:

dan SDK Vuforia:

Bekalan:

Langkah 1: Kelas WWW Perpaduan

Jadi, kelas WWW Unity adalah langkah pertama dalam melakukan perkara ini kerana ia membolehkan anda membuat permintaan melalui http ke pelayan. Apabila anda melawati tapak web yang anda lakukan hanya ini, anda sedang menaip url ke pelayar anda dan membuat permintaan http ke pelayan di alamat itu.Pelayan web mengembalikan kod html yang digunakan penyemak imbas anda untuk memberikan halaman web.

Langkah 2: Mari Buat Permintaan

Untuk menggambarkan hal ini lebih lanjut boleh membuat permintaan untuk www.unity.com.

Mulakan projek perpaduan baru, buat skrip C # yang dipanggil ujian dan seret ke kamera utama anda.

Pertama buat enumerator yang dipanggil permintaan, kami ingin bekerjasama dengan objek www di dalam coroutine supaya kami tidak menghentikan keseluruhan program semasa proses diproses. Kemudian mari pastikan kod ini akan dijalankan dengan memulakan coroutine dalam fungsi permulaan.

Di dalam coroutine mari membuat rentetan dan menentukannya sebagai alamat web ke Perpaduan.

Buat objek baru www dan lulus dalam url.

Pulangan pendapatan www (supaya kami tidak meneruskan operasi sehingga dilakukan).

Buat rentetan yang dipanggil html dan tentukannya sebagai www.text, yang serangkaian teks yang dikembalikan dari permintaan kami.

Apabila kita mencetak ini kita akan melihat bahawa ini adalah html dari unity.com

Langkah 3: Pengenalan kepada Web Scraping.

Sekarang tanpa masuk ke api, kita boleh mengurai data ini untuk mengeluarkan beberapa maklumat berguna dari laman web untuk digunakan dalam aplikasi kami. Ini dipanggil mengikis web. Katakanlah contohnya kita mahu mengekstrak tajuk halaman web.

Kami tahu dari html standard bahawa tajuk akan menjadi antara dua tag tajuk.

Tajuk permulaan dan tajuk tajuk akhir: Ini Adalah Tajuk Laman Web

Hanya tahu ada cara yang lebih baik dan lebih bersih untuk melakukan ini, tetapi demi masa hanya memanipulasi tali untuk menarik apa yang kita inginkan.

Sekarang kita telah mendapat rentetan yang dipisahkan oleh aksara individu. Oleh itu, apabila kita mencetak html 2 kita mendapat watak ketiga (sejak indeks bermula pada 0). Mari kita buat senarai string dan pisah dengan aksara baris baru. Sekarang apabila kita mencetak htmlList 2, kita akan mendapat baris ketiga teks.

Untuk mencari baris yang mengandungi "tajuk" kita boleh gelung melalui setiap baris teks menggunakan gelung untuk.

Kita boleh mencari baris yang dikehendaki dengan memeriksa sama ada baris semasa mengandungi tajuk perkataan. Sebaik sahaja kami mendapati baris itu, kami dapat menggantikan tag tajuk pertama dengan rentetan kosong, dan kemudian menggantikan tag tajuk kedua dengan rentetan kosong. Mari kita cetak hasilnya dan kemudian kita boleh berpecah di sini kerana kita tidak perlu lagi. Hasilnya sekarang akan mengandungi tajuk halaman web. Jika anda mahukan kaedah yang lebih baik, tetapi sedikit lebih rumit untuk mencapai ini, perhatikan ungkapan biasa atau REGEX.

Langkah 4: API

Sekarang mari lihat ke membuat permintaan API sebenar. Kami akan menggunakan API Google Custom Search. Mula-mula kita memerlukan kunci yang unik. Jadi cari carian api carian api google dan pergi ke pautan pertama. Buat akaun jika anda belum lagi mempunyai dan buat aplikasi. Dayakan API carian tersuai untuk aplikasi ini dan salin kekunci ke clipboard anda.

Anda boleh melakukan 100 carian sehari secara percuma dengan API tertentu ini.

Langkah 5: Hai, saya JSON, Suka Memenuhi Anda.

Kembali ke Perpaduan dan mulailah dengan memadam semuanya sehingga kami menetapkan rentetan html kami. Mari renarkan "json" ini kerana kita akan kembali objek JSON. Mari kita salin kunci API kami di mana saja sekarang.

Kembali ke google dan klik pada "Menggunakan Rest." Jika anda melihat di sini, anda akan mendapati api memerlukan 3 parameter, kunci api, id enjin carian tersuai, dan pertanyaan carian. Salin permintaan contoh dan lepaskannya ke dalam baris URL kembali dalam Perpaduan.

Pindahkan kunci lesen anda ke lokasi yang sesuai di url, dan kerana kami tidak akan membuat enjin carian tersuai, tukar parameter cx untuk cref dan menjadikannya rentetan kosong.

Buat pemboleh ubah rentetan peribadi dipanggil pertanyaan dan tetapkannya sama dengan apa sahaja yang anda mahu cari. Kembali ke url dan keluarkan semuanya selepas "q =" dan concatenate rentetan dengan pemboleh ubah pertanyaan yang kami tentukan. Sekarang apabila kita mencetak respons, kita akan mempunyai semua hasil google teratur ke dalam objek JSON yang kemas.

Langkah 6: Sekarang Apa?

Hebat, kini kita mempunyai lebih banyak lagi kebodohan.

Nah, anda boleh mengekstrak apa yang anda mahu menggunakan perpustakaan yang dipanggil LitJSON.

github.com/lbv/litjson

Itu akan membolehkan kita dengan rapi menangani semua maklumat ini.

Untuk pembaikan cepat, anda hanya boleh mengurai seperti yang kita lakukan dengan html dari contoh terakhir.

Sekarang untuk mendapatkan ini terlihat dalam paparan permainan, klik kanan dalam hirarki Perpaduan dan buat teks UI baru.

Tambah ini menggunakan arahan ke skrip anda: "UnityEngine.UI;"

Kini cuma mencipta rujukan kepada teks UI dengan mendefinisikan your GameObject public yourTextObject;

Seret dalam teks ke slot kosong yang baru saja dibuat di dalam pemeriksa.

Kini anda boleh menetapkannya seperti ini:

yourTextObject.GetComponent().text = "Apa sahaja yang anda mahu."

Langkah 7: Mari Ambil Langkah Lebih Lanjut …

Saya membuat tutorial ini kerana saya belajar banyak cuba mencari penyelesaian untuk kekurangan API carian imej terbalik percuma. Google membolehkan anda melakukan carian imej terbalik dalam penyemak imbas tetapi tidak melalui http seperti semua perkhidmatan mereka yang lain.

Saya bertekad untuk mendapatkan ini untuk bekerja jadi inilah yang saya lakukan:

Ternyata hasil permintaan google mencari gambar terbalik akan dialihkan berulang kali dan akhirnya diberikan sebagai html melalui javascript. Jadi, mendapatkan data yang kami perlukan tidak mungkin dalam Perpaduan sahaja. Satu-satunya cara yang saya fikirkan untuk mendapatkannya adalah untuk mewujudkan api saya sendiri dalam jenis php. Saya boleh lulus url imej saya ingin mencari dari Unity ke skrip php saya telah dihoskan pada pelayan. Skrip php berikut pengalihan dari google menggunakan cURL dan dapat melihat javascript yang diberikan html menggunakan Node.js, yang merupakan persekitaran javascript pelayan sisi.

Jika anda berminat untuk mempelajari lebih lanjut mengenai ini, lihat video dalam intro ini.

Terima kasih kerana melihat, dan beritahu saya jika anda mempunyai sebarang pertanyaan!