Агуулгын хүснэгт:

Өргөтгөсөн бодит байдалд AR объектуудыг GPS координатад байрлуулах: 8 алхам (зурагтай)
Өргөтгөсөн бодит байдалд AR объектуудыг GPS координатад байрлуулах: 8 алхам (зурагтай)

Видео: Өргөтгөсөн бодит байдалд AR объектуудыг GPS координатад байрлуулах: 8 алхам (зурагтай)

Видео: Өргөтгөсөн бодит байдалд AR объектуудыг GPS координатад байрлуулах: 8 алхам (зурагтай)
Видео: ПОЛНАЯ ИГРА ПОЛНЫЙ ПРОВАЛ 2 | КАМПАНИЯ — Прохождение / PS4 (Все шлемы пилотов) 2024, Арваннэгдүгээр
Anonim
Өргөтгөсөн бодит байдалд AR объектуудыг GPS -ийн координатад байрлуулах
Өргөтгөсөн бодит байдалд AR объектуудыг GPS -ийн координатад байрлуулах

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

Энд ашиглах бүх програм хангамж, төслүүд үнэ төлбөргүй байдаг.

Хэрэв танд байхгүй бол Unity 3D -ийг эндээс татаж аваарай.

unity3d.com/

Алхам 1: Саад бэрхшээл…

Саад бэрхшээл…
Саад бэрхшээл…

Тиймээс энэ нь хөдөлгөөнт GPS болон хөдөлгөөнт луужингийн хязгаарлалтыг ашиглан хийх хамгийн хялбар програм биш юм.

Үнэнийг хэлэхэд объектууд ойролцоогоор 50% -ийг хаана байх ёстойгоо харуулдаг. Тиймээс үр дүн нь тийм ч сайн биш боловч объектуудтай ойртох тусам илүү нарийвчлалтай болдог.

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

Өмнө нь Mapbox -ийг ашиглаж байсан бөгөөд GPS -ийн координатыг Unity дэлхийн координат руу хөрвүүлэх функцтэй хөрвүүлэх анги байдаг гэдгийг би мэднэ. Би зүгээр л GPS -ийн координатыг дамжуулж чадна гэж бодсон бөгөөд тэд миний хүссэн газарт гарч ирнэ. Ажилласангүй.

Объектууд хоорондоо харьцангуй зөв харагддаг боловч хэзээ ч зөв газартаа байгаагүй. Тиймээс би судалгаа хийж, объектуудыг зөв газартаа харуулахын тулд миний Эв нэгдлийн камерыг жинхэнэ хойд зүгтэй уялдуулах шаардлагатай байгааг олж мэдэв.

Асуудал нь таны утасны луужин хэзээ ч бүрэн зөв байдаггүй.

Алхам 2: Тэнэг луужин

Тэнэг луужин
Тэнэг луужин
Тэнэг луужин
Тэнэг луужин

Гол асуудал бол камераас хол объект байрлуулахад, хэрэв таны утасны жинхэнэ хойд талаар төсөөлөл хэдхэн градусаар унтарсан бол алс холын объектууд маш хол харагдах болно.

Би энэ ажлаасаа бараг бууж өгсөн боловч найз маань энэ GitHub төслийн талаар надад хэлсэн.

github.com/mapbox/mapbox-ar-unity

Энэ бол объектуудыг GPS -ийн координатаар бэхэлсэн Mapbox -аас "дэлхийн хэмжээний" АР хийх оролдлого бөгөөд ингэснээр Өргөтгөсөн бодит байдлын туршлага нь танай байшингийн жижиг өрөөнд биш харин холын зайд ажиллах боломжтой болно.

Тэдний төсөл нь AR Position дельта ба GPS байрлалын дельта ашиглан AR камераас хойд зүг рүү чиглэсэн өнцгийг тооцоолоход ашигладаг. Хэрэглэгч програмыг эхлүүлээд нэг шулуунаар алхаж, өөр GPS уншихад нэг GPS унших хэрэгтэй. Дараа нь эдгээр хоёр цэгээр тухайн хүн аль зүгт явж байсныг хэлж чадна (камер нь явж буй зүг рүү чиглэсэн гэж үзвэл). Тэд үүнийг утсан дээрх луужин ашиглахаас илүү нарийвчлалтай болохыг олж мэджээ.

Тэдний шийдэх гэж буй өөр нэг асуудал бол ARkit -тэй хийсэн дрифт юм. Жижигхэн өрөөнд мөрдөх нь зөв боловч гадуур хол зайд алхах үед AR объектууд байх ёстой газраасаа хол зөрөх болно.

Алхам 3: Эцэст нь шийдэл

Эцэст нь Шийдэл!
Эцэст нь Шийдэл!

Энэхүү Mapbox төсөл нь жинхэнэ хойд зүгтэй харьцуулахад найдвартай нүүрний чиглэлийг олж авах арга замыг санал болгосон тул дэлхийн объектуудыг зүгээр л байрлуулах л үлджээ.

Би GPS -ийн тодорхой байршилд мессеж бичиж, дараа нь GameSparks мэдээллийн санд бичихийн тулд энэ жишээг бага зэрэг өргөжүүлэв. Үүнийг би хэрхэн ашиглахыг танд үзүүлэх гэж байна.

Энэ төслийн цорын ганц асуудал бол үүнийг ашиглахаасаа өмнө сайн тохируулах ёстой.

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

Энэ утгаараа UX бол өөр нэг саад тотгор боловч төслийн сайжруулалтаар тэд сайн тэгш байдлыг хангахын тулд шоо дөрвөлжинг хэрэглэгчийн өмнө байрлуулах жишээг өгдөг.

Тиймээс энэ төслийн хязгаарлалтыг мэдэж байгаа болохоор залуус эргэн тойронд тоглож болохын тулд үүнийг хэрхэн ашиглахыг танд хэлье. Эцэст нь та mapbox данс, тоглоомын парк данс үүсгэх шаардлагатай бөгөөд хоёулаа үнэгүй. Би GPS -ийн координатыг хаа нэгтээ хадгалахын тулд тоглоомын самбар ашигладаг байсан тул туршилтын явцад та програмыг байнга дахин эхлүүлж, дахин бүтээх болно.

Түүнчлэн, энэ нь ARkit болон ARcore хоёуланд нь ажиллах ёстой боловч одоогоор надад зөвхөн iPhone байгаа тул миний туршиж үзэх боломжтой зүйл бол энэ байв.

Алхам 4: Аппыг ажиллуулцгаая

Аппыг ажиллуулцгаая!
Аппыг ажиллуулцгаая!

Юуны өмнө энэ төслийг GitHub -аас татаж аваарай:

Файлыг ширээний компьютер дээрээ хадгалаад Unity дээр нээнэ үү.

Файл руу очиж, тохиргоог хийж, платформоо Android эсвэл IOS руу шилжүүлээрэй.

Одоо Mapbox.com руу ороод, хэрэв танд бүртгэл байхгүй бол данс үүсгээрэй.

API түлхүүрээ аваад Unity руу буцаж ороод дээд талд байгаа Mapbox табыг дарж тохируулах дээр дарна уу. API түлхүүрээ тэнд оруулна уу.

Одоо GameSparks.com дээр данс үүсгээд баруун дээд буланд байгаа товчлуур дээр дарж шинэ апп үүсгээрэй.

Хүссэн зүйлээ дуудаж, API түлхүүр болон програмынхаа нууцыг хуулж аваарай. Unity руу буцаж очоод GameSparks табыг дээд талд нь олоорой. Тохируулах дээр дарж, итгэмжлэлээ тэнд оруулна уу.

Алхам 5: GameSparks -ийг тохируулна уу

GameSparks -ийг тохируулах
GameSparks -ийг тохируулах

Одоо апп ажиллахаас өмнө бид мэдээллийн баазаа тохируулах хэрэгтэй.

GameSparks нь noSQL ашигладаг тул бид эхлээд цуглуулга үүсгэж, манай програмын серверээс унших, бичих, устгахад ашигладаг үйл явдлуудыг нэмэх хэрэгтэй.

Эхлээд GameSparks вэбсайт дээр шинэ цуглуулга үүсгээд хүссэн зүйлээ дууд.

Одоо бид 3 үйл явдал үүсгэх хэрэгтэй.

Апп -ийн хийх ёстой хамгийн эхний зүйл бол мэдээллийн бааз руу зурвасын объект бичих явдал юм.

Мессеж нь өргөрөг, уртраг, дараа нь мессежийн тексттэй байна.

Тиймээс тохируулагч руу очиж шинэ үйл явдал нэмнэ үү. "SAVE_GEO_MESSAGE" гэсэн богино кодыг хийнэ үү.

Нэр, тайлбарын хувьд хүссэн зүйлээ оруулаарай.

3 шинж чанарын богино кодыг нэмнэ үү.

"ХОЙР" "ЛОН"

"Текст"

Өгөгдлийн төрөл бүрийг тэмдэгт мөр болгож, анхдагч утгыг 0 болгож тохируулна уу. Нэг бүрийн үндсэн нэгтгэх төрлийг "скриптэд ашиглагдах" болгож тохируул.

Алхам 6: Эцсийн үйл явдлыг нэмнэ үү …

Эцсийн үйл явдлыг нэмэх …
Эцсийн үйл явдлыг нэмэх …

Апп нь мэдээллийн сангаас бүх мессежийг ачаалж, програмыг эхлүүлэх үед Unity -д унших шаардлагатай бөгөөд ингэснээр бид мэдээллийн санд хадгалагдсан 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 серверээр баталгаажуулахын тулд таны төхөөрөмжийн өвөрмөц ID -г ашигладаг тул та одоо Unity рүү буцаж очиж тоглуулахыг дарахад консолоос "төхөөрөмж баталгаажсан …" гарчгийг харах болно.

Одоо файл руу очиж, тохиргоог хийж, бүтээх дээр дарна уу. Хэрэв та хэзээ ч Андройд эсвэл IOS -д зориулсан аппликейшн хийж байгаагүй бол Google эсвэл Apple -ийн аль алинд нь хөгжлийн данс тохируулах шаардлагатай болж магадгүй юм.

Аппликешн таны утсан дээр гарсны дараа та эхлээд ARKit эсвэл ARCore нь газрын онгоцыг илрүүлсэн эсэхийг шалгах хэрэгтэй. Одоо зүүн доод буланд байгаа бүртгэлийн товчийг дарна уу. Хэдэн алхам урагш алхвал цайвар цэнхэр өнгөөр "тооцоолсон уялдаа холбоо" гарч ирнэ. Одоо UI товчлуурууд гарч ирэх ёстой бөгөөд хэрэв таны мэдээллийн санд ямар нэгэн мессеж ачаалагдсан бол тэд дэлхийд байршуулах болно.

Шинэ GPS AR мессежийг тэмдэглэхийн тулд хаа нэгтээ мессеж байхыг хүссэн газар руугаа очоод дэлгэцийн баруун дээд хэсэгт байгаа зурвасын дүрс дээр дарна уу. Хүссэн мессежээ оруулаад пин товчийг дарна уу!

Зөвлөмж болгож буй: