Мазмұны:

Толықтырылған шындық веб -шолушысы: 9 қадам
Толықтырылған шындық веб -шолушысы: 9 қадам
Anonim
Толықтырылған шындық веб -шолушысы
Толықтырылған шындық веб -шолушысы
Толықтырылған шындық веб -шолушысы
Толықтырылған шындық веб -шолушысы

Бүгін біз Android үшін кеңейтілген шындық веб -шолғышын жасаймыз.

Бұл идея ExpressVPN маған YouTube -тен демеушілік бейне түсіруді сұраған кезде басталды. Бұл менің бірінші жұмысым болғандықтан, мен олардың өніміне сәйкес келетін нәрсе жасағым келді. Бірден мен ойладым, мен кеңейтілген шындық веб -шолғыш жасаймын, осылайша біз Интернетті AR -де VPN арқылы шолуға болады. Бұл қиын болуы мүмкін емес пе? Қате. Мен бұл жобаға кейбір шектеулер қойдым, себебі мен оны жаңа нәрселерді үйрену үшін қолданғым келді.

Бірінші нөмір мен Android үшін болғанын қаладым, себебі мен әрқашан IOS -пен жұмыс жасаймын.

Екінші нөмір, мен ақылы API қолданғым келмеді, мен барлығына бұл жобаны жүктеп алып, желіде ешнәрсе төлемей -ақ іске қосуға мүмкіндік алғым келді. Сонымен, IBM Watson жоқ, Google API жоқ және Unity Asset дүкенінен ештеңе жоқ.

БАСТАҢЫЗ!

1 -қадам: Бірінші нәрсе бірінші

Бірінші заттар бірінші
Бірінші заттар бірінші

Мен жұмыс істегім келген бірінші нәрсе - бұл мәтінді сөйлеу үшін жақсы шешім, сондықтан біз өз дауысымызбен интернеттен іздеу жүргізе аламыз. Менің ойымша, дауыс - бұл қолмен бақылаудың жақсы шешімі болмайынша, AR -де өзара әрекеттесудің тамаша әдісі. Мен білемін, Android -де мәтіндік функцияларға арналған ана тілі бар, сондықтан Google -ден жылдам іздеу Unity үшін кейбір плагиндерді табуға көмектеседі.

Мен бұл плагинді бірінші рет бірлік үшін таптым:

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

Мен мұны сынап көрдім және ол керемет жұмыс істеді. Жалғыз мәселе, сіз оны ARCore -мен қолданған кезде, ол қалқымалы терезені жасайды және Unity фонында болып көрінеді және сіз бақылауды жоғалтасыз.

Бұл идеалдан аз болды.

2 -қадам: Android үшін мәтінмен жұмыс жасау

Android үшін мәтінмен жұмыс жасау
Android үшін мәтінмен жұмыс жасау

Сондықтан мен қалқымалы терезені ашпаған және көп таба алмайтын плагиндерді іздей бастадым, бірақ мен бұл Android кітапханасын таптым:

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

Енді мен Android -тің түпнұсқалық дамуы туралы ештеңе білмеймін, бірақ мен өзімді сынап көргім келді, сондықтан мен осы кітапханаға көпір кодын жазып, оны Unity -де пайдалану үшін Android плагиніне айналдыруға тырысамын деп ойладым. сағаттық көңілсіздікке.

Содан кейін ол жұмыс істеді …

3 -қадам: алынған сабақтар

Сабақтар
Сабақтар

Сонымен, мен бұл процесте бірлікке арналған Android плагинін қалай жасау керектігін бірден түсінбейтін екі нәрсені білдім.

Біріншіден, егер сіздің плагин қызықты нәрсе жасайтын болса, сізге Android қосымшасының контекстіне сілтеме қажет болуы мүмкін. Сіз мұны Unity қондырғысынан class.jar файлын Android жобасына кітапхана ретінде қосу арқылы жасай аласыз. Сондықтан файлдық жоба құрылымына өтіңіз, содан кейін бағдарлама модуліне тәуелділіктер қойындысын таңдаңыз. Мұнда jar файлын қосу үшін плюс түймесін басуға болады. Unity конструкциясына, ойнату қозғалтқыштарына, андроидплейерге, вариацияларға, моноға, әзірлеуге, сыныптарға және ақырында class.jar өтіңіз. Тек компиляция үшін ауқымды өзгертіңіз. Енді жаңа java файлында сіз жасай аласыз:

UnityPlayer.currentActivity.getApplicationContext ();

және бұл сілтемені сізге қажет жерде қолданыңыз.

Келесі бір таңқаларлық мәселе, бұл дауыстық функцияны тек негізгі ағынмен іске қосуға болады, әйтпесе сіз қате аласыз. Unity -де мұны істеу үшін жоғарыдағы суреттегідей AndroidJavaRunnable ретінде UI Thread -те жұмыс істеу үшін функциялар мен плагинді айту керек.

4 -қадам: күрес

Күресулер
Күресулер

Осы кезде мен Android маманымын деп ойлаймын.

Мен интернетте андроид өндірушісіне жұмысқа жүгінемін, мен андроид жапсырмалары мен футболкаларға тапсырыс беремін. Өмір жақсы. Енді мен Unity -де веб -бетті қалай жасау керектігін білуге көшуге дайынмын. Кішкене зерттеулер жүргізгеннен кейін, қабылданған шешім Android WebView пайдалану екенін көремін. Бұл браузерде барлығын жүктемей-ақ, Android қосымшасында өзара әрекеттесетін веб-сайттарды көрсетуге мүмкіндік беретін Android класы. Негізінде, бұл қолданушыларды қолданбада сақтауға мүмкіндік береді. Кәсіптің бірінші тәртібі - бұл біреудің ашық бастапқы коды үшін бірлік плагинін жасағанын білу. Мен алдымен осы плагинді қолданып көремін:

github.com/gree/unity-webview

бірақ ол тек WebView -ді Unity GUI деңгейіне көрсетеді, сондықтан бұл жұмыс істемейді. Содан кейін мен VR үшін бұл плагинді табамын:

github.com/IanPhilips/UnityAndroidVRBrowse…

Бұл WebView -ді текстураға және оның өзара әрекеттесуіне беруге мүмкіндік береді, бұл мен оны сынап көргенше және менің барлық басуларымды бірлікке кедергі келтіретінін білгенше бұл жауап деп ойладым.

5 -қадам: Сурет тақтасына оралу

Сурет тақтасы дегенге қайта келу
Сурет тақтасы дегенге қайта келу

Мен бұл үшін өз плагинімді жасауға тырысамын, себебі маған бірлікке веб -сайттың суретін жіберу керек. Бұл туралы зерттеулер жүргізе отырып, мен андроид кенепті нүктелік кескінге сақтай алатынымды білдім, содан кейін оны-p.webp

Ақыры жұмыс істеді.

Енді мен веб -сайттан скриншот аламын, сондықтан оның аркортпен қалай жұмыс істейтінін көрейік …

Олай емес.

Мен galaxy s7 -ді қолданамын деймін, бұл жаңа телефон емес, бірақ бұл WebView материалдары әлі де бүкіл қосымшаны қатырады және негізінен жарамсыз. Менің ойымша, бұл WebView мен ARCore екеуі де негізгі ағынды шамадан тыс жүктейді, бірақ мен білмеймін. Сурет тақтасы дегенге қайта келу. Егер біз бұл жұмысты жасағымыз келсе, біз ауыр жүктемені қандай да бір серверге жүктеуіміз керек. Біраз Google -ді жасағаннан кейін сіз Node.js кітапханасы бар WebShot деп аталатын веб -сайттың скриншотын түсіре аласыз, ол Phantom JS -ті қолданады, ол сценарийлік бассыз шолғыш.

6 -қадам: Ақырында біз бір жерге жетеміз

Ақыры біз бір жерге жетеміз
Ақыры біз бір жерге жетеміз

Енді мен Node.js қалай қолдануға болатынын түсінуім керек.

Сіз белгілі бір порт нөмірін тыңдайтын Node.js сценарийін жасай аласыз және ол осы портқа тиіп кеткенде, ол кейбір ақпаратты қайтара алады. Біз мұны 3000 портында тыңдайтын сәлемдеуші әлемдік сценарий құру арқылы тексере аламыз. Біз сценарий бар каталогқа CD енгізе аламыз және оны түйін, содан кейін сценарий атауын орындау арқылы іске қосамыз. Егер біз IP -мекен -жайға, содан кейін браузердегі 3000 портына жүгінсек, біз оның сәлем әлеміне оралғанын көреміз. Енді мен түйінді кішкене түсінсем, мен оны серверде жұмыс жасай аламын, мен өз веб -сайттарымды hawkhost.com сайтында орналастырамын. Мен серверге SSH енгіземін және node.js сәлемдесуінің сәлемдесуінің бірнеше сценарийлерін іске қосуға тырысамын … және ештеңе жұмыс істемейді. Тағы бірнеше сағаттық араласудан кейін мен хостинг серверінде тек екі порт бар екенін білдім, яғни 3000 және 12001.

Сол порттарды және IP хостинг серверлерін қолдана отырып, мен әлемнің жақсы үлгісін ала аламын. Содан кейін мен WebShot модулін орнатамын және URL жібере алатын шағын сценарий жасаймын, ол маған сол веб -мекенжай бойынша веб -сайттың суретін қайтарады. Енді мен осы түйін сценарийін бастай аламын және Unity -ден менің серверімнің нақты IP -портына және нөміріне http POST сұрауын жібере аламын, ол маған сол веб -сайттың бейнесі болып табылатын байт массивін қайтарады. Енді тағы бір мәселе - мен терминалды жапқан кезде процесс аяқталады және тыңдауды тоқтатады. Мен тағы бірнеше зерттеулер жүргіземін және мәңгілік деп аталатын модульді табамын. NPM мәңгілікке орнатылады, енді мен мәңгілікке өтіп, сценарийді мәңгілікке бастай аламын және ол мен кіріп, оны қайтадан тоқтатқанға дейін жұмысын жалғастырады.

7 -қадам: ол жұмыс істейді

Ол істейді!
Ол істейді!

Тамаша. Бірақ бұл жеткілікті салқын емес.

Мен AR -де Интернетті қараудың мәні туралы ойласам, бұл бос орын қосудан туындайды. Біз енді бір экранмен шектелмейміз, сондықтан мен іздеу жолын көз алдымда елестетуге мүмкіндік беретін нәрсе жасағым келеді. Келіңіздер, алдымен іздеу бетін жүктейік, содан кейін сол бетті тексеріп шығыңыз және әрбір іздеу нәтижесін сілтеме ретінде шығарыңыз, оны біз негізгі экранымыздың үстіндегі сурет ретінде жүктей аламыз. Біз мұны Google нәтижелерінің бірінші бетін жоятын және оны мәңгілікке іске қосатын басқа Node.js сценарийімен жасай аламыз. Бұл Google іздеу API көмегімен әлдеқайда тиімдірек жасалуы мүмкін, бірақ бұл жобаның екінші ережесі ақылы API емес еді, сондықтан біз әзірге осылай жасаймыз. Енді бізде әр сілтеменің суреттері бар, біз оларды басқан сайын үлкен экранға жүктей аламыз, бізде жақсы кішкентай шолғыш бар. Бұл толық жұмыс істемейді, бірақ мен оны қабылдаймын. Жарайды, егер сіз бұл жобаны өзіңіз іске қосқыңыз келсе, менің Github -ға кіріп, expressVPN жобасын жүктеңіз:

github.com/MatthewHallberg/ARBrowserExpres…

8 -қадам: Барлығын іске қосу

Барлығын жұмыспен қамтамасыз ету
Барлығын жұмыспен қамтамасыз ету

Оны Unity -де ашыңыз және бәрін компьютерде жергілікті түрде іске қосайық. Алдымен сіз құрылғының IP -адресін табуыңыз керек, егер сіз Mac -те болсаңыз, опцияны ұстап тұрыңыз және Wi -Fi белгісін басып IP -ті көрсетіңіз.

Бірлікке оралыңыз және шолғыш контроллерінің сценарийін ашып, IP мекенжайын енгізіңіз және оны алмасу буферіне көшіріңіз. NodeScripts қалтасын тауып, оны жұмыс үстеліне қойыңыз, қалтаны ашып, екі кеңейтімді де.js етіп өзгертіңіз. Әр сценарийді ашып, IP мекенжайын IP -ге өзгертіңіз. Енді терминалды ашыңыз, біз кейбір заттарды орнатуымыз керек. Егер сізде HomeBrew жоқ болса, оны орнатыңыз.

-қайнату торабы

-npm веб -суретті орнатыңыз

-npm инсталл плирирон

-npm орнату кәсіподағы

-npm cheerio орнатыңыз

Енді біз екі сценарийді де nodescripts қалтасына бастай аламыз және getimage.js түйінін жасай аламыз, содан кейін жаңа терминал терезесін ашып, getlinks.js түйінін жасай аламыз, екі терминалды терезені де қалдырып, редакторға оралыңыз. Егер біз ойнауды бассақ, бәрі жақсы жұмыс істеуі керек. Біз сонымен қатар файлға кіре аламыз, параметрлерді орнатамыз және оны телефонға алу үшін құрастыру және іске қосу түймесін басамыз! Егер сіз серверлерді тоқтатқыңыз келсе, c терминалын немесе q терминалын басып, терминалды жабыңыз.

МІНЕ БІТТІ!

Ұсынылған: