Sisukord:

Liitreaalsus Vuforia 7 maapealse taseme tuvastamine: 8 sammu
Liitreaalsus Vuforia 7 maapealse taseme tuvastamine: 8 sammu

Video: Liitreaalsus Vuforia 7 maapealse taseme tuvastamine: 8 sammu

Video: Liitreaalsus Vuforia 7 maapealse taseme tuvastamine: 8 sammu
Video: Augmented reality Unity+Vuforia project_1 (Markers) 2024, November
Anonim
Liitreaalsuse Vuforia 7 maapealse taseme tuvastamine
Liitreaalsuse Vuforia 7 maapealse taseme tuvastamine
Liitreaalsus Vuforia 7 maapealse taseme tuvastamine
Liitreaalsus Vuforia 7 maapealse taseme tuvastamine

Vuforia liitreaalsuse SDK Unity 3D jaoks kasutab ARCore'i ja ARKiti AR -i maapealsete lennukite tuvastamiseks. Tänane õpetus kasutab nende loomulikku integreerimist Unity'is, et luua AR -rakendus Androidile või IOS -ile. Auto kukub taevast maapinnale ja selle uksed avanevad automaatselt, kui lähedale jõuame. Samuti vaatame AR -is videot. Järgmiseks peate arvutisse installima Unity 3D (see on tasuta). Need juhised on mõeldud algajatele, nii et vaatame kõik üksikasjalikult üle!

Parim osa Vuforia SLAM -is on IOS -i ja Android -seadmete hulk, mida see toetab. Seadmete täieliku loendi leiate siit:

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

Samm: alustage uut projekti

Alustage uut projekti
Alustage uut projekti

Laadige Unity 3D siit alla, kui teil seda veel pole:

Installige kindlasti Vuforia liitreaalsuse ja Androidi või IOS -i tugi sõltuvalt sellest, milline seade teil on.

Avage Unity ja alustage uut Unity projekti, nimetage seda kuidas soovite.

Esiteks lubame rakenduse välja ehitada, et seda mitte unustada. Niisiis, salvestage stseen ja nimetage see "peamiseks".

Minge faili, looge seaded ja lülitage oma ehitusplatvorm Androidile või IOS -ile. Liikuge mängija seadetes XR -seadetele ja kontrollige Vuforia liitreaalsuse toetust.

Kui kasutate Androidi, ei pea te midagi muud tegema, kuid IOS -i puhul minge muudesse seadistustesse ja sisestage kindlasti oma kimbu identifikaatori jaoks midagi. Kasutage vormingut "com. YourCompanyName. YourAppName".

Sisestage kaamera kasutamise kirjelduse jaoks kõik ja muutke sihtmärgi minimaalse versiooni versiooniks vähemalt 9,0.

Lõpetage see ja paneme nüüd kõik muu paika.

2. samm: seadistame Vuforia

Seadistame Vuforia
Seadistame Vuforia

Nüüd paneme kõik paika.

Minge ülemises menüüs mänguobjekti ja klõpsake nuppu ARCamera. Nüüd kustutage stseenist põhikaamera.

Valige ARCamera ja klõpsake inspektori paremal küljel nuppu Open Vuforia Configuration. Klõpsake andmekogumite kogu ja tühjendage kõik märkeruudud, kuna me ei kasuta siin ühtegi pildisihtmärki.

Klõpsake seadmejälgijal ja seejärel seadme jälgimisel. Muutke jälgimine pöörlevast asendisse.

Nüüd minge tagasi mänguobjekti vahekaardile ja klõpsake Vuforia, Ground Plane ja Plane Finder. See sisaldab skripte, mis leiavad meie põhitasandi.

Viimane asi, mida vajame, on maapealne tasand, seega minge ülemises menüüs uuesti mänguobjektile ja klõpsake Vuforia, Ground Plane ja valige Ground Plane Stage. Nüüd ilmub AR -is kõik, mida me sellega tegeleme.

Samm: lisage uus skript

Lisage uus skript
Lisage uus skript
Lisage uus skript
Lisage uus skript

Selle maatasapinna tuvastamise vaikimisi käitub uue objekti paigutamine iga kord, kui ekraanile vajutate. Tahame objekti lihtsalt iga kord ekraanil vajutades ümber paigutada. Nii paremklõpsake oma varade kaustas ja looge uus C# skript. Helistage sellele "DeployStageOnce" ja asendage kõik selle koodiga:

süsteemi kasutamine;

UnityEngine'i kasutamine; Vuforia kasutamine; avalik klass DeployStageOnce: MonoBehaviour {public GameObject AnchorStage; private PositionalDeviceTracker _deviceTracker; privaatne GameObject _previousAnchor; public void Start () {if (AnchorStage == null) {Debug. Log ("AnchorStage tuleb määrata"); tagasipöördumine; } AnchorStage. SetActive (vale); } public void Awake () {VuforiaARController. Instance. RegisterVuforiaStartedCallback (OnVuforiaStarted); } public void OnDestroy () {VuforiaARController. Instance. UnregisterVuforiaStartedCallback (OnVuforiaStarted); } private void OnVuforiaStarted () {_deviceTracker = TrackerManager. Instance. GetTracker (); } public void OnInteractiveHitTest (HitTestResult tulemus) {if (result == null || AnchorStage == null) {Debug. LogWarning ("Tulemustest on kehtetu või AnchorStage pole määratud"); tagasipöördumine; } var anchor = _deviceTracker. CreatePlaneAnchor (Guid. NewGuid (). ToString (), tulemus); if (ankur! = null) {AnchorStage.transform.parent = ankur.transform; AnchorStage.transform.localPosition = Vector3.zero; AnchorStage.transform.localRotation = Quaternion.identity; AnchorStage. SetActive (tõene); } if (_previousAnchor! = null) {Destroy (_previousAnchor); } _previousAnchor = ankur; }}

Selle skripti kasutuselevõtmiseks peame helistama funktsioonile OnInteractiveHitTest (), nii et minge tagasi Unity'i ja klõpsake tasapinna leidja mänguobjektil. Muutke režiim Automaatne interaktiivseks. Lohistage skript, mille me just tegime, tasapinnaotsija mänguobjektile. Eemaldage skript ContentPositioningBehavior. Näete DeployStageOnce skriptis mänguobjekti kohta, lohistage tasapinnaotsija sinna ja leidke see skript, valige loendi ülaosast funktsioon OnInteractiveHitTest. Nüüd helistatakse meie funktsioonile iga kord, kui kasutaja ekraanil klõpsab!

Samm: lisame auto

Lisame auto
Lisame auto

Laadige see tasuta auto 3D -mudel siit alla (hankige kindlasti.obj -versioon):

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

Samuti laadige see heli alla, sest me mängime seda, kui auto maapinnale jõuab:

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

Pakkige mõlemad failid lahti ja lohistage need oma varade kausta.

Klõpsake autol ja vaadake paremale, muutke ülaosas asuvast rippmenüüst suvandit Kasuta manustatud materjale väliste materjalide kasutamiseks (pärand). Nüüd saame muuta kõigi autol olevate materjalide värvi.

Lohistage auto oma tasapinnale, muutes selle lapseks. Muutke x, y ja z skaala väärtuseks.035.

Nüüd minge läbi iga auto lapsemänguobjekt ja muutke nende materjalid soovitud värviga.

Lisage auto juuremänguobjektile jäik kerekomponent ja lisage ka karbipõrke, skaleerige see nii, et see kataks kogu auto. Lisage alusplaadi astmele ka karbikollipidur ja skaleerige see nii, et see oleks paar korda laiem kui aluspinna aste. Nii saame auto taevast alla visata ja see lööb maapinnale, kasutades Unity sisseehitatud füüsikamootorit.

Samm: pange auto taevasse

Pange auto taevasse
Pange auto taevasse

Lisage auto juuremänguobjektile heliallikas, lohistage autoõnnetuse heli selle heliklipi kohta.

Nüüd peame tegema stsenaariumi, mis paneb auto õhku, kui kasutaja ekraanile vajutab ja seejärel mängib auto maapinnale põrkamisel heli. Niisiis, paremklõpsake varade kaustas ja looge uus C# skript ning nimetage see "CarControlleriks".

Asendage kogu seal olev kood järgmiselt:

kasutades System. Collections;

kasutades System. Collections. Generic; UnityEngine'i kasutamine; avalik klass CarController: MonoBehaviour {private bool soundPlayed = false; // Värskendust kutsutakse üks kord kaadri kohta tühine Update () {if (! SoundPlayed && transform.localPosition.y <.05f) {soundPlayed = true; StartCoroutine (DelayPlaySound ()); }} public void MoveCar () {transform.localPosition += new Vector3 (0, 10, 0); transform.eulerAngles += uus Vector3 (5, 20, 5); soundPlayed = vale; } IEnumerator DelayPlaySound () {tootlus tagastab uue WaitForSeconds (.2f); GetComponent (). Play (); }}

Lisage funktsioon MoveCar sündmusele OnInteractiveHitTest nagu ülaltoodud pildil. Nüüd helistatakse sellele, kui kasutaja ekraanil klõpsab.

6. samm: lambouksed

Lambo uksed
Lambo uksed

Nii et kui laiendate automängu objekti ja leiate uksed, märkate, et mõlemad uksed on üks võrk. Kui tahame uksi avada, on meie ainsaks võimaluseks vertikaalselt avanevad Lambo uksed. Selle töö tegemiseks peame esmalt muutma nende pöördepunkti.

Tehke tühi mänguobjekt, mis on auto laps. Lohistage uksed sisse ja tehke neist selle uue mänguobjekti laps. Liigutage vanemängu objekt uksehingedest sinna, kus pöördepunkt peaks olema. Nüüd viige lapse uksed oma kohale tagasi. Nüüd, kui me pöörame ukse vanemat, on pöördepunkt õiges kohas.

Teeme stsenaariumi, mis avab uksed, kui jõuate auto lähedale, kuid enne seda vajame viisi sündmuse "käivitamiseks". Lisage oma ukse vanemmängu objektile kasti põrkur ja skaleerige see nii, et see liiguks veidi üle auto mõlemas suunas. Kontrollige "isTrigger". Nüüd lisage põhikaamerale karbikollipidur ja skaleerige see sobivalt. Kontrollige ka "isTrigger". Lisage oma kaamerale jäik kehaosa ja eemaldage märkeruut „useGravity”. Kui kaamera on valitud, muutke inspektori ülaosas selle silt „MainCamera”.

Lisage uus skript nimega "LamboDoorBehavior" ja lisage allolev kood. Lohistage skript oma ukse vanemale.

kasutades System. Collections;

kasutades System. Collections. Generic; UnityEngine'i kasutamine; avalik klass LamboDoorBehavior: MonoBehaviour {private float currAngle = 0; private float wantAngle = 0; // Värskendust kutsutakse üks kord kaadri kohta tühjaks Update () {currAngle = Mathf. LerpAngle (currAngle, soovitudAngle, Time.deltaTime * 3f); transform.localEulerAngles = uus Vector3 (currAngle, 0, 0); } public void OpenDoors () {soovitudAngle = 60f; } public void CloseDoors () {soovitudAngle = 0; } void OnTriggerEnter (kokkupõrke kol.) {if (col. CompareTag ("MainCamera")) {OpenDoors (); }} void OnTriggerExit (kokkupõrke kol.) {if (col. CompareTag ("MainCamera")) {CloseDoors (); }}}

See skript avab teie uksed aeglaselt, kui sulgete need AR -is, kasutades funktsiooni Lerp () ühtsuses, mis interpoleerib kahe punkti (või sel juhul kahe nurga) vahel.

Samm: video esitamine AR -is

Video esitamine AR -is
Video esitamine AR -is
Video esitamine AR -is
Video esitamine AR -is

Viimane asi, mida peame tegema, on video esitamine AR -is.

Paremklõpsake mis tahes mänguobjektil, mis on teie auto laps, ja looge 3D -objekt Quad. See tagab, et quad on teie auto laps. Paigutage ja muutke seda nelinurka nii, et see sobiks teie auto kriipsu sisse ja näeks välja, nagu see seal peaks olema. See on see, millel me videot esitame.

Lisage oma quadile videopleieri komponent. Muutke allikaks URL ja leidke. MP4 -failile kõva link või lohistage videofail oma varade kausta ja lohistage see klipp tühja pesasse. Kui soovite voogesitada videot URL -ist, on Instragram suurepärane allikas. Paremklõpsake mis tahes Instagrami videot Google Chrome'is ja klõpsake nuppu Kontrolli. Leidke videot sisaldav div ja kopeerige link sealt (mul on see meetod ülaltoodud pildil).

Kontrollige kindlasti silmust, kui soovite, et seda esitataks rohkem kui üks kord. Lisage sellele mänguobjektile heliallika komponent ja muutke videopleieri väljundallikaks heliallikaks. Lohistage oma äsja loodud heliallikas sellesse pesasse.

Lõpuks oleme valmis!

Samm: pange rakendus oma telefoni

Pange rakendus oma telefoni!
Pange rakendus oma telefoni!

Kui loote Androidi jaoks, võite lihtsalt minna faili ja vajutada ehitada ja käivitada, kui telefon on ühendatud.

Kui kasutate iPhone'i või iPadi, siis laadige Xcode kindlasti rakenduste poest alla. Registreeruge ka tasuta õuna arendajakontole saidil www.apple.developer.com. Minge faili ja klõpsake ehita. Avage Xcode'ist loodud fail ja ühendage telefon. Valige oma arendusmeeskond ja vajutage esitusnuppu.

Võimalik, et peate kaamerat veidi ringi liigutama, kuid andke sellele hetk ja puudutage ekraani ning näete, et teie auto kukub taevast maapinnale! Nüüd saate jalutada sisse ja vaadata oma videomängu armatuurlaual!

Lõbutsege ja andke mulle kommentaarides teada, kui teil on küsimusi!

Soovitan: