Satura rādītājs:

Paplašinātās realitātes tīmekļa pārlūkprogramma: 9 soļi
Paplašinātās realitātes tīmekļa pārlūkprogramma: 9 soļi

Video: Paplašinātās realitātes tīmekļa pārlūkprogramma: 9 soļi

Video: Paplašinātās realitātes tīmekļa pārlūkprogramma: 9 soļi
Video: The Internet of Things by James Whittaker of Microsoft 2024, Novembris
Anonim
Paplašinātās realitātes tīmekļa pārlūkprogramma
Paplašinātās realitātes tīmekļa pārlūkprogramma
Paplašinātās realitātes tīmekļa pārlūkprogramma
Paplašinātās realitātes tīmekļa pārlūkprogramma

Šodien mēs gatavojamies izveidot paplašinātās realitātes tīmekļa pārlūkprogrammu Android ierīcēm.

Šī ideja sākās, kad ExpressVPN lūdza mani izveidot sponsorētu YouTube videoklipu. Tā kā šī ir mana pirmā, es gribēju darīt kaut ko tādu, kas attiecas uz viņu produktu. Gandrīz uzreiz es domāju: ohh, es vienkārši izveidošu paplašinātās realitātes tīmekļa pārlūkprogrammu, lai mēs varētu pārlūkot tīmekli AR, izmantojot VPN. Tas nevar būt tik grūti, vai ne? Nepareizi. Es izvirzīju sev dažus ierobežojumus šim projektam, jo vēlējos to izmantot, lai uzzinātu dažas jaunas lietas.

Pirmais, ko es gribēju, lai tas būtu paredzēts Android ierīcēm, jo es vienmēr daru lietas ar IOS.

Otrais - es negribēju izmantot nevienu apmaksātu API, es vēlējos, lai ikviens varētu vienkārši lejupielādēt šo projektu un to palaist, nemaksājot par jebkādām lietām tiešsaistē. Tātad ne IBM Watson, ne Google API un nekas no Unity Asset veikala.

SĀKSIM!

1. darbība. Vispirms pirmās lietas

Pirmās lietas vispirms
Pirmās lietas vispirms

Pirmā lieta, ko es vēlējos sākt strādāt, bija labs risinājums runai un tekstam, lai mēs varētu veikt meklēšanu tiešsaistē ar savu balsi. Es arī domāju, ka balss ir lieliska mijiedarbības metode AR, vismaz līdz brīdim, kad mums ir labs roku izsekošanas risinājums. Es zinu, ka operētājsistēmā Android ir zināma teksta funkcionalitāte, tāpēc ātra Google meklēšana palīdzēs mums atrast dažus Unity spraudņus.

Es pirmo reizi saskāros ar šo spraudni vienotībai:

www.google.com/search?rlz=1C5CHFA_enUS816U…

Es to izmēģināju, un tas strādāja lieliski. Vienīgā problēma bija tā, ka, lietojot to kopā ar ARCore, tas ģenerē vietējo uznirstošo lodziņu un, šķiet, pamato Unity, un jūs galu galā zaudējat izsekošanu.

Tas bija mazāk nekā ideāli.

2. darbība. Runas pārvēršana tekstā Android ierīcēm

Runas pārvēršana tekstā Android ierīcēm
Runas pārvēršana tekstā Android ierīcēm

Tāpēc es sāku meklēt dažus spraudņus, kas neizraisīja vietējo uznirstošo lodziņu un nevarēju atrast daudz, bet galu galā atradu šo android bibliotēku:

github.com/maxwellobi/Android-Speech-Recog…

Tagad es burtiski neko nezinu par vietējo Android izstrādi, bet es gribēju izaicināt sevi, tāpēc es sapratu, ka es vienkārši mēģināšu uzrakstīt tilta kodu šai bibliotēkai un pārvērst to par Android spraudni lietošanai Unity. Atkal, tā bija kļūda un rezultātā līdz neapmierinātības stundām.

Tad beidzot tas nostrādāja…

3. solis: gūtās atziņas

Gūtās mācības
Gūtās mācības

Tātad šajā procesā es uzzināju divas lietas, kuras nav uzreiz pamanāmas, vienkārši meklējot googlē, kā izveidot Android spraudni vienotībai.

Ja spraudnis darīs kaut ko interesantu, iespējams, jums būs jāsaņem atsauce uz Android lietotnes kontekstu. To var izdarīt, pievienojot class.jar failu no Unity instalācijas savam Android projektam kā bibliotēkai. Tāpēc dodieties uz failu projekta struktūru un pēc tam izvēlieties lietotņu moduļa cilni Atkarības. Šeit jūs varat noklikšķināt uz pluszīmes pogas, lai pievienotu jar failu. Dodieties uz savu Unity būvējumu, atskaņošanas dzinējiem, androidplayer, variācijām, mono, izstrādi, nodarbībām un visbeidzot nodarbībām.jar. Mainiet tvērumu tikai kompilēšanai. Tagad jaunā Java failā varat veikt šādas darbības:

UnityPlayer.currentActivity.getApplicationContext ();

un izmantojiet šo atsauci visur, kur jums to vajag.

Nākamā dīvainā problēma ir tā, ka šo balss funkcionalitāti var palaist tikai galvenajā pavedienā, pretējā gadījumā jūs saņemsit kļūdas. Lai to izdarītu programmā Unity, jums ir jāpasaka, ka funkcijas un spraudnis darbojas lietotāja saskarnes pavedienā kā AndroidJavaRunnable, kā parādīts attēlā.

4. solis: Cīņas

Cīņas
Cīņas

Šobrīd domāju, ka esmu Android eksperts, Es tiešsaistē piesakos Android izstrādātāju darbiem, es pasūtīju android uzlīmes un t-kreklus. Dzīve ir laba. Tagad es esmu gatavs pāriet pie tā, lai izdomātu, kā izveidot tīmekļa lapu vietnē Unity. Pēc nelielas izpētes es redzu, ka pieņemtais risinājums ir izmantot Android WebView. Šī ir tikai Android klase, kas ļauj renderēt vietnes, kas ir savstarpēji mijiedarbojamas Android lietotnē, neielādējot visu pārlūkprogrammā. Būtībā tas ir paredzēts, lai jūs varētu saglabāt lietotājus savā lietotnē. Pirmā darba kārtība ir noskaidrot, vai kāds šim nolūkam ir izveidojis vienotības spraudni, kas ir atvērtā koda. Vispirms izmēģinu šo spraudni:

github.com/gree/unity-webview

bet tas tikai padara WebView uz Unity GUI slāni, tāpēc tas nedarbosies. Tad es atrodu šo VR spraudni:

github.com/IanPhilips/UnityAndroidVRBrowse…

tas ļauj jums padarīt WebView par tekstūru un pat tā mijiedarbojamu, kas ir lieliski. Es domāju, ka šī bija atbilde, līdz es to izmēģināju un uzzināju, ka tas bloķē visus manus klikšķus no vienotības.

5. darbība. Atpakaļ pie zīmēšanas dēļa

Atpakaļ pie zīmēšanas dēļa
Atpakaļ pie zīmēšanas dēļa

Es tikai mēģināšu izveidot savu spraudni šim nolūkam, jo viss, kas man tiešām ir nepieciešams, ir nosūtīt vienotībai vietnes attēlu. Veicot dažus pētījumus par to, es uzzinu, ka es varu saglabāt android audeklu bitkartē un pēc tam kodēt to-p.webp

Beidzot tas izdevās.

Tagad es varu iegūt ekrānuzņēmumu no vietnes, tāpēc redzēsim, kā tas darbojas ar arcore…

Tā nav.

Es domāju, ka es izmantoju galaktiku s7, kas nav jaunākais tālrunis, taču šī WebView informācija joprojām iesaldē visu lietotni un būtībā nav izmantojama. Es pieņemu, ka tas ir tāpēc, ka gan WebView, gan ARCore pārslogo galveno pavedienu, bet es īsti nezinu. Atpakaļ pie zīmēšanas dēļa. Ja mēs vēlamies, lai šis darbs izdotos, mums būs jāpārkrauj smagā celšana uz kaut kādu serveri. Pēc tam, kad esat veicis Google meklēšanu, izrādās, ka varat uzņemt vietnes ekrānuzņēmumu ar Node.js bibliotēku ar nosaukumu WebShot, kas izmanto Phantom JS, kas ir skriptējams bezgalvains pārlūks.

6. solis: beidzot mēs kaut kur nokļūstam

Beidzot mēs kaut kur nokļūstam
Beidzot mēs kaut kur nokļūstam

Tagad man ir jāizdomā, kā pie velna izmantot Node.js….

Izrādās, ka varat izveidot skriptu Node.js, kas klausās konkrētu porta numuru, un, kad tas saņem trāpījumu, tas var atgriezt informāciju. Mēs to varam pārbaudīt, izveidojot mazu sveiciena pasaules skriptu, kas klausās portu 3000. Mēs varam ierakstīt direktorijā ar skriptu un palaist to, veicot mezglu un pēc tam skripta nosaukumu. Ja mēs pārlūkprogrammā nokļūstam savā IP adresē un pēc tam ostā 3000, mēs redzam, ka tā atgriežas sveika pasaule. Tagad, kad man ir neliela izpratne par mezglu, es varu to sākt strādāt savā serverī, kurā es mitinu savas vietnes, kurās ir hawkhost.com. Es SSH savā serverī un mēģinu palaist dažus sveikas pasaules node.js skriptus … un nekas nedarbojas. Pēc dažām stundām ilgas muļķošanās es uzzinu, ka manam konkrētajam mitināšanas serverim ir atvērti tikai divi porti, proti, 3000 un 12001.

Tātad, izmantojot šīs ostas un savus mitināšanas serveru IP, es varu iegūt labās pasaules piemēru. Tālāk es instalēju WebShot moduli un izveidoju nelielu skriptu, kuram varu nodot URL, un tas man atgriezīs vietnes attēlu šajā tīmekļa adresē. Tagad es varu sākt šo mezgla skriptu un nosūtīt http POST pieprasījumu no Unity uz mana servera konkrēto IP un porta numuru, kas man atgriezīs baitu masīvu, kas ir šīs vietnes attēls. Paldies Dievam. Tagad cita problēma ir tad, kad es aizveru termināli, process beidzas un beidz klausīties. Es veicu vēl dažus pētījumus un atrodu moduli ar nosaukumu mūžīgi. NPM instalēšana uz visiem laikiem, un tagad es varu pāriet uz visiem laikiem un uz visiem laikiem sākt skriptu, un tas turpinās darboties, līdz es pieteicos un atkal to pārtraucu.

7. solis: tas darbojas

Tas strādā!
Tas strādā!

Lieliski. Bet tas nav pietiekami vēss.

Kad es domāju par tīmekļa pārlūkošanas vērtību AR, tas nāk no vietas pievienošanas. Mēs vairs neaprobežojamies tikai ar vienu ekrānu, tāpēc es vēlos izveidot kaut ko tādu, kas ļauj man vizualizēt savu meklēšanas ceļu tieši manā priekšā. Tāpēc ielādēsim pirmo meklēšanas lapu un pēc tam pārmeklēsim šo lapu un izvilksim visus meklēšanas rezultātus kā saiti, ko pēc tam varēsim ielādēt kā attēlu virs galvenā ekrāna. Mēs to varam izdarīt ar citu Node.js skriptu, kas nokopē Google rezultātu pirmo lapu un nepārtraukti to palaiž. To varētu izdarīt daudz efektīvāk, izmantojot Google meklēšanas API, taču noteikums Nr. 2 šim projektam nebija apmaksāta API, tāpēc mēs to darīsim šādi. Tagad, kad mums ir katras saites attēli, mēs varam ielādēt tos uz lielāka ekrāna katru reizi, kad mēs uz tiem noklikšķinām un uzplaukums, šeit ir jauka, maza pārlūkprogramma. Tas nav pilnībā funkcionāls, bet es to pieņemšu. Labi, tāpēc, ja vēlaties pats vadīt šo projektu, dodieties uz manu Github un lejupielādējiet expressVPN projektu:

github.com/MatthewHallberg/ARBrowserExpres…

8. solis: lai viss darbotos

Lai viss strādātu
Lai viss strādātu

Atveriet to programmā Unity un ļaujiet jūsu datorā viss darboties lokāli. Vispirms jums jāatrod jūsu ierīces IP adrese, tāpēc, ja izmantojat Mac, vienkārši turiet opciju un noklikšķiniet uz wifi simbola, lai atklātu savu IP.

Atgriezieties vienotībā un atveriet pārlūkprogrammas kontrollera skriptu, ievadiet tur savu IP adresi un nokopējiet to starpliktuvē. Atrodiet mapi nodeScripts un ielieciet to uz darbvirsmas, atveriet mapi un nomainiet abus paplašinājumus uz.js. Atveriet katru skriptu un mainiet IP adresi uz savu IP. Tagad atveriet termināli, un mums ir jāinstalē dažas lietas. Instalējiet HomeBrew, ja jums tas vēl nav.

-brūves instalācijas mezgls

-npm instalēt tīmekļa attēlu

-npm uzstādīt dzīvokli

-npm instalēt savienību

-npm instalēt cheerio

Tagad mēs varam sākt abus skriptus, lai tie tiktu nodoti mapē nodescripts, un veikt mezglu getimage.js. Un pēc tam atveriet jaunu termināļa logu un veiciet mezglu getlinks.js. Atstājiet abus termināļa logus un dodieties atpakaļ uz redaktoru. Ja nospiežam play, visam vajadzētu darboties labi. Mēs varam arī doties uz failu, veidot iestatījumus un noklikšķināt uz veidot un palaist, lai to iegūtu savā tālrunī! Ja vēlaties apturēt serverus, vienkārši nospiediet vadības taustiņu c vai komandu q, lai aizvērtu visu termināli.

TIEŠI TĀ!

Ieteicams: