Satura rādītājs:

Izveidosim paplašinātās realitātes lietotni MEMES !: 8 soļi
Izveidosim paplašinātās realitātes lietotni MEMES !: 8 soļi

Video: Izveidosim paplašinātās realitātes lietotni MEMES !: 8 soļi

Video: Izveidosim paplašinātās realitātes lietotni MEMES !: 8 soļi
Video: 003-01 Heyn Ha-adam part 1-detailed drash on Hebrew text of Genesis 3.22-CC detailed closed captions 2024, Novembris
Anonim
Izveidosim paplašinātās realitātes lietotni MEMES!
Izveidosim paplašinātās realitātes lietotni MEMES!

Šajā pamācībā mēs izveidosim paplašinātās realitātes lietotni Android un IOS programmā Unity3D, kas izmanto Google API mēmu meklēšanai. Unity izmantosim Vuforia zemes plaknes noteikšanu, tāpēc šī mobilā lietotne darbosies lielākajai daļai Android un IOS lietotāju. Izmantojot Vuforia, mēs varam arī noenkurot attēlus vienā vietā, lai mēs varētu staigāt pa šo attēlu lauku, un objekti paliks tur, kur tie ir.

Mēs arī izmēģināsim jauno IBM Watson API, lai mēs varētu veikt šos meklējumus ar savu balsi un izmantot to dabiskās valodas apstrādi.

Tātad sliktās ziņas nav tas, ka neviena no šīm API nav pilnīgi bezmaksas, bet labā ziņa ir tā, ka tās abas var brīvi izmēģināt. Google pielāgotās meklēšanas API nodrošina 100 bezmaksas meklējumus dienā, un IBM Watson API nodrošina pirmo mēnesi bez maksas.

Īsāk sakot, šī lietotne saņems mūsu runu no Unity mikrofona, nosūtiet to uz IBM Watson serveriem, kuri mums atgriezīs tekstu. Pēc tam mēs ņemsim šo tekstu un nosūtīsim to uz Google serveriem, kuri mums atgriezīs attēlu attēla sarakstu JSON formā.

1. darbība. Iestatiet IBM Watson SDK programmā Unity

Iestatiet IBM Watson SDK programmā Unity
Iestatiet IBM Watson SDK programmā Unity

Lai sāktu darboties Watson API, vispirms ir jāiegūst akreditācijas dati no viņu vietnes. Dodieties uz Console.bluemix.net, izveidojiet kontu un piesakieties. Dodieties uz savu IBM kontu un dodieties uz mākoņu lietuves Orgs un izveidojiet jaunu vietu. Tagad dodieties uz savu informācijas paneli un noklikšķiniet, lai pārlūkotu pakalpojumus, pievienojiet runu teksta pakalpojumam, jo to mēs izmantosim. Izvēlieties savu reģionu, organizāciju un telpu un izveidojiet projektu. Tagad apakšā redzēsit savus API akreditācijas datus.

Lejupielādējiet Unity, ja jums tā vēl nav, un importējiet IBM Watson SDK no Unity līdzekļu veikala. Mēs to varam pārbaudīt, izveidojot tukšu spēles objektu un nosaucot to par IBM Watson un pievienojot straumēšanas skripta piemēru. Šis skripts jau ir iestatīts, lai ierakstītu audio no vienotības un nosūtītu to uz Vatsona serveriem apstrādei.

Pagaidām mēs tikai izmantosim šo skripta piemēru, jo mums ir daudz darāmā, bet varbūt nākamreiz mēs varam iedziļināties Vatsona lietās, jo es vēlētos kaut ko darīt ar Vision API.

2. darbība. Izmēģiniet IBM Watson Text to Speech

Izmēģiniet IBM Watson tekstu runai
Izmēģiniet IBM Watson tekstu runai

Šis skripts meklē lietotāja interfeisa teksta objektu, tāpēc ļauj izveidot jaunu lietotāja interfeisa pogu, tādējādi iegūstot vajadzīgo tekstu. Mēs izmantosim pogu vēlāk. Iestatiet audekla mērogu atbilstoši ekrāna izmēram un nedaudz mainiet pogas izmēru. Nostipriniet to apakšējā kreisajā stūrī. Velciet šo tekstu tukšajā slotā. Atveriet skriptu un ļaujiet pievienot mūsu IBM Watson akreditācijas datus, atrodiet, kur tiek izmantots teksts "resultsField", un iestatiet to tikai uz "alt.transcript", jo mēs izmantosim šo tekstu, lai meklētu Google. Tagad, pirms mēs to varam pārbaudīt, mums ir dinamiski jāpielāgo teksta lielums, lai viss, ko mēs sakām, iederētos lodziņā. Atgriezieties pie teksta un iestatiet to vislabāk. Ievadiet kādu tekstu, lai to pārbaudītu. Tagad, noklikšķinot uz atskaņošanas, mūsu vārdi tiks pārrakstīti tekstā no Vatsona teksta uz runu API.

3. darbība. Iestatiet Google pielāgotās meklēšanas API

Iestatiet Google pielāgotās meklēšanas API
Iestatiet Google pielāgotās meklēšanas API

Nākamais, kas mums jādara, ir iestatīt Google pielāgotās meklēšanas API, lai to izmantotu Unity. Augstā līmenī mēs nosūtīsim HTTP pieprasījumu no Unity Google serveriem, kas mums atbildēs JSON formātā.

Tāpēc dodieties uz Google pielāgotās meklēšanas JSON API iestatīšanas lapu, noklikšķiniet, lai iegūtu API atslēgu un izveidotu jaunu lietotni. Turiet to atvērtu. Tagad mēs varam doties uz vadības paneli. Ievietojiet jebko, lai vietnes varētu meklēt, nosauciet to neatkarīgi un noklikšķiniet uz Izveidot.

Noklikšķiniet uz vadības paneļa un ļaujiet veikt dažas izmaiņas: mēs vēlamies galvenokārt meklēt memes un ieslēgt attēlu meklēšanu. Meklēšanas vietnēs pārslēdziet to uz visu tīmekli. Noklikšķiniet uz atjaunināt, lai saglabātu visu.

Tagad atrodiet Google api explorer un dodieties uz pielāgotās meklēšanas API. Tas ļaus mums formatēt JSON atbildi, ko saņemam no Google. Tāpēc pagaidām ievadiet jebko vaicājumam, ielīmējiet meklētājprogrammas ID, filtrā ievietojiet 1, lai mēs nesaņemtu dublikātus, ievietojiet 10 zem numura, jo tas ir maksimālais rezultātu skaits, ko varam atgriezt vienlaikus, ievietojiet attēlu meklēšanas veidam, jo tas ir viss, ko mēs vēlamies atgriezt. Sākumā ievadiet 1 un visbeidzot zem laukiem ievietojiet "preces/saite", jo par katru atgriezto vienumu mēs vēlamies tikai attēla saiti. Tagad, noklikšķinot uz izpildīt, jūs redzēsit, ka mēs saņemam 10 jaukas attēlu saites.

Tagad mums šīs bildes ir jāiegūst Vienotībā.

4. darbība: iestatiet Vuforia programmā Unity

Iestatiet Vuforia programmā Unity
Iestatiet Vuforia programmā Unity

Ļaujiet Vuforia darboties, lai mēs varētu izmantot viņu zemes plaknes noteikšanu. Saglabājiet pašreizējo ainu un dodieties uz būvēšanas iestatījumiem. Pārslēdziet savu platformu uz Android vai IOS un, ja izmantojat IOS, komplekta identifikatoram pievienojiet kaut ko, pievienojiet kameras un mikrofona lietošanas aprakstu. Sadaļā XR iestatījumi pārbaudiet, vai Vuforia paplašinātā realitāte tiek atbalstīta.

Tagad ainā izdzēsiet galveno kameru un pievienojiet Vuforia ARCamera. Dodieties uz konfigurācijas sadaļu un mainiet izsekošanas režīmu uz pozicionālo. Noņemiet atzīmi no visām datu bāzēm, jo mums tās nav vajadzīgas.

Tagad pievienojiet lidmašīnas meklētāju, un mums ir jāpārvalda tā noklusējuma uzvedība, jo mēs vēlamies izvietot zemes plaknes posmu tikai vienu reizi, tāpēc ļaujiet atrast skriptu Izvietošanas vienreiz Vuforia vietnē. Ievietojiet šo skriptu Unity un ievietojiet to lidmašīnas meklētājā, noņemot veco skriptu, kas tur bija. Mainiet režīmu uz interaktīvu un pārliecinieties, ka funkcija “OnInteractiveHitTest” tiek izsaukta šajā Vienotības notikumā. Kamēr mēs esam šeit, iestatīsim pogu, kuru iepriekš izveidojām, kad būsim atraduši iezemēto plakni, un iestatīsim tās noklusējuma stāvokli uz neaktīvu. Tagad ievietojiet notikuma vietā zemes plakni un nomainiet to uz gaisa vidu, jo mēs vēlamies, lai visas bildes peld gaisā. Velciet šo iezemēto plakni plaknes meklētāja tukšajā slotā.

5. darbība: izveidojiet attēla saliekamo elementu

Izveidojiet attēlu saliekamo elementu
Izveidojiet attēlu saliekamo elementu

Pirms mēs sākam salikt visus šos gabalus, mums ir jāizveido saliekams spēles objekts, ko mēs varam parādīt ikreiz, kad tiek ielādēts attēls. Tāpēc izveidojiet tukšu spēles objektu zem zemes plaknes stadijas un nosauciet to par "picPrefab". Kā bērns izveidojiet četrstūri un mērogojiet to ar 2, pagrieziet tā y par 180 grādiem tā, lai vecāku priekšējā vektors, kas parādīts kā zila bultiņa, būtu četrstūra priekšpuse.

Izveidojiet jaunu skriptu ar nosaukumu "PictureBehavior" un pievienojiet to mūsu picPrefab.

Tagad velciet šo pic saliekamo savā aktīvu mapē, un tas ir tas, ko mēs uzliksim katram attēlam.

Mūsu "PictureBehavior" skriptam vajadzētu izskatīties šādi:

izmantojot System. Collections;

izmantojot System. Collections. Generic; izmantojot UnityEngine; public class PictureBehavior: MonoBehaviour {public Renderer quadRenderer; privāts Vector3 vajadzīgais amats; void Start () {// apskatīt kameras transformāciju. LookAt (Camera.main.transform); Vector3 wantAngle = jauns Vector3 (0, transform.localEulerAngles.y, 0); transform.rotation = Quaternion. Euler (vēlamais leņķis); // piespiest gaisā wantPosition = transform.localPosition; transform.localPosition += jauns Vector3 (0, 20, 0); } void Update () {transform.localPosition = Vector3. Lerp (transform.localPosition, wantPosition, Time.deltaTime * 4f); } public void LoadImage (virknes URL) {StartCoroutine (LoadImageFromURL (url)); } IEnumerator LoadImageFromURL (virknes URL) {WWW www = jauns WWW (url); ienesīguma atdeve www; quadRenderer.material.mainTexture = www.teksture; }}

6. darbība: izveidojiet skriptu Google API

Izveidojiet skriptu Google API
Izveidojiet skriptu Google API

Tagad ļaujiet ievilkt atsauci uz četrriteņu atveidotāju no mūsu "picPrefab".

Mums ir jāizveido tikai divi skripti, tāpēc ļaujim izveidot C# skriptu ar nosaukumu GoogleService.cs un PictureFactroy.cs.

Iekš “GoogleService” ielīmējiet šo kodu, kas pieprasa mūsu pieprasījumu:

izmantojot System. Collections;

izmantojot System. Collections. Generic; izmantojot UnityEngine; izmantojot UnityEngine. UI; publiskas klases Google pakalpojums: MonoBehaviour {public PictureFactory pictureFactory; public Text buttonText; private const string API_KEY = "PUT API KEY ŠEIT !!!!!"; public void GetPictures () {StartCoroutine (PictureRoutine ()); } IEnumerator PictureRoutine () {buttonText.transform.parent.gameObject. SetActive (nepatiess); virknes vaicājums = buttonText.text; query = WWW. EscapeURL (vaicājums + "memes"); // dzēst vecos attēlus pictureFactory. DeleteOldPictures (); // saglabāt kameru uz priekšu vektoru, lai mēs varētu pārvietoties, kamēr objekti tiek novietoti Vector3 cameraForward = Camera.main.transform.forward; // mēs varam iegūt tikai 10 rezultātus vienlaicīgi, tāpēc mums ir jāseko un jāsaglabā mūsu progress, mainot starta numuru pēc katrām 10 int rowNum = 1; (int i = 1; i <= 60; i + = 10) {string url = "https://www.googleapis.com/customsearch/v1?q=" + query + "& cx = 011535004225295624669%3Afeb1gwic6bs & filter = 1 & num = 10 & searchType = image & start = " + i +" & fields = items%2Flink & key = " + API_KEY; WWW www = jauns WWW (url); ienesīguma atdeve www; pictureFactory. CreateImages (ParseResponse (www.text), rowNum, cameraForward); rowNum ++; } ienesīgums atdod jaunu WaitForSeconds (5f); buttonText.transform.parent.gameObject. SetActive (true); } Saraksts ParseResponse (virknes teksts) {List urlList = new List (); string urls = text. Split ('\ n'); foreach (virknes rindiņa vietrāžos URL) {if (line. Contains ("link")) {string url = line. Substring (12, line. Length-13); // šķiet, ka filtrēšana pēc png vai jpg no Google nedarbojas, tāpēc mēs to darām šeit: if (url. Contains (".jpg") || url. Contains (".png")) {urlList. Add (url); }}} atgriešanās urlList; }}

7. solis: izveidojiet mūsu attēlu rūpnīcu

Izveidojiet mūsu attēlu rūpnīcu
Izveidojiet mūsu attēlu rūpnīcu

Inside PictureFactory.cs ievieto šo kodu, lai izveidotu visus mūsu attēlus, un ielādē to faktūras no URL.

izmantojot System. Collections;

izmantojot System. Collections. Generic; izmantojot UnityEngine; publiskā klase PictureFactory: MonoBehaviour {public GameObject picPrefab; publiskais GoogleService googleService; public void DeleteOldPictures () {if (transform.childCount> 0) {foreach (Pārveidot bērnu šajā.transformācijā) {Iznīcināt (bērns.gameObject); }}} public void CreateImages (ListurlList, int resultNum, Vector3 camForward) {int picNum = 1; Vector3 centrs = Camera.main.transform.position; foreach (virknes URL urlList) {Vector3 pos = GetPosition (picNum, resultNum, camForward); GameObject pic = Instantiate (picPrefab, pos, Quaternion.identity, this.transform); pic. GetComponent (). LoadImage (url); picNum ++; }} Vector3 GetPosition (int picNum, int rowNum, Vector3 camForward) {Vector3 pos = Vector3.zero; ja (picNum <= 5) {pos = camForward + new Vector3 (picNum * -3, 0, rowNum * 3.5f); } cits {pos = camForward + jauns Vector3 ((picNum % 5) * 3, 0, rowNum * 3.5f); } return pos; }}

8. solis: mēs esam paveikuši

Mēs esam pabeiguši!
Mēs esam pabeiguši!
Mēs esam pabeiguši!
Mēs esam pabeiguši!

Izveidojiet tukšu spēles objektu ar nosaukumu GoogleService un ielieciet tajā GoogleSerivice skriptu.

Velciet "PictureFactory" skriptu uz zemes plaknes skatuves, jo visi mūsu attēli tiks veidoti kā šī spēles objekta bērni.

Velciet inspektorā atbilstošās atsauces, dariet to pašu ar Google pakalpojumu.

Pēdējā lieta, kas mums jādara, ir pārliecināties, ka tiek izsaukta funkcija "GetPictures". Tātad, dodieties uz mūsu pogas notikumu "onClick" un izsauciet to no turienes.

Tagad mēs varam noklikšķināt uz atskaņot un pārbaudīt to. Noteikti iespējojiet iezemētās plaknes pakāpi un pogu. Sakiet vārdu un noklikšķiniet uz pogas, lai meklētu šo tekstu!

Tagad, lai iegūtu šo lietotni savā tālrunī, pievienojiet to un dodieties uz Fails-> Veidot iestatījumus. Hit būvēt un palaist!

Paziņojiet man komentāros, ja jums ir kādi jautājumi!

Ieteicams: