„Unity vs SceneKit“: kokį įrankį turėtumėte naudoti kurdami „ARKit“ programą

Viskas, ko norėčiau, žinojau prieš kurdama savo pirmąją „ARKit“ programą.

Pradėjus kurti „ARKit“, beveik visi turi pirmąjį klausimą, kokius įrankius turėčiau naudoti kurdama savo AR programą? Atrodo, kad dvi dažniausiai naudojamos priemonės yra „Unity“ ir „SceneKit“, bet kuri yra geresnė? Kuris iš jų yra galingesnis, lankstesnis ir lengviau išmokstamas? Kuris iš jų palaiko labiausiai?

Man pačiam teko išspręsti daugumą šių klausimų, kaip ir daugeliui kūrėjų, iki šiol paleidusių AR programas. Taigi maniau, kad būtų naudinga pasinerti į pagrindinius dviejų platformų skirtumus, kad padėtumėte lengviau apsispręsti, kaip investuoti savo laiką.

Jei pradedate AR kūrimą, tai yra keli dalykai, kurių aš norėčiau, kad prieš kurdamas savo pirmąją AR programą, žinočiau apie „Unity“ ir „SceneKit“. Taigi čia eina.

Pirma, trumpa apžvalga:

„Unity“ yra subrendęs 3D žaidimų variklis, glaudžiai susijęs su VR ir AR dėl savo didelio dėmesio 3D turiniui. Pagrindinė vystymosi kalba yra C #. „ARKit“ kūrimas „Unity“ vykdomas naudojant „Unity ARKit“ papildinį, kuris „ARKit SDK“ suvynioja į C # scenarijus, kad būtų galima lengvai pasiekti visas ARKit funkcijas.

„SceneKit“ yra „Apple“ sukurtas 3D žaidimų variklis, skirtas natūraliai „iOS“ kurti, ir yra tiesiogiai integruotas su „Xcode“. Pagrindinės kalbos yra „Swift“ ir „C“.

Ar vienas iš jų objektyviai geresnis?

Palyginus du produktus, labiausiai gąsdinantis atsakymas internete atrodo: „tai priklauso“. Taigi leiskite man pradėti sakydamas, kad daugeliu atvejų pastebėsite, kad „Unity“ yra geresnis AR plėtros sprendimas. Tačiau yra keletas atvejų, kai „SceneKit“ laimi, ir aš stengsiuosi paaiškinti kiekvieno įrankio privalumus ir trūkumus, kad galėtumėte priimti pagrįstą sprendimą.

Pirmiausia pažiūrėkime į du tikėtinus AR programų kūrėjų scenarijus:

  1. Kuriate programą (vartotojas, įmonė ir kt.)
  2. Kuriate žaidimą ar „patirtį“

Kuriate programą

Jei norite integruoti „ARKit“ į esamą „iOS“ programą, daugiau neieškokite. Naudokite „SceneKit“. „SceneKit“ leidžia lengvai integruoti AR vaizdą į savo programą nepakeičiant nieko kito jūsų UX.

Jei esate profesionalus „iOS“ kūrėjas, turintis patirties su „XCode“, „Swift“, „Cocapods“ ir kt., Vis tiek turėtumėte naudoti „SceneKit“. Vengsite naujos platformos mokymosi kreivės ir galėsite gana greitai pasiimti „ARKit SDK“.

Jei kuriate naują vartotojo ar įmonės „iOS“ programą ir jums patinka tai, kaip atrodo „Apple“ UI elementai (pvz., Mygtukai, gestai ir pranešimai), „SceneKit“ yra dar geresnis pasirinkimas. Būdamas „Apple“ gaminiu, „SceneKit“ gražiai integruojasi su „XCode“ ir leidžia gana sklandžiai integruoti 3D scenos vaizdą su visais jų integruotais 2D UI elementais.

Bendra taisyklė yra tokia, kad jei 3D turinys nėra pagrindinis jūsų programos dėmesys ir jums rūpi „iOS UX“ šablonai, eikite į „SceneKit“.

„SceneKit“ leidžia labai lengvai pridėti „Native iOS 2D“ UI šablonus į savo programą

Įspėjimas yra tas, kad jei jums rūpi greitas įvairių platformų kūrimas naudojant „iOS“ ir „Android“ arba jei jūsų programoje yra daug 3D turinio, pavyzdžiui, animacinių modelių, specialiųjų efektų ir fizikos, turėtumėte atsižvelgti į „Unity“. Dėl savo šaknų kaip žaidimo variklio, jis yra labiau pritaikytas kaip kelių platformų 3D kūrimo įrankių rinkinys.

Jūs kuriate žaidimą

Jei kuriate žaidimą ar žavią patirtį, ypač tokią, kurioje yra daug vaizdinio 3D turinio, pavyzdžiui, simbolių animacijos, žaidimų žemėlapiai, specialieji efektai ir fizikos modeliavimas, „Unity“ yra tikrai geresnis pasirinkimas.

Vienybė alsuoja daugybe integruotų metodų, leidžiančių daryti viską, apie ką galėtumėte galvoti. Jei jis nėra įmontuotas, jį greičiausiai galima rasti „Unity Asset“ parduotuvėje. Dėl šių veiksnių „Unity“ sutaupo daug laiko, palyginti su „SceneKit“, kur jūs galite praleisti daug laiko kurdami ir derindami pagrindines funkcijas, o ne kurdami savo žaidimą.

Be to, „Unity“ leidžia greitai susieti su daugybe skirtingų platformų, todėl galite perkelti savo „ARKit“ žaidimą į „Android“ atlikdami tik keletą faktinių AR stebėjimo bibliotekų pakeitimų. (Tai netrukus taip pat keičiasi - „Unity“ kuria kryžminės platformos XR SDK, kuris dar greitesniam prievadui paima žemo lygio AR bibliotekas). Plėtros greitis dažnai yra gana didelis kūrėjų veiksnys, todėl programos perrašymas skirtingoms platformoms gali būti gana didelė kaina.

Sprendimų priėmimo kriterijai

Jei nelabai sutinkate su dviem aukščiau pateiktais scenarijais arba jei nesate tikri, ar kuriate žaidimą, programą, žaidimų programą ar pritaikytą žaidimą, pateikiame bendrą palyginimą, pagrįstą kai kuriais bendrais AR kūrėjų kriterijais. rūpintis apie.

1. Spektaklis

Apskritai, programos ar žaidimo, sukurto naudojant „SceneKit“, failas bus mažesnis ir kai kuriais atvejais gali būti veiksmingesnis. Kai naudojate „Unity“, į savo programą jūs įtraukiate pilną fizikos variklį. Taigi, jei nenaudojate sunkaus 3D skaičiavimo, jums geriau seksis su „SceneKit“.

Tačiau atminkite, kad visi fotoaparato kodai ir kiti „Unity“ įskiepio AR moduliai yra užrašyti tiksle C, taigi efektyvumo požiūriu jie yra labai panašūs. Tai lėtina daugiausia sunkios 3D scenos ir bet kokie projekto projekto neveiksmingumai. Čia yra gera gija šia tema.

Verdiktas: „Vienybė“ ir „SceneKit“ čia yra gana vienodi.

2. 3D formato suderinamumas

Man asmeniškai buvo sunku importuoti 3D modelius ir animacijas į „SceneKit“. Apskritai, įsigydami 3D turinį savo žaidimui ar programai, atminkite, kad „SceneKit“ apsiribos naudodamiesi „Collada“ (.dae) arba „Wavefront“ (.obj) failais. Be to, retkarčiais mačiau, kad kai kurie .obj failai „Scenekit“ netinkamai pateikiami.

„Unity“ daug geriau tvarko bet kokį 3D formatą. Naudodami „Unity“ galite ne tik importuoti .fbx failus (3D modelius, kuriuose yra animacijos), bet ir tiesiogiai įkelti scenas iš 3D projektavimo įrankių, tokių kaip „Blender“.

Verdiktas: +1 čia „Vienybė“.

3. Lengva derinti

„Unity“ yra labai vizualus IDE, turintis nuostabius vaizdinio derinimo įrankius, leidžiančius matyti ir valdyti visą 3D scenos turinį jūsų scenoje vykdymo metu. Nors jums reikia paleisti programą tiesiogiai „iOS“ įrenginyje, kad tinkamai išbandytumėte ir suderintumėte „ARKit“ problemas, galite naudoti tokius įrankius kaip „Unity ARKit Remote“, norėdami prototipuoti programos 3D sąveiką tiesiogiai „Unity“ redaktoriuje.

„SceneKit“, kita vertus, teikia tik konsolės derinimo funkciją „XCode“. Nors kai kurie kūrėjai teikia pirmenybę tai, tai gali trukdyti greitai išbandyti 3D sąveiką jūsų programoje ar žaidime.

Verdiktas: +1 čia „Vienybė“.

„Unity“ nuostabus vaizdinis scenos derintuvas

4. Dokumentų / vadovėlių / pavyzdžių prieinamumas

„Unity“ turi neįtikėtinai didelius šaltinius dokumentų, vadovėlių ir pavyzdžių kodo beveik viskam, ką galite sukurti. Dėl didelės kūrėjų bendruomenės jie taip pat turi daugybę vadovėlių, kuriuos sukūrė kūrėjai.

Žinoma, „iOS“ kūrėjų bendruomenė taip pat yra gana didelė. Nors pats „ARKit“ gali būti naujas, tačiau dėl didelio bendruomenės skaičiaus pavyzdžių, tinklaraščių įrašų, vaizdo įrašų vadovėlių ir internetinių kursų pavyko nemažai, kad jūsų perėjimas prie AR kūrėjo būtų lengvas.

Kalbant apie 3D turinio problemas, tokias kaip 3D geometrija ir matematika, „Unity“ laimi, nes didelė „Unity“ žaidimų kūrėjų bendruomenė užtikrino, kad dauguma jūsų klausimų turės atsakymą kažkur internete.

Jei norite pradėti, čia yra mano mėgstamiausios „Unity“ ir „SceneKit“ vaizdo įrašų mokymo programos.

Vienybė: Sukurkite vaikščiojančią zombių animaciją.
„Scenekit“: sukurkite ir peržiūrėkite paprastus 3D objektus.

Verdiktas: +0,5 Vienybės čia

5. Vystymosi greitis

Daugelis kūrėjų praneša, kad „Vienybės“ mokymosi kreivė yra trumpesnė nei „Scenekit“. Tikriausiai taip yra todėl, kad „Unity“ galite daug lengviau išmokti 3D turinio kūrimo, prieš pradėdami kurti AR.

Žvelgiant iš techninės perspektyvos, AR žaidimas iš tikrųjų yra tik 3D žaidimas su fotoaparato fonu. Padaliję savo mokymosi procesą, viskas tampa daug intuityvesnė.

Kitas didelis veiksnys čia yra įvairių platformų plėtra. Nors negalite tiesiogiai kurti „Unity ARKit“ projekto „Android“, galite bent jau pakartotinai panaudoti 3D turinį ir sąveikas, kurias sukūrėte bet kurioje platformoje. Prie kiekvieno įrenginio reikia prijungti tik naują „Camera Manager“. „Unity“ tai dar labiau palengvina dabar, savo naujuoju XR SDK abstrahuodami specifines aparatinės įrangos savybes, tokias kaip ARKit ir ARCore.

Verdiktas: +1 čia „Vienybė“

Išvada

Apskritai, jei kuriate žaidimą, „Unity“ beveik visada yra geresnis sprendimas.

Kurdami programą turite apsvarstyti, ar vertinate „iOS“ savitąją plėtrą ir „Apple“ vartotojo sąsajos elementus, o ne visos platformos plėtrą. Jei jūsų programoje yra minimalios 3D sąveikos, „SceneKit“ bus geresnis pasirinkimas. Priešingu atveju laikykitės Vienybės.

Kitas patarimas, kurį galiu duoti, yra ne per daug laiko skirti šiam sprendimui. Tiesiog pradėkite nuo vieno. Švaistysite daug mažiau laiko bandydami vieną įrankį ir perjungdami, jei manote, kad jis neveikia pakankamai gerai. Kaip „iOS AR“ kūrėjas, „XCode“ ir „Unity“ ilgainiui bus naudingi įgūdžiams įsigyti.

Apibendrinant, čia yra gera „ARKitCreators“ pavardės citata.

„Tinkama nykščio taisyklė būtų naudoti„ Swift “, jei jūsų programa yra gana paprasta arba jei AR ir 3D sąveika nėra to, ką bandote sukurti, pagrindas. Ir pasinaudokite Vienybe priešingai. “

Kas aš esu?

Aš esu „Placenote“, SDK, suteikiančio mobiliojo ryšio AR programoms galimybę visam laikui užrakinti AR turinį bet kurioje fizinėje vietoje realiajame pasaulyje, generalinis direktorius. Taigi, jei, pavyzdžiui, kuriate tokią programą kaip vidaus navigacija, AR grafiti programa ar net kelių žaidėjų žaidimas, turėtumėte patikrinti „Placenote SDK“.

„Placenote SDK“ yra pavyzdžių kodai, kuriuos gali rasti ir „Unity“, ir „SceneKit“ kūrėjai, todėl nesivaržykite naudotis mūsų programų pavyzdžiais, kad padėtumėte apsispręsti dėl jūsų platformos!

Čia galite įdiegti SDK

Nuorodos

Aš sudėjau šį straipsnį pasitelkdamas šiuos kelis nuostabius „Quora“ ir „Reddit“ siūlus.

  1. Kokie yra papildomos realybės programų kūrimo „Swift vs Unity“ privalumai ir trūkumai?
  2. „Swift vs Unity“
  3. Noriu kurti AR programas, ar pirmiausia turėčiau išmokti ARKit ar „Unity“?
  4. Ar lengviau naudoti „iOS SceneKit“ ar „Unity“ žaidimų variklį kuriant „iOS 11 ARKit“ projektą?