Kazalo:

Dodatna resničnost Vuforia 7 Zaznavanje talne ravnine .: 8 korakov
Dodatna resničnost Vuforia 7 Zaznavanje talne ravnine .: 8 korakov

Video: Dodatna resničnost Vuforia 7 Zaznavanje talne ravnine .: 8 korakov

Video: Dodatna resničnost Vuforia 7 Zaznavanje talne ravnine .: 8 korakov
Video: так працює додана реальність в #GeoGebra 2024, Julij
Anonim
Odkrivanje zemeljske ravnine Vuforia 7 z razširjeno resničnostjo
Odkrivanje zemeljske ravnine Vuforia 7 z razširjeno resničnostjo
Odkrivanje zemeljske ravnine Vuforia 7 z razširjeno resničnostjo
Odkrivanje zemeljske ravnine Vuforia 7 z razširjeno resničnostjo

Vuforijin SDK za razširjeno resničnost za Unity 3D uporablja ARCore in ARKit za zaznavanje zemeljskih ravnin v AR. Današnja vadnica bo uporabila domačo integracijo v Unity za izdelavo aplikacije AR za Android ali IOS. Avto bo padel z neba na tla, vrata pa se bodo samodejno odprla, ko se mu približamo. Posneli bomo tudi snemanje videa v AR. Če želite slediti, morate v računalnik namestiti Unity 3D (brezplačno). Ta navodila so za začetnike, zato bomo vse podrobno preučili!

Najboljši del Vuforijinega SLAM -a je količina naprav IOS in Android, ki jih podpira. Celoten seznam naprav najdete tukaj:

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

Korak: Začnite nov projekt

Začnite nov projekt
Začnite nov projekt

Prenesite Unity 3D od tukaj, če ga še nimate:

Namestite podporo za razširjeno resničnost Vuforia in Android ali IOS, odvisno od tega, katero napravo imate.

Odprite Unity in začnite nov projekt Unity, pokličite ga kakor želite.

Najprej poiščimo aplikacijo, ki je nastavljena za izgradnjo, da ne pozabimo. Zato shranite prizor in ga poimenujte "glavni".

Pojdite na datoteko, nastavitve gradnje in preklopite svojo platformo za gradnjo na Android ali IOS. Pomaknite se do nastavitev XR v nastavitvah predvajalnika in preverite Podprta razširjena resničnost Vuforia.

Če uporabljate Android, vam ne bo treba storiti ničesar drugega, v iOS -u pa pojdite na druge nastavitve in vnesite nekaj za svoj identifikator svežnja. Uporabite obliko "com. YourCompanyName. YourAppName."

Vnesite karkoli za opis uporabe kamere in spremenite ciljno minimalno različico gradnje na najmanj 9,0.

Zaprite to in zdaj nastavimo vse ostalo.

2. korak: Nastavimo Vuforio

Nastavimo Vuforio
Nastavimo Vuforio

Zdaj pa vse uredimo.

Pojdite na gameobject v zgornjem meniju in kliknite ARCamera. Zdaj izbrišite glavno kamero s prizora.

Izberite kamero ARCamera in na desni strani v inšpektorju kliknite Odpri konfiguracijo Vuforia. Kliknite na zbirko naborov podatkov in počistite vse, ker tukaj ne uporabljamo nobenih ciljev slik.

Kliknite na sledilnik naprav in nato sledite pozi naprave. Spremenite sledenje iz rotacijskega v pozicijsko.

Zdaj se vrnite na zavihek predmeta igre in kliknite Vuforia, Ground Plane in Plane Finder. Tu so skripti, ki najdejo našo osnovno ravnino.

Zadnja stvar, ki jo potrebujemo, je stopnja talne ravnine, zato znova pojdite na predmet igre v zgornjem meniju in kliknite Vuforia, Ground Plane in izberite Ground Plane Stage. Zdaj se bo v AR prikazalo vse, kar smo otroci od tega.

3. korak: Dodajte nov skript

Dodajte nov skript
Dodajte nov skript
Dodajte nov skript
Dodajte nov skript

Privzeto vedenje tega zaznavanja talne ravnine je, da vsakič, ko pritisnete na zaslon, postavite nov predmet. Kaj želimo, je, da objekt le vsakič, ko pritisnete na zaslon, preprosto prestavite. Zato z desno miškino tipko kliknite v mapi s sredstvi in ustvarite nov skript C#. Pokličite ga "DeployStageOnce" in vse zamenjajte s to kodo:

uporaba sistema;

z uporabo UnityEngine; uporaba Vuforia; javni razred DeployStageOnce: MonoBehaviour {javna GameObject AnchorStage; zasebno PositionalDeviceTracker _deviceTracker; zasebni GameObject _previousAnchor; public void Start () {if (AnchorStage == null) {Debug. Log ("AnchorStage mora biti določen"); vrnitev; } AnchorStage. SetActive (false); } javna void Awake () {VuforiaARController. Instance. RegisterVuforiaStartedCallback (OnVuforiaStarted); } javna void OnDestroy () {VuforiaARController. Instance. UnregisterVuforiaStartedCallback (OnVuforiaStarted); } zasebna praznina OnVuforiaStarted () {_deviceTracker = TrackerManager. Instance. GetTracker (); } public void OnInteractiveHitTest (HitTestResult result) {if (result == null || AnchorStage == null) {Debug. LogWarning ("Test zadetka ni veljaven ali AnchorStage ni nastavljen"); vrnitev; } var sidro = _deviceTracker. CreatePlaneAnchor (Guid. NewGuid (). ToString (), rezultat); if (sidro! = nič) {AnchorStage.transform.parent = sidro.transform; AnchorStage.transform.localPosition = Vector3.zero; AnchorStage.transform.localRotation = Quaternion.identity; AnchorStage. SetActive (true); } if (_previousAnchor! = null) {Uniči (_previousAnchor); } _previousAnchor = sidro; }}

Da bi zagotovili uporabo tega skripta, moramo poklicati funkcijo OnInteractiveHitTest (), zato se vrnite v Unity in kliknite objekt igre Finder plane. Spremenite način iz samodejnega v interaktivni. Skript, ki smo ga pravkar naredili, povlecite na igralni objekt iskalnika letal. Odstranite skript ContentPositioningBehavior. V skriptu DeployStageOnce boste videli mesto za predmet igre, povlecite iskalnik letala in poiščite ta skript, izberite funkcijo OnInteractiveHitTest na vrhu seznama. Zdaj se bo naša funkcija klicala vsakič, ko uporabnik klikne na zaslon!

4. korak: Dodaj avto

Dodajmo avto
Dodajmo avto

Prenesite ta brezplačni 3D model avtomobila od tukaj (prenesite različico.obj):

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

Prenesite tudi ta zvok, ker ga bomo predvajali, ko bo avtomobil padel na tla:

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

Razpakirajte obe datoteki in jih povlecite v mapo sredstev.

Kliknite avto in poglejte na desno, v spustnem meniju na vrhu spremenite Uporabi vdelane materiale za uporabo zunanjih materialov (zapuščina). Zdaj bomo lahko spremenili barvo vseh materialov na avtomobilu.

Povlecite avto na oder talne ravnine in ga naredite otroka. Spremenite lestvico na.035 na x, y in z.

Zdaj pojdite skozi vsak predmet otroške igre avtomobilov in spremenite njihov material v poljubno barvo.

Korenskemu predmetu igre avtomobila dodajte togo karoserijo in dodajte škatlasti trkalnik, ga pomanjšajte tako, da zajema celoten avto. Stopnji talne ravnine dodajte tudi trkalnik škatel in ga prilagodite tako, da bo nekajkrat širši od stopnje talne ravnine. Na ta način lahko avto spustimo z neba in ta bo z Unityjevim vgrajenim fizikalnim motorjem udaril v tla.

5. korak: Postavite avto na nebo

Postavite avto na nebo
Postavite avto na nebo

Osnovni igri predmetu avtomobila dodajte komponento avdio vira, povlecite zvok avtomobilske nesreče na mesto za zvočni posnetek.

Zdaj moramo narediti scenarij, ki bo avto dvignil v zrak, ko bo uporabnik pritisnil na zaslon, nato pa predvajal zvok trka, ko bo avtomobil padel na tla. Torej, z desno miškino tipko kliknite mapo sredstev in ustvarite nov skript C# in ga pokličite "CarController."

Tu zamenjajte vso kodo:

z uporabo System. Collections;

z uporabo System. Collections. Generic; z uporabo UnityEngine; CarController javnega razreda: MonoBehaviour {private bool soundPlayed = false; // Posodobitev se kliče enkrat na okvir void Update () {if (! SoundPlayed && transform.localPosition.y <.05f) {soundPlayed = true; StartCoroutine (DelayPlaySound ()); }} javna void MoveCar () {transform.localPosition += nov Vector3 (0, 10, 0); transform.eulerAngles += nov Vector3 (5, 20, 5); soundPlayed = false; } IEnumerator DelayPlaySound () {yield return new WaitForSeconds (.2f); GetComponent (). Play (); }}

Dogodku OnInteractiveHitTest dodajte funkcijo MoveCar, kot je na zgornji sliki. Zdaj bo poklican, ko uporabnik klikne na zaslon.

6. korak: Lambo vrata

Lambo vrata
Lambo vrata

Če torej razširite predmet avtomobilske igre in poiščete vrata, boste opazili, da sta vrata ena sama mreža. Če želimo odpreti vrata, bodo naša edina možnost Lambo vrata, ki se odpirajo navpično. Za to delo moramo najprej spremeniti njihovo vrtilno točko.

Naredite prazen predmet igre, ki je otrok avtomobila. Povlecite vrata in jih naredite podrejenega tega novega igralnega predmeta. Premaknite starševski predmet igre na mesto, kjer bi morala biti točka vrtenja, za tečaje vrat. Zdaj premaknite otroška vrata na svoje mesto. Ko zavrtimo nadrejeno vrata, je vrtilna točka na pravem mestu.

Naredili bomo scenarij, ki odpre vrata, ko se približate avtomobilu, preden pa to storimo, potrebujemo način, da dogodek "sprožimo". V predmet starševske igre dodajte okvirni trkalnik in ga pomanjšajte, tako da gre malo nad avto v obeh smereh. Preverite "isTrigger". Zdaj v glavni fotoaparat dodajte okvirni trkalnik in ga ustrezno prilagodite. Preverite tudi "isTrigger". V fotoaparat dodajte komponento Rigid Body in počistite polje "useGravity". Ko je fotoaparat izbran, spremenite oznako na "MainCamera" na vrhu inšpektorja.

Dodajte nov skript z imenom "LamboDoorBehavior" in dodajte spodnjo kodo. Povlecite skript na starša svojih vrat.

z uporabo System. Collections;

z uporabo System. Collections. Generic; z uporabo UnityEngine; javni razred LamboDoorBehavior: MonoBehaviour {private float currAngle = 0; zaželen zasebni plovec Angle = 0; // Posodobitev se kliče enkrat na okvir void Update () {currAngle = Mathf. LerpAngle (currAngle, desireAngle, Time.deltaTime * 3f); transform.localEulerAngles = nov Vector3 (currAngle, 0, 0); } public void OpenDoors () {wishAngle = 60f; } public void CloseDoors () {wishAngle = 0; } void OnTriggerEnter (Collider col) {if (col. CompareTag ("MainCamera")) {OpenDoors (); }} void OnTriggerExit (Collider col) {if (col. CompareTag ("MainCamera")) {CloseDoors (); }}}

Ta skript povzroči, da se vaša vrata počasi odprejo, ko jih zaprete v AR z uporabo funkcije Lerp () v enotnosti, ki interpolira med dvema točkama (ali v tem primeru dvema kotoma).

7. korak: Predvajanje videa v AR

Predvajanje videa v AR
Predvajanje videa v AR
Predvajanje videa v AR
Predvajanje videa v AR

Zadnja stvar, ki jo moramo storiti, je predvajanje videa v AR.

Z desno miškino tipko kliknite kateri koli predmet igre, ki je podrejen vašemu avtomobilu, in ustvarite 3D predmet, Quad. Tako boste prepričali, da je štirikolesnik vašega avtomobila. Postavite in spremenite velikost tega štirikolesnika tako, da se prilega notranjosti armature vašega avtomobila in izgleda, kot da bi moral biti tam. Na tem bomo predvajali video.

V svoj štirikolesnik dodajte komponento video predvajalnika. Spremenite vir v URL in poiščite trdo povezavo do datoteke. MP4 ali povlecite video datoteko v mapo sredstev, nato pa povlecite posnetek v prazno režo. Če želite videoposnetek pretakati z URL -ja, je Instragram odličen vir. Z desno miškino tipko kliknite kateri koli videoposnetek Instagrama v brskalniku Google Chrome in kliknite inšpekcijski pregled. Poiščite div, ki vsebuje video, in kopirajte povezavo od tam (ta metoda je prikazana zgoraj).

Če želite, da se predvaja več kot enkrat, preverite zanko. Temu predmetu igre dodajte komponento avdio vira in spremenite izhodni vir v avdio vir v video predvajalniku. V to režo povlecite novo ustvarjeni zvočni vir.

Končno smo končali!

8. korak: aplikacijo postavite na telefon

Aplikacijo postavite na telefon!
Aplikacijo postavite na telefon!

Če gradite za Android, lahko preprosto odprete datoteko in pritisnete build and run z vklopljenim telefonom.

Če uporabljate iPhone ali iPad, prenesite Xcode iz trgovine z aplikacijami. Prav tako se prijavite na brezplačen račun razvijalca jabolk na www.apple.developer.com. Pojdite v datoteko in pritisnite build. Odprite datoteko, ki je bila ustvarjena iz Xcode, in priključite telefon. Izberite svojo razvojno skupino in pritisnite gumb za predvajanje.

Morda boste morali fotoaparat rahlo premakniti, vendar počakajte sekundo in se dotaknite zaslona in videli boste, kako vam avto z neba pade na tla! Zdaj lahko vstopite v notranjost in si ogledate predvajanje videa na nadzorni plošči!

Lepo se imejte in mi sporočite, če imate kakršna koli vprašanja v komentarjih!

Priporočena: