Мазмуну:

GPS объектилерин GPS координаттарына жайгаштыруу: 8 кадам (сүрөттөр менен)
GPS объектилерин GPS координаттарына жайгаштыруу: 8 кадам (сүрөттөр менен)

Video: GPS объектилерин GPS координаттарына жайгаштыруу: 8 кадам (сүрөттөр менен)

Video: GPS объектилерин GPS координаттарына жайгаштыруу: 8 кадам (сүрөттөр менен)
Video: If I Started an International Business from Scratch, I'd Do This | International Trader Blueprint 2024, Декабрь
Anonim
АР объектилерин GPS координаттарына жайгаштыруу кеңейтилген реалдуулукта
АР объектилерин GPS координаттарына жайгаштыруу кеңейтилген реалдуулукта

Бул үйрөтмө Unity3D аркылуу AR объекттерин ARkit жана ARCore менен GPS объектилерин GPS координаттарына жайгаштыруу үчүн мобилдик тиркеме жасоону көздөйт. Мен Mapboxтун жардамы менен жасаган долбоорумду түзүү аркылуу сизге жол көрсөтүп берем, ал бизге белгилүү GPS жерлеринде билдирүүлөрдү белгилөөгө жана аларды GameSparks маалымат базасына жазууга мүмкүндүк берет.

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

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

unity3d.com/

1 -кадам: Тоскоолдуктар…

Тоскоолдуктар…
Тоскоолдуктар…

Ошентип, бул мобилдик GPSтин жана мобилдик компастын учурдагы чектөөлөрү менен жасоо оңой колдонмо эмес.

Чынын айтсам, объектилер болжол менен 50% убакыттын өтүшү менен көрсөтүлөт. Ошентип, натыйжалар анча чоң эмес, бирок алар объектилерге жакындаган сайын такыраак болуп калат.

Кандай болбосун, мен ойлойм, бул учурда GPSке негизделген АРнын эң жакшы жолу pokemon go сыяктуу картаны колдонуу болмокчу жана объектке жакындаганда камера ачылат жана сиздин алдыңызда ошол объектти көрөсүз. Келечекте мен ушул сыяктуу жөнөкөй ишке ашыруу боюнча толук окуу куралын кылгым келет.

Кандай болбосун, мен мурда Mapboxту колдонгом жана аларда GPS координаттарын Unity дүйнөлүк координаттарына айландыруу функциялары бар конверсия классы бар экенин билем. Мен жөн гана кээ бир GPS координаттарын тапшыра алам деп ойлогом, алар мен каалаган жерде пайда болот. Иштеген жок.

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

Көйгөй - телефонуңуздагы компас такыр так эмес.

2 -кадам: Акылсыз компас

Акылсыз компас
Акылсыз компас
Акылсыз компас
Акылсыз компас

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

Мен бул ишканадан дээрлик баш тарттым, бирок бир досум мага GitHub долбоору жөнүндө айтып берди:

github.com/mapbox/mapbox-ar-unity

Бул "дүйнөлүк масштабдагы" АРды жасоо аракети, бул жерде объекттер GPS координаттарына бекитилген, ошондуктан кеңейтилген чындык тажрыйбалары үйүңүздөгү кичинекей бөлмөдө эмес, алыс аралыкта иштей алат.

Алардын долбоорунда AR Position дельталары жана GPS Position дельталары AR камерасынан чыныгы түндүккө карай бурчту эсептөө үчүн колдонулат. Колдонуучу колдонмону баштаганда, негизинен, бир GPS окуусун алып, аларды түз сызык менен басып, башка GPS окуусун алыңыз. Андан кийин бул эки чекит менен сиз ал адамдын кайсы багытта баратканын айта аласыз (камерасы алар басып жаткан тарапты көрсөтүп турат деп ойлошот). Алар бул телефондогу компасты колдонууга караганда так экенин аныкташкан.

Алар чечүүгө аракет кылган башка маселе - бул ARkit менен болгон дрейф. Чакан бөлмөнүн ичинде көз салуу жакшы, бирок сыртыңыздан алыс аралыктарга басканда, AR объекттери керек жерден алыстап кетет.

3 -кадам: Акыры чечим

Акыры Чечим!
Акыры Чечим!

Ошентип, бул Mapbox долбоору чыныгы түндүккө салыштырмалуу ишенимдүү карама -каршы багытты алуунун жолун сунуштады, андыктан дүйнөдө объекттерди жайгаштыруу гана калды.

Мен бул мисалды бир аз жайылтуу менен аяктадым, андыктан GPSтин белгилүү бир жерине текст билдирүүсүн белгилеп, анан бул маалыматты GameSparks маалымат базасына жаза алгам. Мына мен муну кантип колдонууну көрсөтөм.

Бул долбоордун бирден -бир көйгөйү - аны колдонуудан мурун жакшы тегиздөө керек.

Тегиздөө деп айткым келгени, Mapbox позицияны эсептөө үчүн позициялардын дельтасын колдонгондуктан, колдонмону биринчи жолу ачканыңызда, жердеги учак табылганына ынанууңуз керек, андан кийин туура тегиздөө эсептелгенге чейин бир аз убакыт бою түз сызыкта жүрүңүз.

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

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

Ошондой эле, бул ARkit менен да, ARcore менен да иштеши керек, бирок менде азырынча iPhone гана бар, ошондуктан мен сынап көрсөм болот.

4 -кадам: Колдонмонун иштешин камсыздайлы

Келгиле, колдонмону иштетели!
Келгиле, колдонмону иштетели!

Биринчи кезекте бул долбоорду GitHubдан жүктөп алыңыз:

Файлды рабочий столго сактаңыз жана Биримдикте ачыңыз.

Файлга өтүңүз, орнотууларды түзүңүз жана платформаңызды Android же IOSко которуңуз.

Эми Mapbox.com сайтына өтүңүз жана эгерде сизде жок болсо, каттоо эсебин түзүңүз.

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

Эми GameSparks.comдо каттоо эсебин түзүңүз жана жаңы колдонмону түзүү үчүн жогорку оң жактагы баскычты басыңыз.

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

5 -кадам: GameSparksти конфигурациялоо

GameSparksти конфигурациялоо
GameSparksти конфигурациялоо

Эми колдонмо иштей электе, биз маалымат базабызды конфигурациялашыбыз керек.

GameSparks noSQL колдонот, андыктан биз адегенде коллекция түзүп, биздин колдонмо серверден окуу, жазуу жана өчүрүү үчүн колдонгон окуяларды кошушубуз керек.

Алгач GameSparks веб -сайтында жаңы коллекция түзүңүз жана аны каалаган нерсеңиз деп атаңыз.

Эми биз 3 иш -чараны түзүшүбүз керек.

Колдонмого керек болгон биринчи нерсе - маалымат базасына билдирүү объектисин жазуу.

Билдирүүдө кеңдик, узундук, анан билдирүүнүн тексти болот.

Ошентип, конфигураторго барып, жаңы окуя кошуңуз. "SAVE_GEO_MESSAGE" кыска кодун түзүңүз.

Аты жана сүрөттөмөсү үчүн каалаган нерсеңизди салыңыз.

3 атрибут үчүн кыска кодду кошуңуз:

"КЕЧ" "ЛОН"

"ТЕКСТ"

Ар бир маалымат түрүн сапка коюңуз жана демейки маанини 0 деп коюңуз. Ар биринин демейки топтоо түрүн "сценарийде колдонулат" деп жазыңыз.

6 -кадам: Акыркы окуяларды кошуу…

Акыркы окуяларды кошуу…
Акыркы окуяларды кошуу…

Колдонмо ошондой эле маалымат базасынан бардык билдирүүлөрдү жүктөп, колдонмо башталганда Биримдикке окушу керек, ошондо биз маалымат базасында сакталган AR билдирүүлөрүн жайгаштыра алабыз.

Башка иш -чара түзүп, аны "LOAD_MESSAGE" деп атаңыз

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

Башка иш -чара үчүн да ушундай кылыңыз жана аны "REMOVE_MESSAGES" деп атаңыз

Бул атрибуттарга да муктаж эмес.

Эми биз кылышыбыз керек болгон акыркы нерсе, булут кодун же сервер тарабындагы кодду кошуу, ал ар бир иш -чара биздин колдонмодон башталганда чакырылат.

7 -кадам: Булут кодун кошуу

GameSparksта конфигураторго жана булут кодуна өтүңүз.

Биз жаңы эле жасаган ар бир окуяга сценарий кошушубуз керек.

LOAD_MESSAGE окуясында бул кодду кошуңуз жана сактаңыз:

var messageData = Spark.runtimeCollection ("GeoMessage");

var cursor = messageData.find ();

var allMessages = ;

while (cursor.hasNext ()) {

var obj = cursor.next ();

жок кылуу (obj ["_id"]);

allMessages.push (obj);

}

Spark.setScriptData ("all_Messages", allMessages); // бардык маалыматтарды кайтаруу

REMOVE_MESSAGES иш -чарасына бул кодду кошуңуз:

var messageData = Spark.runtimeCollection ("GeoMessage");

messageData.remove ({});

Акыры SAVE_MESSAGES окуясында муну кошуңуз:

var geoMessageList = Spark.runtimeCollection ("GeoMessage");

var messageLat = Spark.getData (). LAT;

var messageLon = Spark.getData (). LON;

var messageText = Spark.getData (). TEXT;

var currentMessage = {

"messLat": messageLat,

"messLon": messageLon,

"messText": messageText,

};

geoMessageList.insert (currentMessage);

8 -кадам: БИЗ КЫЛДЫК

БИЗ АТКАРЫЛДЫ!
БИЗ АТКАРЫЛДЫ!

Бул долбоор GameSparks серверинде аутентификациялоо үчүн түзмөгүңүздүн уникалдуу идентификаторун колдонот, андыктан сиз азыр Unity'ге кайтып келип, ойнотууну чыкылдатыңыз жана консолдо "түзмөк тастыкталды …"

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

Колдонмо телефонуңузда болгондон кийин, биринчи кезекте ARKit же ARCore жердеги учакты аныкташын текшериңиз. Эми төмөнкү сол бурчтагы журнал баскычын чыкылдатыңыз. Бир нече кадам алдыга бассаңыз, ачык көк түстө "эсептелген тегиздөө" пайда болорун көрөсүз. Эми UI баскычтары пайда болушу керек жана эгер кандайдыр бир билдирүүлөр базаңызга жүктөлсө, алар дүйнөгө жайгаштырылат.

Жаңы GPS AR билдирүүсүн белгилөө үчүн, сиз каалаган жерге барыңыз жана экрандын жогорку оң жагындагы билдирүү сүрөтчөсүн басыңыз. Каалаган билдирүүңүздү жазыңыз жана пин кнопкасын басыңыз!

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