Агуулгын хүснэгт:

MEMES -д зориулсан бодит байдлын бодит програмыг хийцгээе! 8 алхам
MEMES -д зориулсан бодит байдлын бодит програмыг хийцгээе! 8 алхам

Видео: MEMES -д зориулсан бодит байдлын бодит програмыг хийцгээе! 8 алхам

Видео: MEMES -д зориулсан бодит байдлын бодит програмыг хийцгээе! 8 алхам
Видео: Антивозрастной масляный массаж для удаления носогубных складок. Пухлые губы 2024, Долдугаар сарын
Anonim
MEMES -д зориулсан бодит байдлын бодит програмыг хийцгээе!
MEMES -д зориулсан бодит байдлын бодит програмыг хийцгээе!

Энэхүү зааварчилгаанд бид Google API ашиглан мемен хайхад зориулагдсан Unity3D дахь Android болон IOS -д зориулж сайжруулсан реалити апп хийх гэж байна. Бид Юнитид Vuforia -ийн газрын онгоцны илрүүлэлтийг ашиглах тул энэхүү гар утасны аппликейшн нь ихэнх Android болон IOS хэрэглэгчдэд ажиллах болно. Vuforia -ийг ашигласнаар бид зургуудыг нэг газарт бэхлэх боломжтой бөгөөд ингэснээр бид энэ зургийн талбараар алхаж, объектууд байгаа газраа үлдэх болно.

Бид мөн IBM Watson -ийн шинэ API -ийг турших гэж байгаа тул эдгээр хайлтыг өөрсдийн дуу хоолойгоор хийж, байгалийн хэлний боловсруулалтыг ашиглах боломжтой болно.

Муу мэдээ бол эдгээр API -ийн аль нь ч үнэ төлбөргүй байдаггүй, гэхдээ сайн мэдээ бол хоёулаа үнэгүй туршиж үзэх боломжтой юм. Google -ийн захиалгат хайлтын API нь өдөрт 100 үнэгүй хайлт хийх боломжийг олгодог бөгөөд IBM Watson API нь эхний сарыг үнэгүй өгдөг.

Товчоор хэлбэл, энэ апп нь Unity дахь микрофоноос бидний яриаг авах бөгөөд үүнийг IBM Watson сервер рүү илгээх бөгөөд энэ нь бидэнд текстийг буцааж өгөх болно. Дараа нь бид энэ текстийг аваад Google сервер рүү илгээх бөгөөд энэ нь бидэнд JSON хэлбэрээр зургийн URL -ийн жагсаалтыг буцааж өгөх болно.

Алхам 1: IBM Watson SDK -ийг Unity дээр тохируулна уу

IBM Watson SDK -ийг Unity дээр тохируулна уу
IBM Watson SDK -ийг Unity дээр тохируулна уу

Watson API -ийг ашиглахын тулд та эхлээд тэдний сайтаас итгэмжлэлээ авах хэрэгтэй. Console.bluemix.net руу ороод бүртгэл үүсгээд нэвтэрнэ үү. IBM данс руугаа ороод cloud castry Orgs руу ороод шинэ орон зай үүсгээрэй. Одоо хяналтын самбарт очиж үйлчилгээ үзэхийн тулд дарна уу, яриаг текст үйлчилгээнд нэмээрэй, учир нь үүнийг бид ашиглах болно. Бүс нутаг, байгууллага, орон зайгаа сонгоод төслийг үүсгэнэ үү. Одоо та өөрийн API итгэмжлэлийг доод талд харах болно.

Хэрэв танд Unity байхгүй бол Unity програмыг татаж аваад IBM Watson SDK -ийг Unity дахь хөрөнгийн дэлгүүрээс импортлоорой. Бид үүнийг хоосон тоглоомын объект үүсгэж, IBM Watson гэж нэрлэж, дамжуулах скриптийн жишээг нэмж туршиж үзэх боломжтой. Энэ скриптийг эв нэгдлээс аудио бичиж, Ватсоны сервер рүү илгээж боловсруулдаг.

Одоогоор бид энэ жишээ скриптийг ашиглах гэж байна, учир нь бидэнд хийх зүйл маш их байгаа боловч дараагийн удаа бид Vatson -ийн талаар илүү гүнзгий судалж магадгүй, учир нь би Vision API -тай ямар нэгэн зүйл хийхийг хүсч байна.

Алхам 2: IBM Watson -ийн текстийг ярианд туршиж үзээрэй

IBM Watson текстийг ярианд туршиж үзээрэй
IBM Watson текстийг ярианд туршиж үзээрэй

Энэ скрипт нь UI текст объект хайж байгаа тул шинэ UI товчлуур үүсгэх боломжийг бидэнд олгоно, энэ нь бидэнд хэрэгтэй текстийг өгөх болно, бид дараа нь товчлуурыг ашиглах болно. Зургийг дэлгэцийн хэмжээгээр масштабтай болгож товчлуурын хэмжээг бага зэрэг өөрчил. Үүнийг зүүн доод талд бэхлээрэй. Энэ текстийг хоосон үүр рүү чирнэ үү. Скриптийг нээгээд IBM Watson -ийн итгэмжлэлээ нэмж, "resultsField" текст хаана ашиглагдаж байгааг олж мэдээд зөвхөн "alt.transcript" болгож тохируулаарай, учир нь бид энэ текстийг google дээр хайх болно. Үүнийг туршиж үзэхээсээ өмнө бид текстийн хэмжээг динамикаар хийх ёстой бөгөөд ингэснээр бидний хэлсэн бүхэн хайрцагт багтах болно. Текст рүү буцаж очоод хамгийн сайн тохируулаарай. Үүнийг шалгахын тулд хэдэн текст оруулна уу. Одоо бид тоглох товчлуурыг дарахад бидний үгс Ватсоны текстээс ярианы API -аас текст рүү хөрвүүлэгдэх болно.

Алхам 3: Google Custom Search API -ийг тохируулна уу

Google Custom Search API тохируулна уу
Google Custom Search API тохируулна уу

Дараагийн хийх ёстой зүйл бол Google -ийн тусгай хайлтын API -ийг Unity -д ашиглахаар тохируулах явдал юм. Өндөр түвшинд бид Unity -аас Google серверүүд рүү HTTP хүсэлт гаргах бөгөөд энэ нь бидэнд JSON форматаар хариу өгөх болно.

Тиймээс Google Custom Search JSON API -ийн тохиргооны хуудас руу очоод API түлхүүрийг олж аваад шинэ апп үүсгээрэй. Үүнийг нээлттэй байлга. Одоо бид хяналтын самбар руу очиж болно. Сайтуудаас хайхыг хүссэн бүх зүйлээ оруулаад, нэрлээд, үүсгэх товчийг дарна уу.

Хяналтын самбар дээр дарж зарим өөрчлөлтийг хийх боломжийг танд олгоно: бид ихэвчлэн меменүүдийг хайх, зураг хайхыг асаахыг хүсдэг. Хайлт хийх сайтуудын доор үүнийг бүх вэб рүү шилжүүлнэ үү. Бүгдийг хадгалахын тулд шинэчлэх дээр дарна уу.

Одоо google api explorer -ийг олж, захиалгат хайлтын API руу очно уу. Энэ нь бидэнд Google -ээс авсан JSON хариултыг форматлах боломжийг олгоно. Тиймээс одоогоор асуулгад зориулж ямар нэгэн зүйл оруулаад, хайлтын системийн ID -аа оруулаад, давталт хийхгүйн тулд шүүлтүүрт 1 -ийг оруулаад, тоогоор нь 10 -ийн доор оруулна уу, учир нь энэ нь бидний нэг удаа буцааж өгч болох хамгийн их үр дүн юм. Хайлтын төрөлд зориулж зураг оруулаарай, учир нь энэ бол бидний буцааж өгөхийг хүссэн зүйл юм. Эхлэхийн тулд 1 -ийг оруулаад эцэст нь талбаруудын доор "items/link" гэж оруулна, учир нь буцааж өгсөн зүйл бүрийн хувьд бид зөвхөн зургийн холбоосыг л хүсдэг. Одоо та гүйцэтгэх товчийг дарахад бид 10 сайхан зургийн линкийг буцааж авах болно.

Одоо бид эдгээр зургийг Unity рүү оруулах ёстой.

Алхам 4: Vuforia -ийг Unity дээр тохируулна уу

Vuforia -ийг Unity дээр тохируулаарай
Vuforia -ийг Unity дээр тохируулаарай

Vuforia -г ажиллуулцгаая, ингэснээр бид тэдний газрын гадаргуугийн илрүүлэлтийг ашиглах боломжтой болно. Одоогийн үзэгдлээ хадгалаад бүтцийн тохиргоо руу орно уу. Платформоо Андройд эсвэл IOS руу шилжүүлж, хэрэв таны IOS дээр багцын таниулагчид ямар нэгэн зүйл оруулсан бол камер, микрофоны хэрэглээний тайлбарыг нэмнэ үү. XR тохиргооноос Vuforia -ийн сайжруулсан бодит байдлыг дэмжиж байгаа эсэхийг шалгаарай.

Одоо дүр зураг дээр үндсэн камераа устгаад Vuforia ARCamera -г нэмээрэй. Тохиргооны хэсэг рүү очоод хянах горимыг байрлал руу өөрчилнө үү. Бүх өгөгдлийн сан бидэнд хэрэггүй тул сонголтыг арилгана уу.

Одоо онгоц хайгчийг нэмж оруулаарай, учир нь бид газрын гадаргуугийн үе шатыг ганцхан удаа байрлуулахыг хүсч байгаа тул Vuforia вэбсайтаас нэг удаа Deploy Stage скриптийг хайж олохыг хүсч байна. Тэр скриптийг Юнитид авчраад онгоц хайгч дээр тавиад хуучин скриптийг устга. Горимыг интерактив болгон өөрчилж, "OnInteractiveHitTest" функц нь Unity Event дээр дуудагдсан эсэхийг шалгаарай. Бид энд байхдаа газрын хавтгайг олсоныхоо өмнө хийсэн товчлуураа идэвхжүүлж, түүний анхны төлөвийг идэвхгүй болгож тохируулцгаая. Одоо газрын бүхээг агаарт хөвөхийг хүсч байгаа тул газар дээр нь онгоц тавьж, түүнийгээ агаарт шилжүүлээрэй. Энэ газрын онгоцыг онгоц хайгчийн хоосон үүр рүү чирнэ үү.

Алхам 5: Урьдчилан бэлтгэсэн зураг үүсгэх

Урьдчилан бэлтгэсэн зураг үүсгэх
Урьдчилан бэлтгэсэн зураг үүсгэх

Эдгээр бүх хэсгүүдийг нэгтгэж эхлэхээсээ өмнө бид зураг ачаалах бүрдээ хийж болох угсармал тоглоомын объект бий болгох хэрэгтэй. Тиймээс газрын гадаргуугийн доор хоосон тоглоомын объект үүсгээд "picPrefab" гэж нэрлэнэ үү. Хүүхэд байхдаа дөрвөлжин бүтээж, 2 -оор хэмжиж, y -ийг 180 градус эргүүлээрэй, ингэснээр цэнхэр сумаар харуулсан эцэг эхийн урагшлах вектор нь дөрвөлжингийн урд талд байх болно.

"PictureBehavior" нэртэй шинэ скрипт үүсгээд манай picPrefab дээр нэмээрэй.

Одоо энэ зургийн угтварыг өөрийн хөрөнгийн фолдер руу чирнэ үү, бид үүнийг зураг тус бүр дээр тавих болно.

Манай "PictureBehavior" скрипт дараах байдлаар харагдах ёстой.

System. Collections ашиглах;

System. Collections. Generic ашиглах; UnityEngine ашиглах; public class PictureBehavior: MonoBehaviour {public Renderer quadRenderer; хувийн Vector3 хүссэн байрлал; void Start () {// камерын хувиргалтыг харна уу. LookAt (Camera.main.transform); Vector3 хүссэнAngle = шинэ Vector3 (0, transform.localEulerAngles.y, 0); transform.rotation = Quaternion. Euler (хүссэн өнцөг); // хүссэн хүчийг агаарт оруулахPosition = transform.localPosition; transform.localPosition += шинэ Vector3 (0, 20, 0); } void Update () {transform.localPosition = Vector3. Lerp (transform.localPosition, хүссэнPosition, Time.deltaTime * 4f); } нийтийн хоосон 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; нийтийн текст товчлуур текст; private const string API_KEY = "API түлхүүрийг энд оруулна уу !!!!!"; public void GetPictures () {StartCoroutine (PictureRoutine ()); } IEnumerator PictureRoutine () {buttonText.transform.parent.gameObject. SetActive (худал); мөр асуулга = buttonText.text; query = 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 +" & field = items%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 жагсаалт (string text) {List urlList = new List (); string 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 ашиглах; public class PictureFactory: MonoBehaviour {public GameObject picPrefab; нийтийн GoogleService googleService; public void DeleteOldPictures () {if (transform.childCount> 0) {foreach (Хүүхдийг үүнд хувиргах. хувиргах) {Устгах (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); } буцах pos; }}

Алхам 8: Бид дууссан

Бид дууссан!
Бид дууссан!
Бид дууссан!
Бид дууссан!

GoogleService нэртэй хоосон тоглоом үүсгэж, дээр нь "GoogleSerivice" скриптийг тавь.

"PictureFactory" скриптийг газрын хавтгай тавцан дээр чирнэ үү, учир нь бидний бүх зургийг энэ тоглоомын объектын хүүхдүүд болгон бүтээх болно.

Байцаагчийн зохих лавлагааг чирээд google үйлчилгээнд ижил зүйлийг хий.

Бидний хийх ёстой хамгийн сүүлийн зүйл бол бидний "GetPictures" функц дуудагдсан эсэхийг шалгах явдал юм. Тиймээс бидний товчлуурын "onClick" арга хэмжээнд очиж, тэндээс залгаарай.

Одоо бид тоглох дээр дарж үүнийг туршиж үзэх боломжтой. Газрын хавтгай шат болон товчлуурыг идэвхжүүлэхээ мартуузай. Нэг үг хэлээд товчлуур дээр дарж тэр текстийг хайж олоорой!

Одоо энэ програмыг утсан дээрээ суулгахын тулд залгаж, File-> Build Settings хэсэгт очно уу. Бүтээж, ажиллуулаарай!

Хэрэв танд ямар нэгэн асуулт байвал тайлбар дээр надад хэлээрэй!

Зөвлөмж болгож буй: