Мазмуну:

Өркүндөтүлгөн чындык Vuforia 7 Ground Planet Detection .: 8 Steps
Өркүндөтүлгөн чындык Vuforia 7 Ground Planet Detection .: 8 Steps

Video: Өркүндөтүлгөн чындык Vuforia 7 Ground Planet Detection .: 8 Steps

Video: Өркүндөтүлгөн чындык Vuforia 7 Ground Planet Detection .: 8 Steps
Video: Тозок кандай болот! 2024, Ноябрь
Anonim
Өркүндөтүлгөн чындык Vuforia 7 Ground Plane Detection
Өркүндөтүлгөн чындык Vuforia 7 Ground Plane Detection
Өркүндөтүлгөн чындык Vuforia 7 Ground Plane Detection
Өркүндөтүлгөн чындык Vuforia 7 Ground Plane Detection

Vuforia'нын Unity 3D үчүн кеңейтилген реалдуулук SDKы ARдеги жер учактарын табуу үчүн ARCore жана ARKit колдонот. Бүгүнкү үйрөткүч Android же IOS үчүн AR колдонмосун жасоо үчүн Юниттеги жергиликтүү интеграциясын колдонот. Машинабыз асмандан жерге кулап түшөт жана биз жакындап келгенде анын эшиги автоматтык түрдө ачылат. Биз ошондой эле ARде видео тартууну карап чыгабыз. Коштоо үчүн сизге компьютериңизге Unity 3D орнотулган болушу керек (бекер). Бул көрсөтмөлөр башталгычтар үчүн, ошондуктан биз бардыгын майда -чүйдөсүнө чейин карап чыгабыз!

Vuforia SLAMдин эң жакшы жагы - бул колдогон IOS жана Android түзмөктөрүнүн саны. Толук түзмөктөрдүн тизмесин бул жерден тапса болот:

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

1 -кадам: Жаңы долбоорду баштаңыз

Жаңы долбоорду баштаңыз
Жаңы долбоорду баштаңыз

Эгерде сизде жок болсо, Unity 3Dди бул жерден жүктөп алыңыз:

Кайсы түзмөгүңүзгө жараша Vuforia Augmented Reality жана Android же IOS үчүн колдоону орнотууну тактаңыз.

Биримдикти ачыңыз жана жаңы Биримдик долбоорун баштаңыз, аны каалаган нерсеңиз деп атаңыз.

Биринчиден, биз унутпашыбыз үчүн, орнотуу үчүн орнотулган колдонмону чыгаралы. Ошентип, сахнаны сактап, аны "башкы" деп атаңыз.

Файлга өтүңүз, орнотууларды түзүңүз жана куруу платформаңызды Android же IOSко которуңуз. Оюнчунун жөндөөлөрүнөн XR жөндөөлөрүнө өтүңүз жана Vuforia Augmented Reality Supported текшериңиз.

Эгер сизде Android болсо, анда башка эч нерсе кылуунун кажети жок, бирок IOSто башка жөндөөлөргө өтүп, таңгак идентификаторуңузга бир нерсе киргизүүнү тактаңыз. "Com. YourCompanyName. YourAppName" форматын колдонуңуз.

Камераны колдонуунун сүрөттөмөсүнө каалаган нерсени киргизиңиз жана максаттуу минималдуу куруу версиясын жок дегенде 9.0ге өзгөртүңүз.

Муну жабыңыз, эми калганын орнотуп алалы.

2 -кадам: Келгиле, Vuforia орнотолу

Келгиле, Vuforia орнотобуз
Келгиле, Vuforia орнотобуз

Эми баарын иретке келтирели.

Жогорку менюдагы gameobjectке барып, ARCamera чыкылдатыңыз. Эми сахнадан негизги камераны өчүрүңүз.

ARCamera тандаңыз жана инспектордун оң жагында Vuforia конфигурациясын чыкылдатыңыз. Берилиштер топтомун чыкылдатыңыз жана бардыгынын белгисин алып салыңыз, анткени биз бул жерде эч кандай сүрөт максатын колдонбойбуз.

Түзмөктүн трекерине чыкылдатыңыз жана түзмөктүн позасын көзөмөлдөңүз. Көзөмөлдү ротациядан позицияга өзгөртүү.

Эми оюн объектиси өтмөгүнө кайтып, Vuforia, Ground Plane жана Plane Finder чыкылдатыңыз. Бул жерде биздин учакты табуучу сценарийлер бар.

Бизге эң акыркы нерсе - жердин учак баскычы, андыктан үстүнкү менюдан оюн объектисине кайра барып, Vuforia, Ground Plane баскычтарын басып, Ground Plane Stage тандаңыз. Эми биз буга балалык кылгандын баары ARде көрүнөт.

3 -кадам: Жаңы скрипт кошуу

Жаңы скрипт кошуу
Жаңы скрипт кошуу
Жаңы скрипт кошуу
Жаңы скрипт кошуу

Бул жердеги учакты табуунун демейки жүрүм -туруму, экранда баскан сайын жаңы объектти коюу. Биз каалаган нерсе - экранда баскан сайын объекттин ордун өзгөртүү. Ошентип, активдер папкаңызды оң баскыч менен чыкылдатып, жаңы C# скриптин түзүңүз. Аны "DeployStageOnce" деп атап, бардыгын бул код менен алмаштырыңыз:

системасын колдонуу;

UnityEngine колдонуу; Vuforia колдонуу; коомдук класс DeployStageOnce: MonoBehaviour {public GameObject AnchorStage; жеке PositionalDeviceTracker _deviceTracker; жеке GameObject _previousAnchor; public void Start () {if (AnchorStage == null) {Debug. Log ("AnchorStage көрсөтүлүшү керек"); кайтуу; } AnchorStage. SetActive (false); } public void Ойгонуу () {VuforiaARController. Instance. RegisterVuforiaStartedCallback (OnVuforiaStarted); } public void OnDestroy () {VuforiaARController. Instance. UnregisterVuforiaStartedCallback (OnVuforiaStarted); } жеке боштук OnVuforiaStarted () {_deviceTracker = TrackerManager. Instance. GetTracker (); } public void OnInteractiveHitTest (HitTestResult result) {if (result == null || AnchorStage == null) {Debug. LogWarning ("Хит тест жараксыз же AnchorStage коюлган эмес"); кайтуу; } var anchor = _deviceTracker. CreatePlaneAnchor (Guid. NewGuid (). ToString (), натыйжа); if (anchor! = null) {AnchorStage.transform.parent = anchor.transform; AnchorStage.transform.localPosition = Vector3.zero; AnchorStage.transform.localRotation = Quaternion.identity; AnchorStage. SetActive (чыныгы); } if (_previousAnchor! = null) {Destroy (_previousAnchor); } _previousAnchor = якорь; }}

Бул сценарийдин колдонулганына ынануу үчүн, биз OnInteractiveHitTest () функциясын чакырышыбыз керек, андыктан Биримдикке кайтып келип, учак тапкыч оюн объектисин басыңыз. Режимди Автоматтыктан Интерактивдүүгө алмаштырыңыз. Биз түзгөн сценарийди учак табуучу оюн объектисине сүйрөңүз. ContentPositioningBehavior скриптин алып салыңыз. Сиз DeployStageOnce скриптинде оюн объектисинин ордун көрөсүз, учак тапкычты ошол жерге сүйрөп барасыз жана бул скриптти таап, тизменин башынан OnInteractiveHitTest функциясын тандаңыз. Эми колдонуучу экранда чыкылдаткан сайын биздин функция чакырылат!

4 -кадам: Келгиле, машинаны кошолу

Келгиле Машинаны кошобуз
Келгиле Машинаны кошобуз

Бул бекер унаа 3D моделин бул жерден түшүрүп алыңыз (.obj версиясын алууну тактаңыз):

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

Ошондой эле, бул үндү жүктөп алыңыз, анткени биз унаа жерге тийгенде ойнойбуз:

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

Ошол файлдардын экөөнү тең ачып, активдер папкасына сүйрөңүз.

Унааны чыкылдатып, оң жакты караңыз, өйдө жагындагы ачылуучу менюдан Тышкы материалдарды колдонуу үчүн Камтылган материалдарды колдонууну (Мурас) өзгөртүңүз. Эми биз машинедеги бардык материалдардын түсүн өзгөртө алабыз.

Машинаны бала кылып, өзүңүздүн учак этапка сүйрөңүз. X, y жана z боюнча.035 шкаласын өзгөртүү.

Эми машиналардын балдардын оюн объектилеринин ар бирин аралап, алардын материалдарын каалаган түскө өзгөртүңүз.

Унаанын түпкү оюн объектисине катуу дене компонентин кошуңуз, ошондой эле кутучанын коллайдерин кошуңуз, масштабды ал бүт машинаны камтыйт. Жер кутусунун стадиясына кутуча коллайдерин кошуп, масштабын жерге тегиздик баскычына караганда бир нече эсе кенен кылыңыз. Ошентип, биз машинаны асмандан түшүрө алабыз жана ал 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 += new Vector3 (0, 10, 0); transform.eulerAngles += жаңы Vector3 (5, 20, 5); soundPlayed = жалган; } IEnumerator DelayPlaySound () {кайтарымы жаңы WaitForSeconds (.2f) кайтарат; GetComponent (). Play (); }}

MoveCar функциясын жогорудагы сүрөттөгүдөй OnInteractiveHitTest окуясына кошуңуз. Эми ал колдонуучу экранда чыкылдатканда чакырылат.

6 -кадам: Lambo Doors

Lambo Doors
Lambo Doors

Ошентип, эгер сиз унаа оюнунун объектисин кеңейтсеңиз жана эшиктерди тапсаңыз, анда эки эшик тең бир эле сетка экенин байкайсыз. Эгерде биз каалгаларды ачкысы келсе, биздин жалгыз вариант тигинен ачылуучу Lambo эшиктери болот. Бул ишти жасоо үчүн, адегенде алардын бурулуш пунктун өзгөртүүбүз керек.

Машинанын баласы болгон бош оюн объектисин жасаңыз. Эшиктерди сүйрөп кирип, аларды бул жаңы оюн объектисинин баласы кылыңыз. Эшиктин илгичтери менен ата -энелер оюнунун объектисин бурулуш чекитине жылдырыңыз. Эми баланын эшиктерин ордуна коюңуз. Эми ата -эненин эшигин айлантканда, бурулуш пункту туура жерде.

Биз сиз машинага жакындаганда эшиктерди ачуучу сценарий даярдайбыз, бирок муну жасоодон мурун окуяны "козгоочу" жол керек. Эшиктин ата -энелер оюнунун объектисине кутуча коллайдерин кошуп, масштабды белгилеңиз, ал машинанын үстүнөн эки жакка бир аз өтөт. "IsTrigger" текшериңиз. Эми негизги камерага кутуча коллайдерин кошуп, аны туура таразалаңыз. Ошондой эле "isTrigger" текшериңиз. Камераңызга Катуу Дене компонентин кошуп, "useGravity" белгисин алып салыңыз. Камераңыз тандалганда, анын тегин инспектордун үстүндөгү "MainCamera" кылып өзгөртүңүз.

"LamboDoorBehavior" деп аталган жаңы скриптти кошуңуз жана төмөндөгү кодду кошуңуз. Скриптти эшигиңиздин ата -энесине сүйрөңүз.

System. Collections колдонуу;

System. Collections. Generic колдонуу; UnityEngine колдонуу; коомдук класс LamboDoorBehavior: MonoBehaviour {private float CurrAngle = 0; жеке калкып кетүү каалаганAngle = 0; // Жаңыртуу кадрга бир жолу чакырылат void Update () {CurrAngle = Mathf. LerpAngle (CurrAngle, хүссэнAngle, Time.deltaTime * 3f); transform.localEulerAngles = жаңы Vector3 (CurrAngle, 0, 0); } public void OpenDoors () {хүссэнAngle = 60f; } public void CloseDoors () {хүссэнAngle = 0; } void OnTriggerEnter (Collider col) {if (col. CompareTag ("MainCamera")) {OpenDoors (); }} void OnTriggerExit (Collider col) {if (col. CompareTag ("MainCamera")) {CloseDoors (); }}}

Бул скрипт эки чекиттин (же бул учурда эки бурчтун) ортосундагы интерполяциялык биримдикте Lerp () функциясын колдонуу менен, аларды ARге жакындатканда эшиктериңиздин жай ачылышына алып келет.

7 -кадам: Видеону AR режиминде ойнотуу

AR режиминде видео ойнотулууда
AR режиминде видео ойнотулууда
AR режиминде видео ойнотулууда
AR режиминде видео ойнотулууда

Акыркы нерсе - ARде видео ойнотуу.

Унааңыздын баласы болгон оюн объектисин оң баскыч менен чыкылдатып, 3D объектисин түзүңүз. Бул quad сиздин машинаңыздын баласы экенине ынандырат. Бул төрт бурчтукту жайгаштырыңыз жана өлчөмүн өзгөртүңүз, бул сиздин машинаңыздын тилкесине туура келет жана ал жерде болушу керек окшойт. Бул биз видеону ойното турган нерсе.

Төрткө видео ойноткучтун компонентин кошуңуз. Булагын URLге өзгөртүп,. MP4 файлына катуу шилтемени табыңыз же видео файлды активдер папкасына сүйрөңүз, анан ошол клипти бош уячага сүйрөңүз. Эгерде сиз URLден видеону агылтууну кааласаңыз, Инстаграм сонун булак. Google Chrome'догу каалаган Инстаграм видеосун оң баскыч менен чыкылдатыңыз жана текшерүүнү басыңыз. Видеону камтыган дивди таап, шилтемени ошол жерден көчүрүңүз (менде жогоруда сүрөттөлгөн бул ыкма бар).

Эгер аны бир нече жолу ойнотууну кааласаңыз, циклди текшериңиз. Бул оюн объектисине аудио булагы компонентин кошуңуз жана видео булагы аудио булагына чыгаруу булагын өзгөртүңүз. Жаңы түзүлгөн аудио булагын ошол уячага сүйрөңүз.

Акыры бүттүк!

8 -кадам: Колдонмону телефонуңузга коюңуз

Телефонуңузга тиркемени коюңуз!
Телефонуңузга тиркемени коюңуз!

Эгерде сиз Android үчүн куруп жатсаңыз, анда жөн эле файлга өтүп, телефонуңузду туташтырып куруп, иштете аласыз.

Эгер сиз iPhone же iPad түзүп жатсаңыз, Xcode'ду колдонмо дүкөнүнөн жүктөп алыңыз. Ошондой эле, www.apple.developer.com сайтынан бекер алма иштеп чыгуучунун эсебине катталыңыз. Файлга өтүңүз жана курууну басыңыз. Xcodeдон түзүлгөн файлды ачып, телефонуңузду сайыңыз. Өнүктүрүү тобуңузду тандап, ойнотуу баскычын басыңыз.

Камераны бир аз жылдырышыңыз керек болушу мүмкүн, бирок ага бир секунд берип, экранды таптаңыз, ошондо сиз машинаңыздын асмандан жерге кулап түшкөнүн көрөсүз! Эми сиз ичине кирип, панелиңизде видеоңуздун ойноосун көрө аласыз!

Көңүл ачыңыз жана комментарийлерде суроолоруңуз болсо мага кабарлаңыз!

Сунушталууда: