Përmbajtje:

Realiteti i shtuar Vuforia 7 Zbulimi i aeroplanit tokësor .: 8 hapa
Realiteti i shtuar Vuforia 7 Zbulimi i aeroplanit tokësor .: 8 hapa

Video: Realiteti i shtuar Vuforia 7 Zbulimi i aeroplanit tokësor .: 8 hapa

Video: Realiteti i shtuar Vuforia 7 Zbulimi i aeroplanit tokësor .: 8 hapa
Video: Augmented reality Unity+Vuforia project_1 (Markers) 2024, Nëntor
Anonim
Realiteti i shtuar Vuforia 7 Zbulimi i aeroplanit tokësor
Realiteti i shtuar Vuforia 7 Zbulimi i aeroplanit tokësor
Realiteti i shtuar Vuforia 7 Zbulimi i aeroplanit tokësor
Realiteti i shtuar Vuforia 7 Zbulimi i aeroplanit tokësor

Realiteti i shtuar i Vuforia SDK për Unity 3D përdor ARCore dhe ARKit për të zbuluar aeroplanët tokësorë në AR. Udhëzimi i sotëm do të përdorë integrimin e tyre vendas në Unity për të bërë një aplikacion AR për Android ose IOS. Do të kemi një makinë që bie nga qielli në tokë dhe dyert e saj do të hapen automatikisht kur të afrohemi. Ne gjithashtu do të kalojmë duke bërë video në AR. Për të vazhduar, do t'ju duhet Unity 3D i instaluar në kompjuterin tuaj (është falas). Këto udhëzime janë për fillestarët total, kështu që ne do të shqyrtojmë gjithçka në detaje!

Pjesa më e mirë në lidhje me SLAM të Vuforia është sasia e pajisjeve IOS dhe Android që ajo mbështet. Një listë e plotë e pajisjeve mund të gjendet këtu:

library.vuforia.com/articles/Solution/grou…

Hapi 1: Filloni një Projekt të Ri

Filloni një Projekt të Ri
Filloni një Projekt të Ri

Shkarkoni Unity 3D nga këtu nëse nuk e keni tashmë:

Sigurohuni që të instaloni mbështetje për Vuforia Augmented Reality dhe Android ose IOS në varësi të pajisjes që keni.

Hapni Unitetin dhe filloni një projekt të ri Unity, quajeni si të doni.

Së pari le të dalim nga aplikacioni i ngritur për të ndërtuar, në mënyrë që të mos harrojmë. Pra, ruani skenën dhe quajeni "kryesore".

Shkoni te skedari, krijoni cilësimet dhe kaloni platformën tuaj të ndërtimit në Android ose IOS. Shkoni te cilësimet XR në cilësimet e luajtësit dhe kontrolloni Vuforia Augmented Reality Supported.

Nëse jeni në Android nuk do të keni nevojë të bëni asgjë tjetër, por në IOS shkoni te cilësimet e tjera dhe sigurohuni që të vendosni diçka për identifikuesin tuaj të paketës. Përdorni formatin "com. YourCompanyName. YourAppName."

Vendosni çdo gjë për përshkrimin e përdorimit të kamerës dhe ndryshoni versionin minimal të synuar të ndërtimit në të paktën 9.0.

Mbylle atë dhe tani le të rregullojmë gjithçka tjetër.

Hapi 2: Le të vendosim Vuforia

Le të Vendosim Vuforia
Le të Vendosim Vuforia

Tani le të rregullojmë gjithçka.

Shkoni te gameobject në menunë e sipërme dhe klikoni ARCamera. Tani fshini kamerën kryesore nga skena juaj.

Zgjidhni ARCamera dhe në anën e djathtë të inspektorit klikoni në Open Vuforia Configuration. Klikoni në koleksionin e të dhënave dhe hiqni zgjedhjen e gjithçkaje sepse nuk po përdorim asnjë objektiv të imazhit këtu.

Klikoni në gjurmuesin e pajisjes dhe klikoni në pozën e pajisjes së gjurmimit. Ndryshoni gjurmimin nga rrotullues në pozicionor.

Tani kthehuni në skedën e objekteve të lojës dhe klikoni Vuforia, Ground Plane dhe Plane finder. Këtu gjenden skriptet që gjejnë rrafshin tonë tokësor.

Gjëja e fundit që na nevojitet është faza e rrafshit tokësor, kështu që shkoni përsëri në objektin e lojës në menunë e sipërme dhe klikoni Vuforia, Ground Plane dhe zgjidhni Faza e Aeroplanit Tokësor. Tani çdo gjë që ne i kushtojmë vëmendje kësaj do të shfaqet në AR.

Hapi 3: Shtoni një Skript të Ri

Shtoni një Skript të Ri
Shtoni një Skript të Ri
Shtoni një Skript të Ri
Shtoni një Skript të Ri

Sjellja e paracaktuar e këtij zbulimi të rrafshit tokësor është të vendosni një objekt të ri sa herë që shtypni në ekran. Ajo që duam është që thjesht të ripozicionojmë objektin sa herë që shtypni në ekran. Pra, klikoni me të djathtën në dosjen tuaj të pasurive dhe krijoni një skenar të ri C#. Thirrni atë "DeployStageOnce" dhe zëvendësoni gjithçka me këtë kod:

duke përdorur Sistemin;

duke përdorur UnityEngine; duke përdorur Vuforia; klasa publike DeployStageOnce: MonoBehaviour {public GameObject AnchorStage; private PositionalDeviceTracker _deviceTracker; private GameObject _prepareAnchor; zbrazëti publike Fillimi () {if (AnchorStage == null) {Debug. Log ("AnchorStage duhet të specifikohet"); kthim; } AnchorStage. SetActive (false); } public void Zgjohuni () {VuforiaARController. Instance. RegisterVuforiaStartedCallback (OnVuforiaStarted); } public void OnDestroy () {VuforiaARController. Instance. UnregisterVuforiaStartedCallback (OnVuforiaStarted); } private void OnVuforiaStarted () {_deviceTracker = TrackerManager. Instance. GetTracker (); } public void OnInteractiveHitTest (rezultati i HitTestResult) {if (rezultati == null || AnchorStage == null) {Debug. LogWarning ("Testi i goditjes është i pavlefshëm ose AnchorStage nuk është vendosur"); kthim; } var anchor = _deviceTracker. CreatePlaneAnchor (Guid. NewGuid (). ToString (), rezultati); if (spirancë! = null) {AnchorStage.transform.parent = spirancë.transformoj; AnchorStage.transform.localPosition = Vector3.zero; AnchorStage.transform.localRotation = Kuaternion.identiteti; AnchorStage. SetActive (e vërtetë); } if (_prequestAnchor! = null) {Shkatërroni (_prequestAnchor); } _prepareAnchor = spirancë; }}

Në mënyrë që të sigurohemi që ky skrip përdoret, duhet të thërrasim funksionin OnInteractiveHitTest () kështu që kthehuni te Unity dhe klikoni objektin e lojës së aeroplanit. Ndryshoni modalitetin nga Automatic në Interactive. Tërhiqeni skenarin që sapo bëmë mbi objektin e lojës së kërkuesit të aeroplanit. Hiq skriptin ContentPositioningBehavior. Ju do të shihni një vend për një objekt të lojës në skenarin DeployStageOnce, tërhiqeni gjetësin e aeroplanit atje dhe gjeni këtë skenar, zgjidhni funksionin OnInteractiveHitTest nga krye të listës. Tani funksioni ynë do të thirret sa herë që përdoruesi klikon në ekran!

Hapi 4: Le të Shtojmë Makinën

Le të Shtojmë Makinën
Le të Shtojmë Makinën

Shkarkoni këtë model 3D të makinës falas nga këtu (Sigurohuni që të merrni versionin.obj):

www.turbosquid.com/3d-models/max-exterior-…

Gjithashtu, shkarkoni këtë tingull sepse ne do ta luajmë kur makina të godasë tokën:

freesound.org/people/PaulMorek/sounds/1967…

Zbërtheni të dy ato skedarë dhe tërhiqini ato në dosjen tuaj të pasurive.

Klikoni në makinë dhe shikoni në të djathtë, ndryshoni Përdorni materiale të integruara për të përdorur materiale të jashtme (Trashëgimia) nga menyja zbritëse në krye. Tani do të jemi në gjendje të ndryshojmë ngjyrën e të gjitha materialeve në makinë.

Zvarriteni makinën në skenën e aeroplanit tuaj tokësor duke e bërë atë një fëmijë. Ndryshoni shkallën në.035 në x, y dhe z.

Tani kaloni nëpër secilën prej objekteve të lojës së makinave të fëmijëve dhe ndryshoni materialet e tyre në çfarëdo ngjyre që dëshironi.

Shtoni një përbërës të ngurtë të trupit në objektin e lojës rrënjësore të makinës dhe gjithashtu shtoni një përplasës kuti, shkallëzojeni atë në mënyrë që të mbulojë të gjithë makinën. Shtoni gjithashtu një përplasës kuti në fazën e rrafshit tokësor dhe shkallëzojeni atë në mënyrë që të jetë disa herë më i gjerë se faza e rrafshit tokësor. Në këtë mënyrë ne mund ta hedhim makinën nga qielli dhe ajo do të godasë tokën duke përdorur motorin e fizikës të ndërtuar nga Unity.

Hapi 5: Vendoseni Makinën në Qiell

Vendoseni makinën në qiell
Vendoseni makinën në qiell

Shtoni një përbërës burimi audio në objektin rrënjësor të lojës së makinës, tërhiqni tingullin e përplasjes së makinës në vendin e tij të klipit audio.

Tani ne duhet të bëjmë një skenar që do ta vendosë makinën në ajër kur përdoruesi shtyp në ekran dhe pastaj luan tingullin e përplasjes kur makina bie në tokë. Pra, klikoni me të djathtën në dosjen e aseteve dhe krijoni një skenar të ri C# dhe quajeni "CarController".

Zëvendësoni të gjithë kodin atje me këtë:

duke përdorur System. Collection;

duke përdorur System. Collections. Generic; duke përdorur UnityEngine; klasa publike CarController: MonoBehaviour {private bool soundPlayed = false; // Përditësimi thirret një herë për kuadër të pavlefshëm Update () {if (! SoundPlayed && transform.localPosition.y <.05f) {soundPlayed = true; StartCoroutine (DelayPlaySound ()); }} zbrazëtira publike MoveCar () {transform.localPosition += vektor i ri3 (0, 10, 0); transform.eulerAngles += vektori i ri3 (5, 20, 5); soundPlayed = false; } IEnumerator DelayPlaySound () {yield japin kthim të ri WaitForSeconds (.2f); GetComponent (). Luaj (); }}

Shtoni funksionin MoveCar në ngjarjen OnInteractiveHitTest si në foton e mësipërme. Tani do të thirret kur përdoruesi të klikojë në ekran.

Hapi 6: Dyert Lambo

Dyer Lambo
Dyer Lambo

Pra, nëse zgjeroni objektin e lojës së makinës dhe gjeni dyert, do të vini re se të dy dyert janë një rrjetë e vetme. Nëse duam të hapim dyert, opsioni ynë i vetëm do të jetë dyert Lambo që hapen vertikalisht. Për ta bërë këtë punë së pari duhet të ndryshojmë pikën e tyre të boshtit.

Bëni një objekt të zbrazët të lojës që është një fëmijë i makinës. Tërhiqni dyert brenda dhe bëjini ata fëmijë të këtij objekti të ri të lojës. Zhvendoseni objektin e lojës mëmë atje ku duhet të jetë pika e boshtit, nga mentesat e derës. Tani lëvizni dyert e fëmijës përsëri në vend. Tani kur i rrotullojmë prindërit e dyerve, pika e boshtit është në vendin e duhur.

Ne do të bëjmë një skenar që hap dyert kur i afroheni makinës, por para se ta bëjmë këtë ne kemi nevojë për një mënyrë për të "shkaktuar" ngjarjen. Shtoni një përplasës kutie në objektin e lojës prindërore të derës tuaj dhe shkallëzojeni atë në mënyrë që të kalojë pak mbi makinën në të dy drejtimet. Kontrolloni "isTrigger". Tani shtoni një përplasës kuti në kamerën kryesore dhe shkallëzojeni atë në mënyrë të përshtatshme. Gjithashtu kontrolloni "isTrigger". Shtoni një komponent të Trupit të Ngurtë në kamerën tuaj dhe hiqni zgjedhjen "useGravity". Me kamerën tuaj të zgjedhur, ndryshoni etiketën e saj në "Kamera kryesore" në krye të inspektorit.

Shtoni një skenar të ri të quajtur "LamboDoorBehavior" dhe shtoni kodin më poshtë. Zvarriteni skriptin te prindi i derës tuaj.

duke përdorur System. Collection;

duke përdorur System. Collections. Generic; duke përdorur UnityEngine; klasa publike LamboDoorBehavior: MonoBehaviour {private float currAngle = 0; noti privat i dëshiruarAngle = 0; // Përditësimi thirret një herë për kuadër të pavlefshëm Update () {currAngle = Mathf. LerpAngle (currAngle, სასურველიAngle, Time.deltaTime * 3f); transform.localEulerAngles = vektori i ri3 (currAngle, 0, 0); } publiku OpenDoors () void publik () {wishAngle = 60f; } zbrazëtira publike CloseDoors () {wishAngle = 0; } void OnTriggerEnter (Collider col) {if (col. CompareTag ("MainCamera")) {OpenDoors (); }} void OnTriggerExit (Collider col) {if (col. CompareTag ("MainCamera")) {CloseDoors (); }}}

Ky skenar do të bëjë që dyert tuaja të hapen ngadalë kur t'i mbyllni ato në AR duke përdorur funksionin Lerp () në unitet i cili interpolon midis dy pikave (ose në këtë rast dy këndeve).

Hapi 7: Luajtja e videos në AR

Luajtja e videos në AR
Luajtja e videos në AR
Luajtja e videos në AR
Luajtja e videos në AR

Gjëja e fundit që duhet të bëjmë është të luajmë video në AR.

Klikoni me të djathtën në çdo objekt të lojës që është fëmijë i makinës tuaj dhe krijoni një objekt 3D, Quad. Kjo do të sigurojë që kuadrati të jetë një fëmijë i makinës tuaj. Vendoseni dhe ndryshoni madhësinë e këtij kuadrati në mënyrë që të përshtatet brenda tabelës së makinës tuaj dhe të duket sikur supozohet të jetë atje. Kjo është ajo për të cilën do të luajmë videon.

Shtoni një përbërës të luajtësit të videos në kuadratin tuaj. Ndryshoni burimin në URL dhe gjeni një lidhje të fortë me një skedar. MP4 ose tërhiqni një skedar video në dosjen tuaj të pasurisë dhe më pas tërhiqeni atë klip në vendin e zbrazët. Nëse doni të transmetoni një video nga një URL, Instragram është një burim i shkëlqyeshëm. Klikoni me të djathtën në çdo video të Instagram në Google Chrome dhe klikoni inspektoni. Gjeni div -in që përmban videon dhe kopjoni lidhjen prej andej (e kam këtë metodë të fotografuar më sipër).

Sigurohuni që të kontrolloni lakun nëse dëshironi që ai të luajë më shumë se një herë. Shtoni një përbërës të burimit audio në këtë objekt të lojës dhe ndryshoni burimin e daljes në burimin audio në luajtësin e videos. Zvarriteni burimin tuaj audio të krijuar rishtas në atë vend.

Më në fund mbaruam!

Hapi 8: Vendosni aplikacionin në telefonin tuaj

Vendoseni aplikacionin në telefonin tuaj!
Vendoseni aplikacionin në telefonin tuaj!

Nëse po ndërtoni për Android, thjesht mund të shkoni te skedari dhe të godisni build and run me telefonin tuaj të kyçur.

Nëse po ndërtoni një iPhone ose iPad, sigurohuni që të shkarkoni Xcode nga dyqani i aplikacioneve. Gjithashtu, regjistrohuni për një llogari zhvilluesi falas të mollës nga www.apple.developer.com. Shkoni te skedari dhe goditni build. Hapni skedarin që është krijuar nga Xcode dhe lidhni telefonin tuaj. Zgjidhni ekipin tuaj të zhvillimit dhe shtypni butonin e luajtjes.

Ju mund të keni nevojë të lëvizni kamerën pak, por jepni një sekondë dhe prekni ekranin dhe duhet të shihni që makina juaj të bjerë nga qielli në tokë! Tani mund të hyni brenda dhe të shikoni videon tuaj të luajë në pult!

Argëtohuni dhe më tregoni nëse keni ndonjë pyetje në komente!

Recommended: