Mündəricat:

Artırılmış Reallıq Vuforia 7 Yerüstü Təyyarə Tanıma .: 8 Addım
Artırılmış Reallıq Vuforia 7 Yerüstü Təyyarə Tanıma .: 8 Addım

Video: Artırılmış Reallıq Vuforia 7 Yerüstü Təyyarə Tanıma .: 8 Addım

Video: Artırılmış Reallıq Vuforia 7 Yerüstü Təyyarə Tanıma .: 8 Addım
Video: Artırılmış Reallıq -AR Smart Business Card 2024, Iyul
Anonim
Artırılmış Reallıq Vuforia 7 Yerüstü Təyyarə Algılama
Artırılmış Reallıq Vuforia 7 Yerüstü Təyyarə Algılama
Artırılmış Reallıq Vuforia 7 Yerüstü Təyyarə Algılama
Artırılmış Reallıq Vuforia 7 Yerüstü Təyyarə Algılama

Vuforia'nın Unity 3D üçün artırılmış reallıq SDK, AR -da yerdəki təyyarələri aşkar etmək üçün ARCore və ARKit istifadə edir. Bugünkü dərslik, Android və ya IOS üçün bir AR tətbiqi etmək üçün Unity -də doğma inteqrasiyasından istifadə edəcək. Göydən yerə düşəcək bir maşınımız olacaq və yaxınlaşanda qapıları avtomatik açılacaq. AR -da video çəkməyə də keçəcəyik. İzləmək üçün kompüterinizdə Unity 3D quraşdırmalısınız (pulsuzdur). Bu təlimatlar tamamilə yeni başlayanlar üçündür, buna görə hər şeyi ətraflı araşdıracağıq!

Vuforia SLAM -ın ən yaxşı tərəfi, dəstəklədiyi IOS və Android cihazlarının miqdarıdır. Cihazların tam siyahısını burada tapa bilərsiniz:

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

Addım 1: Yeni bir layihəyə başlayın

Yeni Bir Layihəyə Başlayın
Yeni Bir Layihəyə Başlayın

Əgər sizdə hələ yoxdursa, Unity 3D -ni buradan yükləyin:

Hansı cihazınızdan asılı olaraq Vuforia Artırılmış Reallıq və Android və ya IOS dəstəyi qurduğunuzdan əmin olun.

Birliyi açın və yeni Birlik layihəsinə başlayın, istədiyinizə zəng edin.

Əvvəlcə unutmamaq üçün qurmaq üçün qurulmuş bir tətbiqdən çıxaq. Beləliklə, səhnəni xilas edin və "əsas" adlandırın.

Dosyaya gedin, parametrlər qurun və qurma platformanızı Android və ya IOS -a keçirin. Oyunçu ayarlarında XR parametrlərinə gedin və Vuforia Artırılmış Reallıq Dəstəkləndiyini yoxlayın.

Android -də başqa bir şey etməyiniz lazım deyil, ancaq IOS -da digər parametrlərə keçin və paket identifikatorunuz üçün bir şey qoyduğunuzdan əmin olun. "Com. YourCompanyName. YourAppName" formatını istifadə edin.

Kamera istifadəsi təsviri üçün bir şey qoyun və hədəf minimum quruluş versiyasını ən az 9.0 olaraq dəyişdirin.

Bunu bağlayın və indi hər şeyi qurmağa çalışaq.

Addım 2: Vuforia quraq

Vuforia quraq
Vuforia quraq

İndi hər şeyi quraq.

Üst menyudan gameobject -ə gedin və ARCamera düyməsini basın. İndi əsas kameranı səhnənizdən silin.

ARCamera seçin və müfəttişin sağ tərəfində Vuforia Konfiqurasiyasını Aç düyməsini basın. Məlumat dəstləri kolleksiyasına vurun və hər şeyin işarəsini silin, çünki burada heç bir görüntü hədəfi istifadə etmirik.

Cihaz izləyicisini vurun və cihaz pozasını izləyin. İzləmə mövqeyini mövqedən dəyişin.

İndi oyun obyekti sekmesine qayıdın və Vuforia, Ground Plane və Plane finder düyməsini basın. Bu, yer təyyarəmizi tapan ssenariləri özündə cəmləşdirir.

Ehtiyacımız olan son şey yerdəki təyyarə mərhələsidir, buna görə üst menyudan yenidən oyun obyektinə gedin və Vuforia, Ground Plane düyməsini basın və Ground Plane Stage seçin. İndi uşağımız olan hər şey AR -da görünəcək.

Addım 3: Yeni Script əlavə edin

Yeni Script əlavə edin
Yeni Script əlavə edin
Yeni Script əlavə edin
Yeni Script əlavə edin

Bu yer təyyarəsi aşkarlamasının standart davranışı, ekrana hər dəfə basdığınız zaman yeni bir obyekt yerləşdirməkdir. İstədiyimiz, hər dəfə ekranda hər dəfə basıldığında obyektin yerini dəyişməkdir. Buna görə aktivlər qovluğuna sağ vurun və yeni bir C# skripti yaradın. Buna "DeployStageOnce" deyin və hər şeyi bu kodla əvəz edin:

Sistemdən istifadə;

UnityEngine istifadə edərək; Vuforia istifadə edərək; ictimai sinif DeployStageOnce: MonoBehaviour {ictimai GameObject AnchorStage; xüsusi PositionalDeviceTracker _deviceTracker; özəl GameObject _previousAnchor; public void Start () {if (AnchorStage == null) {Debug. Log ("AnchorStage göstərilməlidir"); qayıtmaq; } AnchorStage. SetActive (yalan); } ictimai boşluq Oyan () {VuforiaARController. Instance. RegisterVuforiaStartedCallback (OnVuforiaStarted); } ictimai boşluq OnDestroy () {VuforiaARController. Instance. UnregisterVuforiaStartedCallback (OnVuforiaStarted); } şəxsi boşluq OnVuforiaStarted () {_deviceTracker = TrackerManager. Instance. GetTracker (); } ictimai boşluq OnInteractiveHitTest (HitTestResult nəticə) {if (nəticə == null || AnchorStage == null) {Debug. LogWarning ("Hit testi etibarsızdır və ya AnchorStage qurulmamışdır"); qayıtmaq; } var anchor = _deviceTracker. CreatePlaneAnchor (Guid. NewGuid (). ToString (), nəticə); if (çapa! = sıfır) {AnchorStage.transform.parent = çapa.transform; AnchorStage.transform.localPosition = Vector3.zero; AnchorStage.transform.localRotation = Quaternion.identity; AnchorStage. SetActive (doğru); } if (_previousAnchor! = null) {Destroy (_previousAnchor); } _previousAnchor = çapa; }}

Bu skriptin istifadə olunduğundan əmin olmaq üçün OnInteractiveHitTest () funksiyasına zəng etməliyik, buna görə Unity -ə qayıdın və təyyarə tapan oyun obyektini vurun. Rejimi Avtomatikdən İnteraktivə dəyişdirin. Təzə tapan oyun obyektinə yeni hazırladığımız skripti sürükləyin. ContentPositioningBehavior skriptini silin. DeployStageOnce skriptində bir oyun obyekti üçün bir yer görəcəksiniz, təyyarə tapanını oraya sürükləyin və bu skripti tapın, siyahının yuxarısından OnInteractiveHitTest funksiyasını seçin. İstifadəçi ekranda nə vaxt klikləsə, indi bizim funksiyamıza zəng gələcək!

Addım 4: Maşını əlavə edək

Maşını əlavə edək
Maşını əlavə edək

Bu pulsuz avtomobil 3D modelini buradan yükləyin (.obj versiyasını aldığınızdan əmin olun):

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

Həm də bu səsi yükləyin, çünki maşın yerə dəyəndə onu səsləndirəcəyik:

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

Hər iki faylı açın və aktivlər qovluğuna sürükləyin.

Maşını vurun və sağa baxın, yuxarıdakı açılan menyudan Xarici materiallardan istifadə etmək üçün Gömülü Materiallardan İstifadə Et (Legacy) seçin. İndi maşının üzərindəki bütün materialların rəngini dəyişə biləcəyik.

Maşını uşaq etmək üçün yerdəki təyyarə sahəsinə sürükləyin. Ölçüyü x, y və z üzərində.035 olaraq dəyişdirin.

İndi uşaq oyun obyektlərinin hər birindən keçin və materiallarını istədiyiniz rəngə dəyişin.

Avtomobilin kök oyun obyektinə sərt bir gövdə komponenti əlavə edin və bir qutu toqquşdurucusu əlavə edin, bütün avtomobili əhatə edəcək şəkildə miqyaslayın. Zəmin müstəvisinə bir qutu toqquşdurucu əlavə edin və yer səthinin sahəsindən bir neçə dəfə geniş olması üçün ölçüsünü alın. Bu şəkildə maşını göydən yerə ata bilərik və bu, Unity -nin qurduğu fizika mühərriki ilə yerə çırpılacaq.

Addım 5: Maşını göyə qoyun

Maşını Göyə Qoy
Maşını Göyə Qoy

Avtomobilin kök oyun obyektinə bir səs mənbəyi komponenti əlavə edin, qəza səsini audio klip yerinə sürükləyin.

İndi istifadəçi ekrana basıldıqda maşını havaya qaldıracaq və sonra avtomobil yerə çırpıldıqda qəza səsini səsləndirəcək bir ssenari hazırlamalıyıq. Beləliklə, aktivlər qovluğuna sağ vurun və yeni bir C# skripti yaradın və ona "CarController" deyin.

Oradakı bütün kodu bununla əvəz edin:

System. Collections istifadə;

System. Collections. Generic istifadə edərək; UnityEngine istifadə edərək; ictimai sinif CarController: MonoBehaviour {private bool soundPlayed = false; // Yeniləmə hər çərçivədə bir dəfə çağırılır void Update () {if (! SoundPlayed && transform.localPosition.y <.05f) {soundPlayed = true; StartCoroutine (DelayPlaySound ()); }} ictimai boşluğu MoveCar () {transform.localPosition += yeni Vector3 (0, 10, 0); transform.eulerAngles += yeni Vector3 (5, 20, 5); soundPlayed = yalan; } IEnumerator DelayPlaySound () {verilişi yeni WaitForSeconds (.2f) qaytarır; GetComponent (). Play (); }}

MoveCar funksiyasını yuxarıdakı şəkildəki kimi OnInteractiveHitTest hadisəsinə əlavə edin. İndi istifadəçi ekranda kliklədikdə zəng ediləcək.

Addım 6: Lambo Qapılar

Lambo Qapılar
Lambo Qapılar

Avtomobil oyun obyektini genişləndirsəniz və qapıları tapsanız, hər iki qapının tək bir mesh olduğunu görəcəksiniz. Qapıları açmaq istəsək, yeganə seçimimiz şaquli açılan Lambo qapıları olacaq. Bu işi etmək üçün əvvəlcə onların dönmə nöqtələrini dəyişdirməliyik.

Avtomobilin uşağı olan boş bir oyun obyekti yaradın. Qapıları içəri sürükləyin və onları bu yeni oyun obyektinin uşağı edin. Ana oyun obyektini dönmə nöqtəsinin olması lazım olan yerə, qapı menteşələrindən keçirin. İndi uşaq qapılarını yerinə qaytarın. İndi ana qapıları döndərdiyimiz zaman dönmə nöqtəsi doğru yerdədir.

Maşına yaxınlaşanda qapıları açan bir ssenari hazırlayacağıq, amma bunu etməzdən əvvəl hadisəni "tetiklemek" üçün bir yola ehtiyacımız var. Qapıdakı ana oyun obyektinizə bir qutu toqquşdurucu əlavə edin və avtomobili hər iki istiqamətdə bir az keçəcək şəkildə genişləndirin. "İsTrigger" yoxlayın. İndi əsas kameraya bir qutu toqquşdurucu əlavə edin və onu uyğun ölçüyə salın. Həmçinin "isTrigger" i yoxlayın. Kameranıza Sərt Bədən komponenti əlavə edin və "useGravity" işarəsini çıxarın. Kameranız seçildikdə, müfəttişin yuxarısındakı etiketini "MainCamera" olaraq dəyişdirin.

"LamboDoorBehavior" adlı yeni bir skript əlavə edin və aşağıdakı kodu əlavə edin. Ssenarini qapınızın valideyninə sürükləyin.

System. Collections istifadə;

System. Collections. Generic istifadə edərək; UnityEngine istifadə edərək; ictimai sinif LamboDoorBehavior: MonoBehaviour {private float CurrAngle = 0; şəxsi float istenirAngle = 0; // Yeniləmə hər çərçivədə bir dəfə çağırılır void Update () {CurrAngle = Mathf. LerpAngle (CurrAngle, istediğinizAngle, Time.deltaTime * 3f); transform.localEulerAngles = yeni Vector3 (CurrAngle, 0, 0); } ictimai boşluq OpenDoors () {istənilənAngle = 60f; } public void CloseDoors () {istənilənAngle = 0; } void OnTriggerEnter (Collider col) {if (col. CompareTag ("MainCamera")) {OpenDoors (); }} void OnTriggerExit (Collider col) {if (col. CompareTag ("MainCamera")) {CloseDoors (); }}}

Bu skript, iki nöqtəni (və ya bu halda iki bucağı) interpolasiya edən Lerp () funksiyasını istifadə edərək AR -da yaxınlaşdırdığınız zaman qapılarınızın yavaş -yavaş açılmasına səbəb olacaq.

Addım 7: Videonu AR -da oynayın

AR -da Video Oxunur
AR -da Video Oxunur
AR -da Video Oxunur
AR -da Video Oxunur

Etməyimiz lazım olan son şey AR -da video oynatmaqdır.

Avtomobilinizin uşağı olan hər hansı bir oyun obyektinə sağ vurun və Quad 3D obyekti yaradın. Bu, dördlüyün avtomobilinizin uşağı olmasını təmin edəcək. Bu dördlüyü elə yerləşdirin və ölçüsünü elə qoyun ki, avtomobilinizin tire içərisinə sığsın və orada olması ehtimal olunsun. Videonu oxudacağımız budur.

Dördünüzə bir video pleyer komponenti əlavə edin. Mənbəni URL olaraq dəyişdirin və. MP4 faylına sərt bir keçid tapın və ya bir video faylını aktivlər qovluğuna sürükləyin və sonra həmin klipi boş yuvaya sürükləyin. Bir URL -dən bir video yayımlamaq istəyirsinizsə, İnstagram əla bir mənbəyidir. Google Chrome -da hər hansı bir Instagram videosunu sağ vurun və yoxlayın. Videonu ehtiva edən div tapın və oradan linki kopyalayın (yuxarıda göstərilən bu metodum var).

Bir dəfədən çox oynamaq istəsəniz döngəni yoxlayın. Bu oyun obyektinə bir səs mənbəyi komponenti əlavə edin və çıxış mənbəyini video pleyerdəki səs mənbəyinə dəyişdirin. Yeni yaradılmış səs mənbəyinizi həmin yuvaya sürükləyin.

Nəhayət işimiz bitdi!

Addım 8: Tətbiqi Telefonunuza qoyun

Tətbiqi Telefonunuza qoyun!
Tətbiqi Telefonunuza qoyun!

Android üçün qurursanız, sadəcə fayla gedin və telefonunuzu qoşaraq qur və işə salın.

Bir iPhone və ya iPad qurursanız, Xcode -u tətbiq mağazasından yükləməyinizə əmin olun. Ayrıca, www.apple.developer.com saytından pulsuz bir Apple geliştirici hesabı üçün qeydiyyatdan keçin. Dosyaya gedin və qurmağa vurun. Xcode -dan yaradılan faylı açın və telefonunuzu qoşun. İnkişaf qrupunuzu seçin və oyun düyməsini basın.

Kameranı bir az gəzdirmək lazım ola bilər, ancaq bir saniyə verin və ekrana vurun və avtomobilinizin göydən yerə düşdüyünü görəsiniz! İndi içəri girə və videonuzu tablosundan izləyə bilərsiniz!

Əylən və şərhlərdə hər hansı bir sualın varsa mənə bildir!

Tövsiyə: