Съдържание:

Разширена реалност Vuforia 7 Откриване на наземен самолет .: 8 стъпки
Разширена реалност Vuforia 7 Откриване на наземен самолет .: 8 стъпки

Видео: Разширена реалност Vuforia 7 Откриване на наземен самолет .: 8 стъпки

Видео: Разширена реалност Vuforia 7 Откриване на наземен самолет .: 8 стъпки
Видео: ДОПОЛНЕННАЯ РЕАЛЬНОСТЬ ЗА 3 МИНУТЫ | Unity, Vuforia, Augmented Reality, C#, Tutorial 2024, Ноември
Anonim
Разширена реалност Vuforia 7 Откриване на наземен самолет
Разширена реалност Vuforia 7 Откриване на наземен самолет
Разширена реалност Vuforia 7 Откриване на наземен самолет
Разширена реалност Vuforia 7 Откриване на наземен самолет

SDK за разширена реалност на Vuforia за Unity 3D използва ARCore и ARKit за откриване на наземни равнини в AR. Днешният урок ще използва естествената им интеграция в Unity, за да направи AR приложение за Android или IOS. Ще имаме кола, която ще падне от небето на земята и вратите й ще се отворят автоматично, когато се доближим. Ще разгледаме и правенето на видео в AR. За да продължите, ще ви трябва Unity 3D инсталиран на вашия компютър (безплатно). Тези инструкции са за начинаещи, така че ще разгледаме всичко подробно!

Най -добрата част от SLAM на Vuforia е количеството IOS и Android устройства, които тя поддържа. Пълен списък на устройствата можете да намерите тук:

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

Стъпка 1: Започнете нов проект

Започнете нов проект
Започнете нов проект

Изтеглете Unity 3D от тук, ако още нямате:

Уверете се, че сте инсталирали поддръжка за Vuforia Augmented Reality и Android или IOS в зависимост от това кое устройство имате.

Отворете Unity и започнете нов проект на Unity, наречете го както искате.

Първо нека излезем от приложението, създадено за изграждане, така че да не забравяме. Така че, запазете сцената и я наречете "основна".

Отидете на файл, създайте настройки и превключете вашата платформа за изграждане на Android или IOS. Придвижете се до настройките на XR в настройките на плейъра и проверете Поддържана разширена реалност Vuforia.

Ако сте на Android, няма да се налага да правите нищо друго, но в IOS отидете на други настройки и не забравяйте да поставите нещо за вашия идентификатор на пакета. Използвайте формата „com. YourCompanyName. YourAppName“.

Поставете всичко за описанието на използването на камерата и променете целевата минимална версия на компилация на поне 9.0.

Затворете това и сега нека настроим всичко останало.

Стъпка 2: Нека настроим Vuforia

Нека настроим Vuforia
Нека настроим Vuforia

Сега нека настроим всичко.

Отидете на gameobject в горното меню и щракнете върху ARCamera. Сега изтрийте основната камера от вашата сцена.

Изберете ARCamera и от дясната страна в инспектора щракнете върху Open Open Vuforia Configuration. Щракнете върху колекцията от набори от данни и премахнете отметката от всичко, защото тук не използваме никакви цели за изображения.

Кликнете върху устройството за проследяване и щракнете върху проследяване на позицията на устройството. Променете проследяването от ротационно на позиционно.

Сега се върнете към раздела обект на играта и щракнете върху Vuforia, Ground Plane и Plane Finder. Това съдържа скриптове, които намират нашата земна равнина.

Последното нещо, от което се нуждаем, е етапът на земната равнина, така че отидете отново на обекта на играта в горното меню и щракнете върху Vuforia, Ground Plane и изберете Ground Plane Stage. Сега всичко, което ние сме деца, ще се покаже в AR.

Стъпка 3: Добавете нов скрипт

Добавете нов скрипт
Добавете нов скрипт
Добавете нов скрипт
Добавете нов скрипт

Поведението по подразбиране на това откриване на равнината на земята е да поставяте нов обект всеки път, когато натиснете върху екрана. Това, което искаме, е просто да преместваме обекта всеки път, когато натиснете върху екрана. Така че щракнете с десния бутон в папката с активи и създайте нов C# скрипт. Наречете го „DeployStageOnce“и заменете всичко с този код:

използване на System;

използване на UnityEngine; използване на Vuforia; публичен клас DeployStageOnce: MonoBehaviour {обществен GameObject AnchorStage; частен PositionalDeviceTracker _deviceTracker; частен GameObject _previousAnchor; public void Start () {if (AnchorStage == null) {Debug. Log ("AnchorStage трябва да бъде посочен"); връщане; } AnchorStage. SetActive (false); } 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) {if (result == null || AnchorStage == null) {Debug. LogWarning ("Тестът на удара е невалиден или AnchorStage не е зададен"); връщане; } var anchor = _deviceTracker. CreatePlaneAnchor (Guid. NewGuid (). ToString (), резултат); if (котва! = нула) {AnchorStage.transform.parent = anchor.transform; AnchorStage.transform.localPosition = Vector3.zero; AnchorStage.transform.localRotation = Quaternion.identity; AnchorStage. SetActive (вярно); } if (_previousAnchor! = null) {Унищожи (_previousAnchor); } _previousAnchor = котва; }}

За да се уверим, че този скрипт се използва, трябва да извикаме функцията OnInteractiveHitTest (), така че се върнете към Unity и щракнете върху обекта на играта за търсене на равнини. Променете режима от Автоматичен на Интерактивен. Плъзнете скрипта, който току -що направихме, върху игровия обект на самолета. Премахнете скрипта ContentPositioningBehavior. Ще видите място за игрален обект в скрипта DeployStageOnce, плъзнете търсещия самолет там и намерете този скрипт, изберете функцията OnInteractiveHitTest от горната част на списъка. Сега нашата функция ще бъде извикана всеки път, когато потребителят кликне върху екрана!

Стъпка 4: Нека добавим колата

Нека добавим колата
Нека добавим колата

Изтеглете този безплатен 3D модел автомобил от тук (Уверете се, че сте получили.obj версията):

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

Също така изтеглете този звук, защото ще го пуснем, когато колата удари земята:

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

Разархивирайте двата файла и ги плъзнете в папката с активи.

Щракнете върху колата и погледнете надясно, променете Използване на вградени материали за използване на външни материали (Наследени) от падащото меню в горната част. Сега ще можем да променим цвета на всички материали по колата.

Плъзнете колата на сцената на наземната равнина, правейки я дете. Променете скалата на.035 на x, y и z.

Сега преминете през всеки от обектите на детски игри на колите и сменете материалите им с какъвто цвят искате.

Добавете твърд компонент на тялото към основния обект на играта на колата и също така добавете кутиен колайдер, мащабирайте го така, че да обхваща цялата кола. Също така добавете кутия колайдер към етапа на равнината на земята и го мащабирайте така, че да е няколко пъти по -широк от етапа на земната равнина. По този начин можем да изпуснем колата от небето и тя ще удари земята с помощта на вградения физически двигател на Unity.

Стъпка 5: Поставете колата в небето

Поставете колата в небето
Поставете колата в небето

Добавете компонент на аудио източник към основния обект на играта на автомобила, плъзнете звука на катастрофата в мястото му за аудио клип.

Сега трябва да направим скрипт, който ще вдигне колата във въздуха, когато потребителят натисне екрана и след това ще възпроизведе звука на катастрофата, когато колата удари земята. Така че, щракнете с десния бутон в папката с активи и създайте нов C# скрипт и го наречете „CarController“.

Заменете целия код там с това:

използване на System. Collections;

използване на System. Collections. Generic; използване на UnityEngine; обществен клас CarController: MonoBehaviour {private bool soundPlayed = false; // Актуализацията се извиква веднъж на кадър void Update () {if (! SoundPlayed && transform.localPosition.y <.05f) {soundPlayed = true; StartCoroutine (DelayPlaySound ()); }} public void MoveCar () {transform.localPosition += нов Vector3 (0, 10, 0); transform.eulerAngles += нов Vector3 (5, 20, 5); soundPlayed = false; } IEnumerator DelayPlaySound () {yield return new WaitForSeconds (.2f); GetComponent (). Play (); }}

Добавете функцията MoveCar към събитието OnInteractiveHitTest, както е на снимката по -горе. Сега той ще бъде извикан, когато потребителят кликне върху екрана.

Стъпка 6: Врати Lambo

Lambo врати
Lambo врати

Така че, ако разширите обекта на играта на кола и намерите вратите, ще забележите, че и двете врати са една единствена мрежа. Ако искаме да отворим вратите, единственият ни вариант ще бъдат вратите Lambo, които се отварят вертикално. За да свършим тази работа, първо трябва да променим тяхната опорна точка.

Направете празен обект за игра, който е дете на колата. Плъзнете вратите и ги направете дете на този нов обект на игра. Преместете родителския игрален обект до мястото, където трябва да бъде точката на завъртане, чрез пантите на вратата. Сега върнете детските врати на мястото им. Сега, когато завъртаме родителя на вратите, точката на завъртане е на правилното място.

Ще направим сценарий, който отваря вратите, когато се приближите до колата, но преди да направим това, имаме нужда от начин да „задействаме“събитието. Добавете кутиладжия към вашия родителски обект на играта на вратата и го мащабирайте, така че да мине малко по колата в двете посоки. Поставете отметка в „isTrigger“. Сега добавете кутилайзер към основната камера и го мащабирайте по подходящ начин. Проверете също „isTrigger“. Добавете компонент Rigid Body към камерата си и премахнете отметката от „useGravity“. Когато камерата ви е избрана, променете нейния маркер на „MainCamera“в горната част на инспектора.

Добавете нов скрипт, наречен "LamboDoorBehavior" и добавете кода по -долу. Плъзнете скрипта върху родителя на вратата си.

използване на System. Collections;

използване на System. Collections. Generic; използване на UnityEngine; публичен клас LamboDoorBehavior: MonoBehaviour {private float currAngle = 0; private float желанAngle = 0; // Актуализацията се извиква веднъж на кадър void Update () {currAngle = Mathf. LerpAngle (currAngle, desireAngle, Time.deltaTime * 3f); transform.localEulerAngles = нов Vector3 (currAngle, 0, 0); } обществена пустота OpenDoors () {желанна угол = 60f; } public void CloseDoors () {желан угол = 0; } void OnTriggerEnter (Collider col) {if (col. CompareTag ("MainCamera")) {OpenDoors (); }} void OnTriggerExit (Collider col) {if (col. CompareTag ("MainCamera")) {CloseDoors (); }}}

Този скрипт ще накара вратите ви да се отварят бавно, когато ги затворите в AR, като използвате функцията Lerp () в единство, която интерполира между две точки (или в този случай два ъгъла).

Стъпка 7: Възпроизвеждане на видео в AR

Възпроизвеждане на видео в AR
Възпроизвеждане на видео в AR
Възпроизвеждане на видео в AR
Възпроизвеждане на видео в AR

Последното нещо, което трябва да направим, е да пуснем видео в AR.

Щракнете с десния бутон върху всеки игрален обект, който е дете на вашата кола и създайте 3D обект, Quad. Това ще гарантира, че четворката е дете на вашата кола. Поставете и преоразмерете този четворка така, че да се побере в таблото на колата ви и да изглежда така, сякаш трябва да е там. На това ще пуснем видеото.

Добавете компонент на видео плейър към вашия четворка. Променете източника на URL и намерете твърда връзка към. MP4 файл или плъзнете видео файл в папката с активи и след това плъзнете този клип в празния слот. Ако искате да предавате видеоклип от URL, Instragram е чудесен източник. Щракнете с десния бутон върху всяко видео в Instagram в Google Chrome и щракнете върху инспекция. Намерете div, съдържащ видеоклипа, и копирайте връзката от там (имам този метод на снимката по -горе).

Не забравяйте да проверите цикъла, ако искате да играе повече от веднъж. Добавете компонент на аудио източник към този игрален обект и променете изходния източник на аудио източник на видеоплейъра. Плъзнете новосъздадения аудио източник в това гнездо.

Най -накрая свършихме!

Стъпка 8: Поставете приложението на телефона си

Поставете приложението на телефона си!
Поставете приложението на телефона си!

Ако изграждате за Android, можете просто да отидете на файл и да натиснете build и run с включен телефон.

Ако изграждате iPhone или iPad, не забравяйте да изтеглите Xcode от магазина за приложения. Също така се регистрирайте за безплатен акаунт за разработчици на Apple от www.apple.developer.com. Отидете на файл и натиснете build. Отворете файла, създаден от Xcode и включете телефона си. Изберете своя екип за разработка и натиснете бутона за възпроизвеждане.

Може да се наложи да преместите камерата малко наоколо, но я оставете за секунда и докоснете екрана и ще видите колата си да падне от небето на земята! Сега можете да влезете вътре и да гледате видеоклипа си в таблото за управление!

Забавлявайте се и ме уведомете, ако имате въпроси в коментарите!

Препоръчано: