Мазмұны:

Толықтырылған шындық Vuforia 7 жер үсті ұшақтарын анықтау: 8 қадам
Толықтырылған шындық Vuforia 7 жер үсті ұшақтарын анықтау: 8 қадам

Бейне: Толықтырылған шындық Vuforia 7 жер үсті ұшақтарын анықтау: 8 қадам

Бейне: Толықтырылған шындық Vuforia 7 жер үсті ұшақтарын анықтау: 8 қадам
Бейне: Робототехника үшін Толықтырылған Шындық: Шолу 2024, Шілде
Anonim
Қосымша нақтылық Vuforia 7 жер үсті ұшағын анықтау
Қосымша нақтылық Vuforia 7 жер үсті ұшағын анықтау
Қосымша нақтылық Vuforia 7 жер үсті ұшағын анықтау
Қосымша нақтылық Vuforia 7 жер үсті ұшағын анықтау

Unity 3D үшін Vuforia кеңейтілген шындық SDK AR -де жердегі ұшақтарды анықтау үшін ARCore мен ARKit пайдаланады. Бүгінгі оқу құралы Android немесе IOS үшін AR қосымшасын жасау үшін Unity -дегі жергілікті интеграцияны қолданады. Бізде аспаннан жерге құлаған машина болады, және біз жақындағанда есіктер автоматты түрде ашылады. Біз сондай -ақ AR -де бейне түсіруге кірісеміз. Әрі қарай жүру үшін сізге компьютерде Unity 3D орнатылуы қажет (бұл тегін). Бұл нұсқаулар жаңадан бастаушыларға арналған, сондықтан біз бәрін егжей -тегжейлі қарастырамыз!

Vuforia SLAM -ның ең жақсы жағы - бұл IOS пен Android құрылғыларының саны. Құрылғылардың толық тізімін мына жерден табуға болады:

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

1 -қадам: Жаңа жобаны бастау

Жаңа жобаны бастаңыз
Жаңа жобаны бастаңыз

Егер сізде әлі жоқ болса, Unity 3D -ні осы жерден жүктеп алыңыз:

Қандай құрылғыға байланысты Vuforia Augmented Reality және Android немесе IOS қолдауын орнатқаныңызға көз жеткізіңіз.

Unity ашыңыз және Unity жаңа жобасын бастаңыз, оны қалағаныңызша шақырыңыз.

Алдымен біз ұмытып кетпеу үшін орнатылатын бағдарламаны шығарамыз. Сонымен, сахнаны сақтап, оны «негізгі» деп атаңыз.

Файлға өтіңіз, параметрлерді құрыңыз және құрастыру платформасын 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 (жалған); } public void Awake () {VuforiaARController. Instance. RegisterVuforiaStartedCallback (OnVuforiaStarted); } public void OnDestroy () {VuforiaARController. Instance. UnregisterVuforiaStartedCallback (OnVuforiaStarted); } жеке жарамсыздық 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) {Destroy (_previousAnchor); } _previousAnchor = якорь; }}

Бұл сценарийдің қолданылғанына көз жеткізу үшін бізге OnInteractiveHitTest () функциясын шақыру керек, сондықтан Unity -ге оралып, ұшақ іздеу ойынының объектісін басыңыз. Режимді Автоматтыдан Интерактивтіге өзгертіңіз. Біз жасаған сценарийді ұшақ іздеу ойын объектісіне сүйреңіз. ContentPositioningBehavior сценарийін жойыңыз. Сіз DeployStageOnce сценарийінде ойын объектісінің орнын көресіз, ұшақ іздегішті сол жерге сүйреп апарыңыз және осы сценарийді табыңыз, тізімнен OnInteractiveHitTest функциясын таңдаңыз. Енді біздің функция пайдаланушы экранды басқан сайын шақырылады!

4 -қадам: Көлікті қосайық

Көлікті қосайық
Көлікті қосайық

Көліктің 3D тегін моделін мына жерден жүктеп алыңыз (.obj нұсқасын алғаныңызға көз жеткізіңіз):

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

Сонымен қатар, бұл дыбысты жүктеп алыңыз, өйткені біз көлік жерге тиген кезде оны ойнаймыз:

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

Осы файлдардың екеуін де ашыңыз және оларды активтер қалтасына апарыңыз.

Көлікті нұқыңыз және оң жаққа қараңыз, жоғарғы жағындағы ашылмалы мәзірден Ендірілген материалдарды сыртқы материалдарды пайдалану (Legacy) параметрін өзгертіңіз. Енді біз машинадағы барлық материалдардың түсін өзгерте аламыз.

Автокөлікті балаға айналдыру үшін оны ұшақ сатысына сүйреңіз. 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 -қадам: Ламбо есіктері

Ламбо есіктері
Ламбо есіктері

Егер сіз автокөлік ойынының объектісін кеңейтіп, есіктерді тапсаңыз, сіз екі есіктің де бір тор екенін байқайсыз. Егер біз есіктерді ашқымыз келсе, біздің жалғыз нұсқа - тігінен ашылатын ламбо есіктері. Бұл жұмысты орындау үшін алдымен олардың айналу нүктесін өзгерту керек.

Көліктің баласы болатын бос ойын объектісін жасаңыз. Есіктерді сүйреп апарыңыз және оларды осы жаңа ойын объектісінің баласы етіңіз. Ата -аналық ойын объектісін айналмалы нүкте болатын жерге жылжытыңыз. Енді баланың есіктерін орнына қойыңыз. Енді біз ата -аналық есіктерді айналдырсақ, бұрылыс нүктесі дұрыс жерде болады.

Біз сіз көлікке жақындағанда есікті ашатын сценарий жасаймыз, бірақ мұны жасамас бұрын бізге оқиғаны «іске қосу» әдісі қажет. Есік ата -аналық ойын объектісіне қорапты коллайдер қосыңыз және оны көліктің үстінен екі бағытта сәл өтетін етіп масштабтаңыз. «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 режимінде бейне ойнату.

Көлігіңіздің баласы болып табылатын кез келген ойын объектісін тінтуірдің оң жақ түймесімен басып, Quad 3D нысанын жасаңыз. Бұл квадрат сіздің көлігіңіздің баласы екеніне көз жеткізеді. Бұл төртбұрышты орналастырыңыз және өлшемін өзгертіңіз, ол сіздің көлігіңіздің сызығына сәйкес келеді және сол жерде болуы керек сияқты. Бұл біз бейнені ойнататын боламыз.

Төрт бөлікке бейне ойнатқыш компонентін қосыңыз. Көзді URL мекенжайына өзгертіңіз және. MP4 файлына қатты сілтемені табыңыз немесе бейне файлды активтер қалтасына сүйреп апарыңыз, содан кейін бұл клипті бос ұяға сүйреңіз. Егер сіз URL -ден бейнені трансляциялауды қаласаңыз, Инстаграм - бұл керемет дереккөз. Google Chrome браузеріндегі кез келген Instagram бейнесін тінтуірдің оң жақ түймесімен нұқыңыз және тексеру түймесін басыңыз. Бейне бар дивизияны тауып, сілтемені сол жерден көшіріңіз (менде бұл әдіс жоғарыда суреттелген).

Егер сіз бірнеше рет ойнағыңыз келсе, циклды тексеріңіз. Бұл ойын объектісіне дыбыс көзі компонентін қосыңыз және шығыс көзін бейне ойнатқыштағы дыбыс көзіне өзгертіңіз. Жаңадан құрылған дыбыс көзін сол ұяға сүйреңіз.

Ақыры біттік!

8 -қадам: Қолданбаны телефонға қойыңыз

Қолданбаны телефонға қойыңыз!
Қолданбаны телефонға қойыңыз!

Егер сіз Android -ке арналған құрылғы жасасаңыз, сіз жай ғана файлға өтіп, құрылғыны қосуға және телефонды қосқан кезде іске қосуға болады.

Егер сіз iPhone немесе iPad -ты құрғыңыз келсе, Xcode -ді қолданбалар дүкенінен жүктеп алғаныңызға көз жеткізіңіз. Сондай -ақ, www.apple.developer.com сайтынан алма жасаушының тегін тіркелгісіне тіркеліңіз. Файлға өтіп, «Құру» түймесін басыңыз. Xcode -дан жасалған файлды ашып, телефонды қосыңыз. Даму тобын таңдап, ойнату түймесін басыңыз.

Сізге камераны аздап жылжытуға тура келуі мүмкін, бірақ оған бір секунд беріңіз және экранды түртіңіз, сонда сіз көлігіңіздің аспаннан жерге құлағанын көресіз! Енді сіз үйге кіріп, бейне тақтасында бейне ойнатуды көре аласыз!

Көңілді болыңыз және түсініктемелерде сұрақтарыңыз болса, маған хабарлаңыз!

Ұсынылған: