Мазмұны:

MEMES үшін кеңейтілген шындық қосымшасын жасауға мүмкіндік береді!: 8 қадам
MEMES үшін кеңейтілген шындық қосымшасын жасауға мүмкіндік береді!: 8 қадам

Бейне: MEMES үшін кеңейтілген шындық қосымшасын жасауға мүмкіндік береді!: 8 қадам

Бейне: MEMES үшін кеңейтілген шындық қосымшасын жасауға мүмкіндік береді!: 8 қадам
Бейне: ТЕЗ КӨРІҢІЗ! БҰЛ ТУРАЛЫ ҚЫТАЙЛАР ЕШКІМГЕ АЙТПАЙДЫ 2024, Желтоқсан
Anonim
MEMES үшін кеңейтілген шындық қосымшасын жасауға мүмкіндік беріңіз!
MEMES үшін кеңейтілген шындық қосымшасын жасауға мүмкіндік беріңіз!

Бұл нұсқаулықта біз Android API мен IOS үшін Unity3D -те мемлкеттерді іздеу үшін Google API қолданатын кеңейтілген шындық қосымшасын жасаймыз. Біз Unity -де Vuforia -ның жердегі жазықтықты анықтауды қолданамыз, сондықтан бұл мобильді қосымша Android және IOS қолданушыларының көпшілігі үшін жұмыс істейді. Vuforia -ны қолдану бізге суреттерді бір жерде бекітуге мүмкіндік береді, осылайша біз осы суреттер өрісінде жүре аламыз және объектілер сол жерде қалады.

Біз сондай -ақ жаңа IBM Watson API -ді тексереміз, осылайша біз бұл іздеуді өз дауысымызбен жасай аламыз және олардың табиғи тілде өңделуін қолдана аламыз.

Нашар жаңалықтар бұл API -дің ешқайсысы мүлдем тегін емес, бірақ жақсы жаңалық - екеуін де қолдануға болады. Google арнайы іздеу API сізге күніне 100 ақысыз іздеу береді, ал IBM Watson API сізге бірінші айды тегін береді.

Қысқаша айтқанда, бұл бағдарлама біздің сөйлеуді Unity микрофонынан алады, оны IBM Watson серверлеріне жібереді, ол бізге мәтінді қайтарады. Содан кейін біз бұл мәтінді алып, Google серверлеріне жібереміз, ол бізге JSON пішіміндегі кескін URL мекенжайларының тізімін береді.

1 -қадам: Unity бағдарламасында IBM Watson SDK орнатыңыз

Unity ішінде IBM Watson SDK орнатыңыз
Unity ішінде IBM Watson SDK орнатыңыз

Watson API -ге кіру үшін алдымен олардың сайтынан тіркелгі деректерін алу қажет. Console.bluemix.net сайтына өтіңіз, жасаңыз және тіркеліңіз және кіріңіз. IBM тіркелгісіне өтіп, бұлтты құю ұйымдарына өтіңіз және жаңа кеңістік жасаңыз. Енді бақылау тақтасына өтіп, қызметтерді қарау үшін шертіңіз, сөйлеуді мәтіндік қызметке қосыңыз, өйткені біз оны қолданамыз. Аймақты, ұйымды және кеңістікті таңдап, жобаны жасаңыз. Енді сіз API тіркелгі деректерін төменгі жағында көресіз.

Егер сізде Unity жоқ болса, Unity бағдарламасын жүктеңіз және IBM Watson SDK -ді Unity активтер дүкенінен импорттаңыз. Біз мұны бос ойын нысанын құру арқылы тексере аламыз және оны IBM Watson деп атаймыз және ағын сценарийінің мысалын қоса аламыз. Бұл сценарий аудионы бірліктен жазып алуға және оны өңдеу үшін Уотсон серверлеріне жіберуге дайын.

Әзірге біз бұл мысал сценарийін қолданамыз, өйткені бізде көп нәрсе бар, бірақ келесі жолы біз Ватсонға тереңірек ене аламыз, себебі мен Vision API көмегімен бірдеңе жасағым келеді.

2 -қадам: IBM Watson мәтінін сөйлеуге тексеру

IBM Watson мәтінін сөйлеуге тексеру
IBM Watson мәтінін сөйлеуге тексеру

Бұл сценарий UI мәтіндік объектісін іздейді, сондықтан жаңа UI түймесін жасауға мүмкіндік береді, бұл бізге қажет мәтінді береді, біз батырманы кейінірек қолданамыз. Кенепті экран өлшемімен масштабтауға орнатыңыз және батырманың өлшемін сәл өзгертіңіз. Оны төменгі сол жаққа бекітіңіз. Бұл мәтінді бос ұяшыққа апарыңыз. Сценарийді ашып, IBM Watson тіркелгі деректерін қосуға, «resultsField» мәтінінің қайда қолданылатынын табуға және оны тек «alt.transcript» етіп орнатуға мүмкіндік береміз, себебі біз бұл мәтінді google -де іздеу үшін қолданамыз. Енді мұны тексермес бұрын, біз мәтіннің көлемін динамикалық түрде жасауымыз керек, сондықтан біз айтқандардың бәрі қорапқа сәйкес келеді. Мәтінге оралыңыз және оны ең қолайлы етіп орнатыңыз. Тексеру үшін мәтінді енгізіңіз. Енді біз ойнауды басқан кезде біздің сөздер Watson Text to Speech API -ден мәтінге көшіріледі.

3 -қадам: Google Custom Search API орнатыңыз

Google Custom Search API орнатыңыз
Google Custom Search API орнатыңыз

Келесі нәрсе - Unity -де пайдалану үшін Google -дің арнайы іздеу қондырғысын алу. Жоғары деңгейде біз Unity -ден Google серверлеріне HTTP сұрауын жібереміз, ол бізге JSON форматында жауап береді.

Сонымен, Google Custom Search JSON API орнату бетіне өтіңіз, API кілтін алу үшін басыңыз және жаңа бағдарлама жасаңыз. Осыны ашық ұстаңыз. Енді біз басқару тақтасына бара аламыз. Сайттар іздейтін кез келген нәрсені енгізіңіз, оған ат қойыңыз және жасау түймесін басыңыз.

Басқару тақтасын нұқыңыз және кейбір өзгерістер енгізуге рұқсат етіңіз: біз негізінен мемдерді іздеуді және суретті іздеуді қосқымыз келеді. Іздеу үшін сайттар астында оны бүкіл вебке ауыстырыңыз. Барлығын сақтау үшін Жаңарту түймесін басыңыз.

Енді Google api зерттеушісін тауып, реттелетін API іздеңіз. Бұл бізге Google -ден алатын JSON жауабын пішімдеуге мүмкіндік береді. Сұрау үшін әзірге кез келген нәрсені енгізіңіз, іздеу жүйесінің идентификаторын қойыңыз, қайталанбау үшін сүзгіге 1 қойыңыз, сан астына 10 қойыңыз, себебі бұл бір уақытта қайтаруға болатын нәтижелердің максималды саны, іздеу түріне сурет салыңыз, себебі біз қайтарғымыз келетін нәрсе. Бастау үшін 1 қойыңыз, соңында өрістер астына «элементтер/сілтеме» қойыңыз, себебі қайтарылған әрбір элемент үшін біз тек сурет сілтемесін алғымыз келеді. Енді сіз орындау батырмасын басқанда, біз 10 жақсы сурет сілтемесі қайтарылғанын көреміз.

Енді біз бұл суреттерді Бірлікке алуымыз керек.

4 -қадам: Vuforia -ны Unity -де орнатыңыз

Бірлікке Vuforia орнатыңыз
Бірлікке Vuforia орнатыңыз

Vuforia -ны жұмысқа қосуға мүмкіндік беріңіз, осылайша біз олардың жердегі ұшақтарды анықтауын қолдана аламыз. Ағымдағы көріністі сақтап, құрастыру параметрлеріне өтіңіз. Платформаңызды Android немесе IOS жүйесіне ауыстырыңыз, егер IOS құрылғыңызда пакеттің идентификаторы үшін бірдеңе болса, камера мен микрофонды пайдалану сипаттамасын қосыңыз. XR параметрлері астында қолдау көрсетілетін Vuforia кеңейтілген шындықты тексеріңіз.

Енді сахнада негізгі камераны жойып, Vuforia ARCamera қосыңыз. Конфигурация бөліміне өтіп, бақылау режимін позицияға өзгертіңіз. Барлық дерекқорларды алып тастаңыз, себебі олар бізге қажет емес.

Енді ұшақ іздегішті қосыңыз және біз оның әдепкі әрекетін болдырмауымыз керек, өйткені біз жердегі ұшақ сатысын бір рет қана орналастырғымыз келеді, сондықтан Vuforia веб -сайтында бір рет орналастыру сценарийін табуға мүмкіндік береді. Бұл сценарийді Unity -ге әкеліп, ескі сценарийді алып тастап, оны іздеу құралына қойыңыз. Режимді интерактивті етіп өзгертіңіз және «OnInteractiveHitTest» функциясы Unity Event -де шақырылатынына көз жеткізіңіз. Біз осында болғанда, біз жердегі жазықтықты тапқаннан кейін бұрын жасаған түймені белсенді күйге орнатамыз, оның әдепкі күйін белсенді емес күйге орнатамыз. Енді сахнаға жер үсті ұшағын қойып, оны ортаға ауыстырып қойыңыз, өйткені біз барлық суреттер ауада қалқып тұрғанын қалаймыз. Бұл жер ұшағын ұшақ іздегіш бос ұяға сүйреңіз.

5 -қадам: Суреттің префабрикасын жасаңыз

Суреттің префабрикасын жасаңыз
Суреттің префабрикасын жасаңыз

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

«PictureBehavior» деп аталатын жаңа сценарий жасаңыз және оны picPrefab -ке қосыңыз.

Енді бұл суреттің префаборын активтер қалтасына апарыңыз, және біз әр суретті осында орналастырамыз.

Біздің «PictureBehavior» сценарийі келесідей болуы керек:

System. Collections пайдалану;

System. Collections. Generic пайдалану; UnityEngine пайдалану; public class PictureBehavior: MonoBehaviour {public Renderer quadRenderer; жеке Vector3 қалаған позиция; void Start () {// camera transform. LookAt (Camera.main.transform) қараңыз; Vector3 хүссэнAngle = жаңа Vector3 (0, transform.localEulerAngles.y, 0); transform.rotation = Quaternion. Euler (қалағанАngle); // күшпен ауаға күш салу керекPosition = transform.localPosition; transform.localPosition += жаңа Vector3 (0, 20, 0); } void Update () {transform.localPosition = Vector3. Lerp (transform.localPosition, хүссэнPosition, Time.deltaTime * 4f); } public void LoadImage (string url) {StartCoroutine (LoadImageFromURL (url))); } IEnumerator LoadImageFromURL (жол URL) {WWW www = жаңа WWW (url); кірістілік www; quadRenderer.material.mainTexture = www.texture; }}

6 -қадам: Google API үшін сценарий жасаңыз

Google API үшін сценарий жасаңыз
Google API үшін сценарий жасаңыз

Енді біздің «picPrefab» ішінен төрт рендерерге сілтемені апаруға рұқсат етіңіз.

Бізде тек екі сценарий қалды, сондықтан GoogleService.cs және PictureFactroy.cs деп аталатын C# сценарийін құруға рұқсат етіңіз.

«GoogleService» ішіне біздің сұранысты жасайтын осы кодты қойыңыз:

System. Collections пайдалану;

System. Collections. Generic пайдалану; UnityEngine пайдалану; UnityEngine. UI пайдалану; қоғамдық сынып GoogleService: MonoBehaviour {public PictureFactory pictureFactory; жалпыға ортақ мәтін түймесі; жеке const string API_KEY = «PUT API KEY MERE !!!!!»; public void GetPictures () {StartCoroutine (PictureRoutine ()); } IEnumerator PictureRoutine () {buttonText.transform.parent.gameObject. SetActive (жалған); жол сұранысы = buttonText.text; сұрау = WWW. EscapeURL (сұрау + «мемдер»); // ескі суреттерді жою pictureFactory. DeleteOldPictures (); // камераны алға векторды сақтаңыз, осылайша объектілер орналастырылған кезде біз қозғала аламыз Vector3 cameraForward = Camera.main.transform.forward; // біз тек бір уақытта 10 нәтижеге қол жеткізе аламыз, сондықтан біз әрбір 10 int rowNum = 1 -ден кейін бастапқы нөмірді өзгерте отырып, ілгерілеуді сақтауымыз керек. for (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 +» & өрістер = элементтер%2Flink & key = « + API_KEY; WWW www = жаңа WWW (url); кірістілік www; pictureFactory. CreateImages (ParseResponse (www.text), rowNum, cameraForward); rowNum ++; } кірістілікті қайтару жаңа WaitForSeconds (5f); buttonText.transform.parent.gameObject. SetActive (шын); } ParseResponse тізімі (жол мәтіні) {List urlList = new List (); жол urls = text. Split ('\ n'); foreach (url жолындағы жол) {if (line. Contains («link»)) {string url = line. Substring (12, line. Length-13); // png немесе jpg арқылы сүзу Google -де жұмыс істемейді, сондықтан біз мұны осында жасаймыз: if (url. Contains («.jpg») || url. Contains («.png»)) {urlList. Add (url); }}} urlList қайтару; }}

7 -қадам: Біздің сурет фабрикасын құрыңыз

Біздің сурет фабрикасын құрыңыз
Біздің сурет фабрикасын құрыңыз

PictureFactory.cs ішінде бұл суретті біздің барлық суреттерімізді жасау үшін қояды және олардың текстурасын URL -ден жүктейді.

System. Collections пайдалану;

System. Collections. Generic пайдалану; UnityEngine пайдалану; қоғамдық сынып PictureFactory: MonoBehaviour {public GameObject picPrefab; жалпыға ортақ GoogleService googleService; public void DeleteOldPictures () {if (transform.childCount> 0) {foreach (Баланы осы түрге түрлендіру) {Destroy (child.gameObject); }}} жалпыға жарамсыз CreateImages (ListurlList, int resultNum, Vector3 camForward) {int picNum = 1; Vector3 орталығы = Camera.main.transform.position; foreach (urlList ішіндегі string url) {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; if (picNum <= 5) {pos = camForward + new Vector3 (picNum * -3, 0, rowNum * 3.5f); } else {pos = camForward + new Vector3 ((picNum % 5) * 3, 0, rowNum * 3.5f); } қайтару пос; }}

8 -қадам: Біз дайынбыз

Біз дайынбыз!
Біз дайынбыз!
Біз дайынбыз!
Біз дайынбыз!

GoogleService деп аталатын бос ойын объектісін жасаңыз және оған «GoogleSerivice» сценарийін қойыңыз.

«PictureFactory» сценарийін бірінші деңгейдегі сахнаға сүйреңіз, өйткені біздің барлық суреттеріміз осы ойын объектісінің балалары ретінде жасалады.

Инспектордағы сәйкес сілтемелерді сүйреп апарыңыз, Google қызметі үшін де дәл солай жасаңыз.

Біз істеуіміз керек соңғы нәрсе - біздің «GetPictures» функциясының шақырылғанына көз жеткізу. Сонымен, біздің түйменің «onClick» оқиғасына барайық және оны сол жерден шақырамыз.

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

Енді бұл бағдарламаны телефонға алу үшін оны қосыңыз және Файл-> Құрылыс параметрлері тармағына өтіңіз. Жасаңыз және жүгіріңіз!

Егер сізде сұрақтар туындаса, түсініктемелерде маған хабарлаңыз!

Ұсынылған: