Мазмұны:
- 1 -қадам: Жаңа жобаны бастау
- 2 -қадам: Vuforia орнатамыз
- 3 -қадам: жаңа сценарий қосыңыз
- 4 -қадам: Көлікті қосайық
- 5 -қадам: Көлікті аспанға қойыңыз
- 6 -қадам: Ламбо есіктері
- 7 -қадам: AR режимінде бейнені ойнату
- 8 -қадам: Қолданбаны телефонға қойыңыз
Бейне: Толықтырылған шындық Vuforia 7 жер үсті ұшақтарын анықтау: 8 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
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 орнатамыз
Енді бәрін реттеп алайық.
Жоғарғы мәзірдегі 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 режимінде бейне ойнату.
Көлігіңіздің баласы болып табылатын кез келген ойын объектісін тінтуірдің оң жақ түймесімен басып, Quad 3D нысанын жасаңыз. Бұл квадрат сіздің көлігіңіздің баласы екеніне көз жеткізеді. Бұл төртбұрышты орналастырыңыз және өлшемін өзгертіңіз, ол сіздің көлігіңіздің сызығына сәйкес келеді және сол жерде болуы керек сияқты. Бұл біз бейнені ойнататын боламыз.
Төрт бөлікке бейне ойнатқыш компонентін қосыңыз. Көзді URL мекенжайына өзгертіңіз және. MP4 файлына қатты сілтемені табыңыз немесе бейне файлды активтер қалтасына сүйреп апарыңыз, содан кейін бұл клипті бос ұяға сүйреңіз. Егер сіз URL -ден бейнені трансляциялауды қаласаңыз, Инстаграм - бұл керемет дереккөз. Google Chrome браузеріндегі кез келген Instagram бейнесін тінтуірдің оң жақ түймесімен нұқыңыз және тексеру түймесін басыңыз. Бейне бар дивизияны тауып, сілтемені сол жерден көшіріңіз (менде бұл әдіс жоғарыда суреттелген).
Егер сіз бірнеше рет ойнағыңыз келсе, циклды тексеріңіз. Бұл ойын объектісіне дыбыс көзі компонентін қосыңыз және шығыс көзін бейне ойнатқыштағы дыбыс көзіне өзгертіңіз. Жаңадан құрылған дыбыс көзін сол ұяға сүйреңіз.
Ақыры біттік!
8 -қадам: Қолданбаны телефонға қойыңыз
Егер сіз Android -ке арналған құрылғы жасасаңыз, сіз жай ғана файлға өтіп, құрылғыны қосуға және телефонды қосқан кезде іске қосуға болады.
Егер сіз iPhone немесе iPad -ты құрғыңыз келсе, Xcode -ді қолданбалар дүкенінен жүктеп алғаныңызға көз жеткізіңіз. Сондай -ақ, www.apple.developer.com сайтынан алма жасаушының тегін тіркелгісіне тіркеліңіз. Файлға өтіп, «Құру» түймесін басыңыз. Xcode -дан жасалған файлды ашып, телефонды қосыңыз. Даму тобын таңдап, ойнату түймесін басыңыз.
Сізге камераны аздап жылжытуға тура келуі мүмкін, бірақ оған бір секунд беріңіз және экранды түртіңіз, сонда сіз көлігіңіздің аспаннан жерге құлағанын көресіз! Енді сіз үйге кіріп, бейне тақтасында бейне ойнатуды көре аласыз!
Көңілді болыңыз және түсініктемелерде сұрақтарыңыз болса, маған хабарлаңыз!
Ұсынылған:
Толықтырылған шындық телефондары: 7 қадам
Толықтырылған шындық телефондары: арзан, жеңіл, керемет
Толықтырылған шындық веб -шолушысы: 9 қадам
Толықтырылған шындық веб -шолушысы: Бүгін біз Android үшін кеңейтілген шындық веб -браузерін жасайтын боламыз. Бұл идея ExpressVPN маған YouTube -тен демеушілік бейне жасауды сұрағанда басталды. Бұл менің бірінші жұмысым болғандықтан, мен олардың өніміне сәйкес келетін нәрсе жасағым келді. Пр
Arduino Glass - ашық бастапқы кодымен толықтырылған шындық гарнитурасы: 9 қадам (суреттермен)
Arduino Glass - ашық бастапқы коды бар шынайылық гарнитурасы: Сіз шындыққа арналған гарнитураны алуды ойладыңыз ба? Сіз сондай -ақ шындықтың кеңеюіне таң қалдыңыз ба? Мен батылдыққа ие болдым, керісінше
DIY FPV жер үсті станциясы сіз ойлағаннан төмен $$$ үшін: 9 қадам
DIY FPV жер үсті станциясы сіз ойлағаннан төмен $$$: Эй, менің нұсқаулығыма қош келдіңіз. Бұл FPV жер үсті станциясы, мен оны Tiny Whoop -пен пайдалану үшін салдым (менде Tiny Whoop қондырмасында нұсқаулық бар: My Tiny Whoop: aopop рецепті + бірнеше кеңестер мен амалдар). Оның салмағы шамамен 2 фунт, жақсы
Жер үсті қондырғыларын қалай дәнекерлеуге болады: 5 қадам
Жер үсті қондырғыларын қалай дәнекерлеуге болады: Ешқашан шағын интегралды тізбектерді дәнекерлегісі келетін, бірақ «ыстық ауа» қалай немесе қалай болатынын ешқашан білмеген. Қайта өңдеу станциялары тым қымбат па? Менде сіз үшін тамаша шешім бар! Жақсы, мен SMD дәнекерлеуге енді кіре бастадым және әрқашан