Android-д зориулсан 3D тоглоом бүтээх. Android дээр тоглоом бүтээх. Тоглоомын дизайнер гэж юу вэ

Android үйлдлийн системтэй төхөөрөмжүүдэд зориулсан тоглоом хөгжүүлэхэд iOS-д зориулсан хөгжүүлэлттэй төстэй арга барил шаардлагатай. Нөгөөтэйгүүр, Android төхөөрөмжүүдийн техник хангамж нь тодорхой стандартад нийцдэггүй бөгөөд энэ нь iOS-тэй ажиллахад байхгүй асуудлуудыг шийдвэрлэх шаардлагатай болгодог. Unity-ийн Android болон iOS хувилбаруудын хооронд бас ялгаа бий.

Android хөгжүүлэлтийн орчинг бэлтгэх

Та төхөөрөмж дээрээ тоглоомоо туршиж үзэхээсээ өмнө хөгжүүлэлтийн орчноо бэлтгэх хэрэгтэй. Ялангуяа, хүссэн платформын Android SDK-г татаж аваад суулгаж, төхөөрөмжөө системд нэмнэ үү (энэ процесс нь Windows болон Mac-д өөр байдаг). Үүнийг Android Developers вэбсайт дээр дэлгэрэнгүй бичсэн байдаг Нэмэлт мэдээлэлтаны төхөөрөмжийн үйлдвэрлэгчээс өгсөн байж болно. Энэ нь нэлээд төвөгтэй үйл явц тул бид танд хөгжилд шаардлагатай бүх зүйлийг бэлтгэхэд туслах жижиг заавар бэлтгэсэн. Хэрэв танд нэмэлт мэдээлэл хэрэгтэй бол Android хөгжүүлэгчийн порталаас авах боломжтой.

Android функцуудад хандах

Unity нь Android оролт болон тохиргоонд хандах API-г өгдөг. Боломжтой ангиудыг Android Ассемблейд зориулсан код хуудсанд баримтжуулсан болно.

C, C++ эсвэл Java кодыг скрипттэй холбох

Unity нь C/C++ хэл дээр бичигдсэн функцуудыг скриптүүдээс шууд дуудах боломжийг олгодог (Java функцийг шууд бусаар дуудаж болно). Unity-ийн төрөлх кодоос функцүүдэд хэрхэн хандах талаар мэдэхийн тулд Android залгаас бүтээх хуудас руу зочилно уу.

Бөглөрөл таслах (үл үзэгдэх геометрийг таслах)

Unity нь мобайл платформыг оновчтой болгоход маш их хэрэгтэй байдаг түгжрэлийг арилгахад дэмжлэг үзүүлдэг. Нэмэлт мэдээлэл Occlusion culling хуудаснаас олж болно.

Эхлэх дэлгэцийг тохируулах

Тоглоом эхлэхэд гарч ирэх дэлгэцийг өөрчлөх боломжтой - нэмэлт мэдээллийг энэ хуудаснаас үзнэ үү.

Алдааг олж засварлах, алдаа мэдээлэх

Таны програм эвдэрсэн эсвэл зөв ажиллахгүй байгаа олон шалтгаан бий. Android-д зориулсан асуудлуудыг шийдвэрлэх бидний гарын авлага нь алдааны шалтгааныг хамгийн богино хугацаанд шийдвэрлэхэд тусална. Хэрэв та гарын авлагыг уншсаны дараа асуудал нь Unity-д байгаа гэж үзвэл алдааны тайланг гаргах хэрэгтэй. Зааврыг энэ хуудаснаас харна уу.

Android-д зориулсан Unity нь ширээний хувилбараас юугаараа ялгаатай вэ

Хүчтэй бичих чадвартай JavaScript

Unity-ийн Android хувилбарын гүйцэтгэлийг сайжруулахын тулд JavaScript дээр динамик бичихийг үргэлж идэвхгүй болгодог (скрипт бүрт #pragma strict автоматаар хэрэгждэг шиг). Хэрэв та хуучин платформоос төслөө Android руу шилжүүлж байгаа бол үүнийг санах нь чухал бөгөөд хэрэв та эмхэтгэлд алдаа гарвал юуны түрүүнд бичихдээ асуудлыг хайх хэрэгтэй. Ийм алдааг эхлүүлэх явцад бүх хувьсагчийн төрлийг тодорхой зааж өгсөн эсвэл дамжуулсан эсэхийг шалгах замаар шийдвэрлэхэд хялбар байдаг.

Unity Android нь DXT/PVRTC/ATC текстурийг дэмждэг боловч хэрэв эдгээр шахалтын аргууд нь тухайн төхөөрөмж дээр дэмжигдээгүй тохиолдолд Unity нь ажиллах хугацаандаа бүтэцүүдийг RGB(A) формат руу задлах болно. Энэ нь GPU-ийн гүйцэтгэлд ноцтой нөлөөлж болзошгүй тул ETC форматыг ашиглахыг зөвлөж байна. Энэ нь Андройдын дефакто стандарт бөгөөд орчин үеийн бүх төхөөрөмж дэмжигдэх ёстой. Нөгөөтэйгүүр, ETC нь альфа сувгийг дэмждэггүй бөгөөд заримдаа альфа суваг шаардлагатай үед чанар, хэмжээ, үзүүлэх хурдны хувьд 16 битийн RGBA бүтэц нь хамгийн сайн сонголт байх болно.

Unity 3D нь өндөр чанартай материал бүтээх ажилд мэргэжлийн түвшинд ханддаг хүмүүст зайлшгүй шаардлагатай хэрэгсэл байх болно. Энэхүү програм нь бэлэн загвар, скрипт, бүтэцтэй бөгөөд үүнийг өөрийн контент - зураг, дуу, видеогоор нэмж болно.

Unity 3D-д бүтээгдсэн бэлэн бүтээгдэхүүнүүд нь бараг бүх алдартай платформуудтай нийцдэг гар утас SMART зурагтаар төгсдөг.

Хөтөлбөрийн онцлогууд:

  • сургалтын хөдөлгүүрийн нэгдэл;
  • уян хатан олон үйлдэлт засварлагч;
  • эмхэтгэлийн өндөр хурд;
  • сурахад хялбар интерфэйс;
  • олон тооны платформтой нийцтэй байх.

Үйл ажиллагааны зарчим

Хөтөлбөрийг ашиглахын тулд Unity Hub платформыг татаж авах шаардлагатай бөгөөд түүгээр дамжуулан та хувийн үнэгүй хувилбарын боломжуудыг туршиж үзэх боломжтой. Энэ нь жилд 100 мянган доллар хүртэл мөнгө олох боломжтой.

Үнэгүй хувилбараас гадна та өөр хоёр дэвшилтэт хувилбарыг захиалж болно:

Unity Plus (сар бүр ~25 доллар) - Хэрэглэгчийн Амжилтын Зөвлөх үйлчилгээнд хязгаарлагдмал хандах боломжийг олгодог, хэрэглэгчийн төхөөрөмж дээрх алдаа дутагдлын талаарх мэдээллийг цуглуулж, санал хүсэлтийг хянадаг.

Unity Pro (сард ~ $125) нь захиалгын дээд сонголт юм. Мэргэжлийн хөгжүүлэгчдээс дэмжлэг үзүүлж, хөтөлбөрийг бүтээгчдийн дэмжлэгийг нэн тэргүүнд авах боломжийг олгодог, гүйцэтгэлийг хянах, статистик цуглуулах сайжруулсан чадварыг багтаасан болно.

Бүгдийг барьж байна тоглоомын үйлдлүүдЭнэ нь загваруудын зан төлөвөөс хамаардаг програмын (PhysX) хангалттай өндөр чанартай физик цөм дээр суурилдаг. Бүтэц, объектыг импортлох чадварын ачаар та бүтээгдэхүүнийг өвөрмөц болгох эсвэл хөгжүүлэгчийн нэгтгэсэн хэрэгслийг ашиглах боломжтой. Энэ бүтээгч дээр үүсгэсэн объект бүр нь та өөрөө удирдах боломжтой скрипт, үйл явдлын тодорхой багц гэдгийг ойлгох нь чухал юм.

Unity 3D-тэй мэргэжлийн түвшинд ажиллахын тулд програмын интерфэйс болон онцлогтой танилцахад багагүй хугацаа хэрэгтэй. Үүнийг хийхийн тулд та интернетээс маш олон видео бичлэг олж авах эсвэл олон томоохон хотуудад зохион байгуулагддаг тусгай курсуудад зочлох боломжтой.

3D графиктай ажиллахын тулд техник хангамжийн видео карттай орчин үеийн компьютертэй байх шаардлагатай гэдгийг тэмдэглэх нь зүйтэй.

Давуу тал:

  • төсөл бий болгох бараг хязгааргүй функц;
  • хөтөч дээр суурилсан 3D графикийг дэмжих;
  • -тай нийцдэг тоглоомын консолуудболон орчин үеийн зурагт;
  • олон тооны дүрслэх хэрэгсэл;
  • үнэгүй хувилбар байдаг.

Сул талууд:

  • чанартай бүтээгдэхүүн бий болгохын тулд тодорхой мэдлэг шаардлагатай;
  • хөтөлбөрийн физик цөмийг маш нарийн тааруулах боломж байхгүй;
  • интерфэйсийн орос хэл рүү орчуулга байхгүй байна.

Та Unity 3D-ийг татан авч, алдартай онлайн тоглоом болох Juggernaut-д өрсөлдөгч бэлтгэхээс гадна (энэ нь манай тоймны баатрын хэрэгслээр зурсан) төдийгүй гоёмсог 3D үзүүлэнгүүдийг бүтээх боломжтой юм. Энэ нь бага зэрэг хугацаа шаардагдах боловч үзэгчдэд гайхалтай нөлөө үзүүлэх нь баталгаатай.

Платформын боломжуудтай танилцахын тулд татаж авахад л хангалттай үнэгүй хувилбар Unity 3D. Хэрэв танд эх кодод хандах шаардлагатай бол төлбөртэй хувилбаруудыг хайж үзээрэй.

Аналогууд:

  • тоглоомын редактор - үнэгүй програмтоглоом үүсгэх;
  • Construct 2 бол энгийн интерфэйстэй алдартай тоглоом бүтээгч юм.
  • Construct 2 бол 2D төслүүдийг бий болгох хүчирхэг програм юм.

Сайн уу! Энэ хөдөлгүүр дээр хэрхэн тоглоом хийхийг сурсны дараа би танд үүнийг зааж өгөхийг хүсч байна. Нэгдүгээрт, бидэнд Unity3d өөрөө, дурын 3D загвар засварлагч, мөрөн дээрээс ургасан шулуун гар хэрэгтэй.

1. Хөтөлбөрийг сурах

Эхлэхийн тулд би Monodevelop суулгахыг зөвлөж байна! Эв нэгдэл гэж юу болохыг ойлгоцгооё. Unity бол олон платформ бүхий тоглоом хөгжүүлэх орчин юм. Гурав дахь хүн бүр дор хаяж нэг удаа үүн дээр тоглоом хийж байсан нь энгийн бөгөөд ойлгомжтой учраас юм.

Дээрх дэлгэцийн агшинг анхаарч үзээрэй:

  • Тайз бол таны бүтээлч хамгаалагдсан хязгаарлагдмал орчин юм.
  • Төсөл - энд бүх хөдөлгөөнт дүрс, загвар, дуу чимээ, бүтэц бий.
  • Дээд талын хэрэгслийн мөрөнд загваруудыг суулгахын тулд Assets-Import New Asset-ийг сонгоно уу. Та мөн Хөрөнгө-Импортын багц-Захиалгат багц боломжтой. Хоёр дахь тохиолдолд багц нь .unity өргөтгөлтэй байх ёстой.
  • Шатлал - үзэгдэл дэх бүх объект. Тэнд та объектын эцэг эхийг бий болгодог. Шатлалын цэсэнд объектыг нөгөө рүү шилжүүлэхэд л хавсаргана. Үр дүн нь нэг төрлийн хавтас байх болно.
  • Хэрэгслийн самбар - хэрэгслүүдийн жагсаалт. Тэнд та 2D, 3D горимыг идэвхжүүлж болно.
  • Хянагч - объектын онцлог, та хөдөлгөөнт дүрс, скрипт болон бусад зүйлийг нэмнэ. Тэнд та багаж хэрэгслийг ашиглаж болно: камерыг хөдөлгөж, объектыг хөдөлгөж, сунгаж, эргүүлж болно.


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

Энэ цэсээр танд асуудал гарахгүй гэж бодож байна.
Дурын объект үүсгэхийн тулд товшино уу.

Ерөнхийдөө бид программыг судалж үзсэн, удахгүй өөрсдийн тоглоомоо бичих боломжтой болно.

2. Энгийн тоглоом бүтээ

Эхлээд Create-Terrain нутаг дэвсгэрийг бий болгоё. Өвс, мод нэмнэ. Баруун талд байгаа газар дээр дарснаар мод, өвс сонгох цонх гарч ирнэ.


Мөн уул, овойлт үүсгэнэ. Дараа нь төсөлд Characher хянагч багцыг ачаална уу. Дараа нь бид Standard assets-Characters controller төслөөр цонхноос хайлт хийж, нэгдүгээр хүний ​​харагдац (капсул) эсвэл гуравдагч этгээдийн (механик) харагдах байдлыг сонгоно.
Хэрэв эхний хүн бол зүгээр л газар дээр нь тавь. Хэрэв гурав дахь нь бол та хөдөлгөөнт дүрсийг татаж авах хэрэгтэй. Би мөн үзэгдлийн гэрэлтүүлгийг Create-Directional Light гэж тохируулахыг зөвлөж байна.


Хөгжим нэмэхийн тулд хүссэн зүйл рүү чирнэ үү.
Тоглоом бэлэн болсон, гэхдээ үүнийг хэрхэн эмхэтгэх вэ?

Үүнийг хийхийн тулд File-Build settings-тоглогчийн тохиргоо руу очно уу (шошго болон нэрийн хувьд). Платформоо сонгоод дууслаа. Үүнийг хийхийн тулд та Android SDK суулгах хэрэгтэй. Гэхдээ энд та SDK бүхий хавтсыг зааж өгөх хэрэгтэй бөгөөд танд зөвхөн SDK биш, харин хүссэн түвшний API хэрэгтэй (жишээлбэл, Android 4.2 нь API 17). Жишээлбэл, тоглоомыг Android 4.0+ дээр суулгахын тулд та эдгээр API-г суулгах хэрэгтэй.

Дараагийн өгүүллээр би Android эсвэл iOS-ийн хяналтыг хэрхэн тохируулах, өөрөө скрипт бичиж сурах талаар танд хэлэх болно.

Хөгжил гар утасны програмуудкомпьютерийн салбарын хамгийн ашигтай мэргэжлүүдийн нэг юм. Андройд тоглоом бүтээхэд хэдэн зуун эсвэл хэдэн мянган долларын зардал гарах бөгөөд ашиг нь нэг сая доллар хүрдэг. Үүнтэй холбоотойгоор олон хүмүүс утсанд зориулсан программыг хөгжүүлэх сонирхолтой байдаг. Энэ нийтлэлд та компьютер ашиглан Android тоглоомыг эхнээс нь хэрхэн бүтээх, аль хөдөлгүүр, дизайнерыг сонгох нь дээр гэдгийг сурах болно.

аль нь ч биш амжилттай тоглолтгүйгээр хийж чадахгүй сайхан графикТиймээс дизайныг бий болгох нь хөгжлийн хамгийн чухал үе шатуудын нэг юм. Android үйлдлийн систем дээрх дизайныг "дизайн баримт бичиг" эсвэл дизайны баримт бичгийг ашиглан хэрэгжүүлдэг. Та нарийвчилсан судалгаатай тоглоом бүтээж эхлэх хэрэгтэй. Файлд дараах зүйлс орно:

  1. Объект загварууд;
  2. Функциональ үзүүлэлтүүд;
  3. Тоглоомын агуулга;
  4. Интерфэйс.

Зүйл бүрийг илүү нарийвчлан авч үзье.

Объект загварууд

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

Функциональ үзүүлэлтүүд

Энэ нь тоглоомын явц, дүр бүрийн гол шинж чанарыг тодорхойлдог. Мөн энд тоглоомын эд зүйлс - зэвсэг, анхны тусламжийн хэрэгсэл, хуяг дуулга гэх мэт шинж чанаруудын тайлбарыг энд оруулав. Үндсэндээ функциональ үзүүлэлтүүд нь дүрмүүд юм тоглоомын үйл явц. Энэ хэсгийг илүү сайн боловсруулах тусам өндөр чанартай Android тоглоом бүтээхэд хялбар байх болно.

Тоглоомын агуулга

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

Интерфэйс

Интерфейс нь хэрэглэгч тоглоомтой хэрхэн харьцах явдал юм. Үүнд та дүрийг удирдах боломжтой товчлуурууд болон цэсийн хэсгүүд орно: жишээлбэл, тоглох, оноо, тохиргоо, шилдэг тоглогчид, тусламж. Хэрэв та Андройд програм үүсгэх туршлагагүй бол өөрийн програмыг үүсгэхээсээ өмнө Play Market-ээс татаж аваад дүн шинжилгээ хийнэ үү алдартай тоглоомуудхамгийн сайн шийдлүүдийг төсөлдөө шилжүүлээрэй.

Тоглоомын хөдөлгүүр

Аливаа тоглоомын цөм нь хөдөлгүүр юм. Энэ бол түүнийг хөгжүүлэх, ажиллуулах боломжийг олгодог програм хангамж юм. Энэ нь дүрслэх хөдөлгүүр, физикийн хөдөлгүүр, дуу чимээ, хөдөлгөөнт дүрс гэх мэт олон төрлийн програмуудыг агуулдаг. Програм бичих үйл явцыг хөнгөвчлөхийн тулд гуравдагч талын хөгжүүлэгчид Android програмуудад зориулж тусгайлан өөрсдийн тоглоомын хөдөлгүүрийг бүтээдэг.

Тэд тус бүр өөр өөр функцуудыг санал болгодог: зарим нь 3D-д зориулагдсан, бусад нь 2D-д зориулагдсан, олон платформыг дэмжих боломжтой. Ийм олон тооны хөдөлгүүрүүд байдаг, гэхдээ хэрэв та эхлэгч бол шаардлагатай бүх функцууд тэнд байх тул хамгийн алдартайг нь сонгох нь дээр.

UDK

Эргэлт 2d/3d

Тоглоомын дизайнер гэж юу вэ?

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

Бүтээгч нь Windows, Android болон iOS-д зориулсан янз бүрийн төрлийн тоглоом бүтээх боломжийг олгодог. Санал болгож байна том сонголтбэлэн байршил, объект, дүр, дууны дизайн, тиймээс анхны Android тоглоомыг бүтээхэд их цаг хугацаа шаардагдахгүй. JS болон C++ програмчлалын хэлийг мэддэг хэрэглэгчид суулгагдсан GML-г ашиглаж болно. Цорын ганц дутагдал нь програмыг орос хэл рүү орчуулаагүй явдал юм.

Дүгнэлт

Андройд тоглоом бүтээх нь амаргүй, гэхдээ маш ашигтай бизнес юм. Хэрэв та тоглоом хөгжүүлж, түүгээрээ мөнгө олохоор шийдсэн бол эхлээд санаагаа боловсруул. Дараа нь "дизайны баримт бичиг" бичиж, боломжоо нэмэгдүүлэх боломжтой тоглоомын хөдөлгүүрийг шийдээрэй. Үүний дараа та програмыг бүтээгч дээр шууд үүсгэж болно.

Видео

Андройд тоглоом бүтээх үйл явцын талаар илүү ихийг мэдэхийг хүсвэл энэ үйл ажиллагаанд зориулсан цуврал видеонуудыг үзээрэй.

Android-д зориулсан энгийн тоглоом эсвэл програмыг хэрхэн хурдан бөгөөд харьцангуй хялбар болгох вэ? Энэ талаар Unity3D хөдөлгүүртэй ажиллах тухай өгүүлэх доорх нийтлэлээс уншина уу.

Та компьютер тоглоом тоглодог уу? Хэрэв тийм бол дараагийн тоглоомын блокбастерийг давах явцад танд заримдаа "Гэхдээ энд би үүнийг буруу хийх байсан!" гэх мэт бодол төрдөг байсан нь гарцаагүй. Та өөрөө хөгжүүлэгч болохыг хүсч байна уу? Тэгвэл та бүхэндээ бяцхан хэрнээ маш зугаатай "адал явдал"-ыг санал болгож байна;)

Хөдөлгүүр гэж юу вэ, яагаад хэрэгтэй вэ?

Өмнө нь анхны компьютер, тоглоом, программыг "хардкор" аргаар бүтээдэг байсан. Өөрөөр хэлбэл, бүрэн хөгжихийн тулд програмчлалын хэлээ сайн мэддэг, энгийн Notepad дээр бараг бүх тоглоомыг (пиксел график, тусгай эффект гэх мэт) бичиж чаддаг нэлээд туршлагатай програмист байх шаардлагатай байв. Ийм хүмүүс цөөхөн байсан бөгөөд тэд маш их үнэлэгддэг (мөн одоо ч үнэлэгддэг) ...

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

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

Гэсэн хэдий ч, та хуучин "хатуу" аргаар бичсэн төслөөс нь харьцуулбал төслийн хэмжээг бага зэрэг нэмэгдүүлэх (заримдаа бүр хэд хэдэн удаа!) Ажлын тав тухыг төлөх ёстой. Энэ шалтгааны улмаас зарим хөгжүүлэгчид хөдөлгүүрт дургүй байдаг эсвэл зөвхөн шаардлагатай бүрэлдэхүүн хэсгүүдийг ашигладаг өөрийн гараар бичихийг хичээдэг ...

Гэхдээ та бид хоёр жинхэнэ програмистуудаас хол байна :) Тиймээс алдартай, хүчирхэг Unity3D хөдөлгүүр дээр суурилсан Android-д зориулсан энгийн тоглоом бүтээцгээе.

Unity3D дээрх төслийг эхлүүлж байна

Тэгэхээр бид яагаад Unity3D-г ашиглахаар шийдсэн бэ?

  • бүрэн хэмжээний 2D болон 3D тоглоом бүтээх чадвар;
  • ямар ч төхөөрөмжид зориулж дууссан тоглоомыг эмхэтгэх чадвар;
  • хөдөлгүүрийг удирдах харьцангуй хялбар байдал;
  • залгаасуудыг холбох замаар үйл ажиллагааны сайн өргөтгөл;
  • тоглоомын эцсийн угсралтын харьцангуй бага хэмжээ (бусад хөдөлгүүртэй харьцуулахад).

Unity3D-ийн гол давуу тал нь мэдээжийн хэрэг түүний олон талт байдал, олон платформ юм. Тоглоом дууссан(Магадгүй бага зэрэг тохируулснаар) Та компьютер (Windows, Linux эсвэл MacOS), Android, PlayStation эсвэл XBox руу порт хийж болно! Үүнийг хийхийн тулд бид зөвхөн хөдөлгүүрийг өөрөө татаж авах хэрэгтэй бөгөөд энэ нь нэг гигабайтаас илүү жинтэй бөгөөд шаардлагатай SDK-г (хэрэв хөгжүүлэхээр төлөвлөж байгаа бол). гар утасны платформуудэсвэл консол). Хэрэв та Windows-д зориулсан тоглоом хийхийг хүсвэл юу ч татаж авах шаардлагагүй, гэхдээ бид Android-д зориулсан тоглоом хийх гэж байгаа тул Android SDK (Програм хангамж хөгжүүлэх багц) татаж авах шаардлагатай болно. Түүнтэй ажиллахад илүү хялбар болгохын тулд SDK-г ZIP архивт татаж авахыг танд зөвлөж байна.

Бүх зүйлийг татаж авсны дараа та өөрт тохирох Android SDK хавтас руу задалж, Unity3D-г өөрөө суулгаж болно. Энэ нь ердийн Windows програмын нэгэн адил суулгасан тул суулгахад ямар ч асуудал гарах ёсгүй. Суулгасны дараа хөдөлгүүр эхлэх бөгөөд бид эхлээд шинэ төсөл үүсгэх шаардлагатай болно.

Үүнийг хийхийн тулд бид бүх мэндчилгээ болон танилцуулах цонхыг хааж, дараа нь "Файл" цэснээс "Шинэ төсөл" -ийг сонгох хэрэгтэй. Нээгдсэн цонхонд (дээрх дэлгэцийн зургийг харна уу) бид төслийн хадгалах хавтсыг (түүний нэр нь төслийн нэртэй ижил байх болно), зарим стандарт функцуудыг импортлохыг (бидэнд хэрэггүй) зааж өгөхийг хүсэх болно. үйл ажиллагааны горим. 2D горимыг сонгоод "Create" товчийг дарна уу. Энэ нь ажлын бэлтгэл хэсгийг дуусгаж байна :)

Хөдөлгүүрийн интерфейс ба төслийн шатлал

Төслийг үүсгэсний дараа үүнийг Unity3D ажлын талбарт ачаалах болно.

Энэхүү ажлын талбар нь өөрөө модульчлагдсан бүтэцтэй бөгөөд хүссэнээрээ хөдөлгөж болох хэд хэдэн цонхноос бүрддэг. Би үүнийг дараах байдлаар тохируулсан (зүүнээс баруун, дээрээс доош):

  1. Шатлалын цонх - үзэгдэл дээрх идэвхтэй болон идэвхгүй объектуудын шаталсан байрлалыг харуулна. Анхдагч байдлаар, жагсаалтад байгаа цорын ганц объект бол үндсэн камер юм.
  2. Үзэгдэл цонх - тоглоомын дүр зураг болон түүн дээрх объектуудыг (камер, дуу чимээ, бүтэц гэх мэт) бүхэлд нь харуулдаг.
  3. Хянагч цонх - шатлал эсвэл тайзан дээр сонгосон объектын бүх шинж чанарыг харуулах ба тэдгээрийг засах, нэмэх, устгах боломжийг олгодог.
  4. Тоглоомын цонх - камерт харагдах тоглоомын ертөнцийг харуулах ба виртуал тоглоомын тестийн цонхны хэмжээг пикселээр сонгох боломжийг танд олгоно. Түүнчлэн, тоглоомын цонхны өргөтгөлийг бүрэн хэмжээгээр идэвхжүүлэх (Тоглоход хамгийн их болгох) болон хөгжүүлэгчийн янз бүрийн мэдээллийг харуулахыг идэвхжүүлэх / идэвхгүй болгох боломжийг танд олгоно.
  5. Төслийн болон Консолын цонхнууд. Төслийн цонх нь төслийн эх сурвалжуудаар шилжихэд ашиглагддаг: байршуулсан зураг, дуу чимээ, загвар гэх мэт. Мөн энэ цонхны тусламжтайгаар (контекст цэс) та янз бүрийн төрөл, скрипт бүхий шинэ хоосон тоглоомын объектуудыг үүсгэж болно. Консол цонх нь алдааны мэдээ (улаан), анхааруулга (шар) болон таны хүссэн янз бүрийн дибаг хийх мэдээллийг (саарал) харуулахад ашиглагддаг.
  6. Assets Label цонх нь хяналтын цонхны доод хэсэг бөгөөд Төслийн цонхонд сонгосон объект эсвэл файлыг урьдчилан харах боломжтой.

Дээрх бүх зүйлээс гадна дээд төв хэсэгт байрлах гурван товчлуур дээр анхаарлаа хандуулаарай. Тэд танд төслөө эхлүүлэх, түр зогсоох боломжийг олгодог (жишээлбэл, шатлалд юу хийж байгааг харахын тулд дибаг хийх үед заримдаа хэрэгтэй байдаг), үүний дагуу үүнийг унтрааж болно.

Бид хөгжмийн зэмсгийн симулятор бүтээх болно: "табла" нэртэй Энэтхэгийн ардын бөмбөр, тиймээс эхлэхийн тулд бид төсөлд дуу, зураг хадгалах хоёр хоосон хавтас үүсгэх болно. Та Project Navigator цонхны контекст цэс рүү залгаж, "Create" жагсаалтаас "Folder" гэсэн зүйлийг сонгосноор шинэ хавтас үүсгэж болно.

Эдгээр фолдеруудыг хэрхэн нэрлэх талаар хэдэн үг хэлэх нь зүйтэй болов уу. Манай симулятор шиг энгийн тоглоомын хувьд зарчмын хувьд хавтаснуудыг өөрийн хүссэнээр "нэрлэж" болно, гэхдээ хөдөлгүүр нь нөөцлөгдсөн тул ашиглахгүй байх нь дээр дор хаяж хоёр нэр байдаг. Эдгээр нь Resources болон Plugins нэр юм. Томоохон төслүүдэд нөөцийн хавтсыг нэн даруй үүсгэж, тоглоомын бүх "сэлбэг хэрэгсэл" (зураг, дуу чимээ, загвар, бүтэц, угсармал) аль хэдийн хадгалагдсан (дэд хавтаснуудаар эрэмблэгдсэн). Нэрийн дагуу Plugins-д гуравдагч талын бүх нэмэлт функцүүд ("хөрөнгө" (хөрөнгө) гэж нэрлэгддэг) хадгалагддаг бөгөөд эдгээрээс Unity3D-ийн өргөтгөлүүдийн дэлгүүр болох Asset Store-д цөөнгүй байдаг.

Файл импортлох, тоглоомын объект үүсгэх

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

Зургууд манай зургийн хавтсанд гарч ирсний дараа тэдгээрийг бага зэрэг өөрчлөх шаардлагатай.

Үнэн хэрэгтээ Unity3D нь анхдагчаар төсөлд нэмсэн бүх зургийг чанараа алдаж шахдаг. Хэрэв бидэнд ийм алдагдал шаардлагагүй бол (ялангуяа HD графиктай тоглоомуудын хувьд үнэн) зураг бүрийг сонгоод, байцаагчийн цонхонд "Формат" параметрийн утгыг "Шахсан" -аас "Үндсэн өнгө" болгон өөрчлөх хэрэгтэй. " таб. Хэрэв та бодит зургийн өргөнөөс бага бол "Хамгийн дээд хэмжээ" параметрийг өөрчлөх шаардлагатай байж магадгүй (анхдагч нь 1024 пиксел). Бүх өөрчлөлтийн дараа тэдгээрийг хэрэгжүүлэхийн тулд "Хэрэглэх" товчийг дарахаа санах хэрэгтэй. Шаардлагатай бол бид бусад бүх зургуудад ижил төстэй үйлдлүүдийг гүйцэтгэдэг.

Одоо зургуудаасаа тоглоомын объектуудыг бүтээцгээе. Үүнийг хийхийн тулд хүссэн дүрсээ шаталсан цонх руу чирэхэд л хангалттай. Зураг эсвэл 3D загварыг автоматаар Тоглоомын объект болгон хувиргаж, камерын урд байрлах координатын эхлэлийн цэг дээр харуулна.

Юуны өмнө бид арын дэвсгэр зургийг нэмсэн бөгөөд үүнийг бүтэн дэлгэцээр харуулах ёстой. Та шаталсан цонхноос камер сонгож, түүний хүрээ хэрхэн харагдахыг харснаар ийм байгаа эсэхийг шалгаж болно. Дээрх дэлгэцийн агшин дээр та манай дэвсгэрийн нэг хэсэг нь камерын харагдацаас гадуур үлдэж байгааг харж болно, тиймээс бид тайзан дээрх хүрээг шууд чирж эсвэл Inspector цонхны "Хэмжээ" параметрийг засах замаар энэ үзвэрийн хэмжээг тохируулах хэрэгтэй. Манай тохиолдолд анхдагч утгыг (5) 5.4 болгон өөрчлөх шаардлагатай болсон.

Ингээд л бид камерт хүрэхээ больсон, харин үлдсэн зургуудыг нэмж, тохируулна. Нэмэх үед зарим нь бидний тоглоомд хэтэрхий том байгааг бид харж байна. Та тэдгээрийг график засварлагч эсвэл хөдөлгүүрийн тусламжтайгаар физик байдлаар багасгаж болно. Сүүлийн аргыг туршиж үзье. Үүнийг хийхийн тулд шаталсан цонхон дээрх зургийг сонгоод, Inspector цонхонд X ба Y координатын "Масштаб" утгыг 1-ээс 0.5 болгон өөрчилнө үү (өөрөөр хэлбэл хагасаар бууруулна). Үүнтэй ижил газар давхцахаас зайлсхийхийн тулд бүх тоглоомын объектуудад (арын дэвсгэрээс бусад) давхаргын тэг бус дарааллыг (давхарга дахь дарааллаар) оноох нь зүйтэй.

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

Объект руу мөргөлдүүлэгч нэмэхийн тулд түүнийг шаталсан цонхноос сонгоод, шалгагч цонхны "Бүрэлдэхүүн хэсэг нэмэх" товчийг дарна уу. Харагдах бүрэлдэхүүн хэсгүүдийн жагсаалтаас бид Физик 2D (ердийн 3D физик нь бидний горимд ажиллахгүй) хайж байгаа бөгөөд бүх сонголтуудаас "Circle Collider 2D" нь бидэнд хамгийн тохиромжтой. Бид түүнийг сонгодог. Манай объектын эргэн тойронд ногоон харвалт гарч ирэх бөгөөд энэ нь мөргөлдүүлэгчийн хил хязгаарыг харуулдаг. "Одоо өдөөгч байна" гэсэн хайрцгийг шалгахад л үлддэг бөгөөд ингэснээр манай коллайдер зөвхөн товшилтыг бүртгэж, эргэн тойрон дахь тоглоомын орон зайтай харилцахаа болино.

Үлдсэн бүх объектын хувьд ижил төстэй үйлдлүүд давтагдана. Зөвхөн бидний дэвсгэр нь бусад объектуудаас ялгаатай байх болно. Үүний тулд бид Box Collider 2D-ийг хэрэглэж, Z байрлалыг тэгээс их болгож, коллайдер болон арын дэвсгэрийг арын дэвсгэр рүү түлхэх болно (энэ нь бидэнд дараа хэрэгтэй болно).

Дуу чимээтэй ажиллах

Unity 3D-ийн дуу чимээтэй бол эхлээд харахад бүх зүйл ойлгомжгүй байдаг. Гэхдээ дарааллаар нь олохыг хичээцгээе :)

Юуны өмнө бид бүх дууг Дууны хавтас руу чирээд бага зэрэг өөрчлөх хэрэгтэй.

Хэрэв таны бүх дууны түвшнийг эхлээд тохируулсан бол 3D дууны боловсруулалтыг унтраахад л хангалттай. 3D тоглоомуудад камер ойртох үед дууны эх үүсвэр рүү ойртохыг дуурайхын тулд ийм боловсруулалт хийх шаардлагатай байдаг. Гэхдээ 2D дээр бидэнд энэ хэрэггүй тул бид дуу бүрийг ээлжлэн сонгоод "3D Sound" гэсэн сонголтыг арилгана.

Одоо бид тоглоомын объектуудад дуу нэмж эхэлж болно. Үүнийг хийхийн тулд бид товчлуур бүрийг ээлжлэн сонгож, "Аудио" хэсгээс шинэ "Аудио эх сурвалж" бүрэлдэхүүнийг нэмэх хэрэгтэй. Бүрэлдэхүүн хэсэг нэмэгдсэн үед харгалзах "Аудио клип" товчийг сонгоод "Сэрүүн дээр тоглуулах" нүдийг сонгоод өгөгдмөлөөр идэвхтэй байгаа (гарч ирэх үед тоглуулна уу):

Бүх дууг зөв товчлуур дээр хавсаргавал хөгжилтэй хэсэг болох скрипт бичих цаг болжээ...

Эхний скрипт

Бидний анхны скриптийг задлан шинжилж эхлэхээсээ өмнө Unity 3D дээрх скриптийн системийн талаар хэдэн үг хэлэх нь зүйтэй болов уу.

Unity нь танд нэг дор гурван хэлээр код бичих боломжийг олгодог: JavaScript (илүү нарийвчлалтай, UnityScript-ийн бага зэрэг өөрчлөгдсөн хувилбар), C # болон Boo. Олон тооны ном, гарын авлагаас та эхлэгчдэд Unity дээр скрипт бичих нь JavaScript-ийг жишээ болгон ашиглахад илүү хялбар байдаг гэсэн санааг олж болно. Гэсэн хэдий ч, энэ хэл нь бусадтай адил тухтай биш бөгөөд ирээдүйд та дахин сурах хэрэгтэй болно. Иймд шууд C # сурсан нь дээр (Boo бас сайн, гэхдээ сургалтын материал багатай).

Одоо кодыг хаана бичих талаар. Unity 3D дээрх анхдагч код засварлагч нь MonoDevelop IDE юм. Энэхүү хөгжүүлэлтийн орчны давуу тал нь стандарт арга, анги, функцийг хурдан оруулах зөвлөмж, синтакс шалгах системтэй байдаг. Гэсэн хэдий ч миний хувьд сул тал нь их хэмжээний нөөц, өндөр нөөцтэй байсан. Аз болоход, Unity тохиргоонд та ямар ч зүйлийг текст засварлагч болгон тохируулах боломжтой тул би өөртөө зориулж хөнгөн, ажиллагаатай Notepad ++-г "өлгөв" (бараг бүх жишээг үүн дээр харуулах болно).

Тэгээд сүүлчийнх. Мэдээжийн хэрэг, хөдөлгүүрийн бүх нарийн ширийнийг эзэмших лавлах материалгүйгээр та хол явахгүй тул Unity 3D сэдвээр хэд хэдэн ухаалаг интернетийн эх сурвалжуудын жагсаалтыг энд оруулав.

  • http://docs.unity3d.com/ru/current/Manual/UnityManualRestructured.html - Орос хэл рүү хэсэгчлэн орчуулсан хөдөлгүүрийн албан ёсны гарын авлага (саяхан гарч ирсэн бөгөөд заримдаа тогтворгүй байдаг);
  • http://docs.unity3d.com/ru/current/ScriptReference/index.html - англи хэл дээрх албан ёсны скриптийн лавлах гарын авлага;
  • http://unity3d.ru/distribution/index.php - Unity 3D хөгжүүлэгчдэд зориулсан Оросын форум;
  • http://habrahabr.ru/post/141362/ - Хабрахабр дээр гурван хэмжээст тоглоом бүтээх цуврал хичээлүүд;
  • http://msdn.microsoft.com/ru-ru/library/618ayhy6.aspx - Орос хэл дээрх Microsoft-ын албан ёсны C# лавлагаа.

За, үүнийг удаан хугацаанд чирэхгүйн тулд би анхны скриптийг нэн даруй бүтээхийг санал болгож байна. Скриптүүдийн доор, хэрэв тэдгээр нь олон байвал тусдаа хавтас хуваарилах нь дээр, гэхдээ бидний тоглоом энгийн байх тул төслийн үндсэн хавтсанд шууд скрипт үүсгэж болно. Үүнийг хийхийн тулд Төслийн цонхон дээрх контекст цэсийг дуудаж, Create жагсаалтыг сонгоод "C# Script" дээр дарна уу. Шинэ скриптээ жишээ нь Дуу чимээ гэж нэрлээд давхар товшилтоор нээцгээе. Шинэчлэх, эхлүүлэх стандарт аргуудыг устгаад, шаардлагатайг нь бүртгүүлсний дараа бид дараах скриптийг авна.

Хэрэв та засварлагчийг дахин тохируулаагүй бол манай скрипт MonoDevelop дээр нээгдэнэ. Түүний бүтцийг харцгаая ...

Үнэн хэрэгтээ C# скрипт бүр гурван үндсэн хэсгээс бүрдэнэ.

  1. Хамгийн дээд талд скриптийг ажиллуулахын тулд холбогдох шаардлагатай сангуудыг жагсаасан байна (жишээлбэл, "Unity.Engine ашиглах" нь хөдөлгүүрийн ажлыг өөрөө холбодог, "System.Collections" -ийг ашиглах нь тоо агуулсан номын сан юм. скриптийг өөр өөр системүүдээр ажиллуулахад зориулагдсан ангиуд).
  2. Анги болон хувьсагчийн мэдэгдэл. C# хэл дээр скрипт гэсэн ойлголт байдаггүй. Үүний оронд хэд хэдэн арга, функцийг багтаасан "анги" гэсэн ойлголтыг ашигладаг. Үнэн хэрэгтээ Unity 3D-ийн хувьд энэ нь бараг ижил зүйл юм :) Санаж байх ёстой гол зүйл бол ангийн нэр нь бидний скриптэд өгсөн нэртэй тохирч байх ёстой. C# хэл дээрх хувьсагчдын онцлог нь тэдгээрийг (скриптэд өөрөө зарласан түр зуурынхаас бусад) бичих ёстой. Практикт энэ нь хувьсагчийн хандалтын түвшин (хувийн эсвэл нийтийн) болон төрлийг (int, float, bool эсвэл бидний скриптэд байгаачлан AudioClip) зааж өгөх ёстой гэсэн үг юм.Үүний зэрэгцээ хувьсагчийн нэр ч байж болно. өгөгдсөн. Эсвэл та нэн даруй түүнд хамаарах утгыг өгч болно.
  3. Арга, функцүүдийн багц. C# хэл дээрх арга нь тодорхой үйлдлийг гүйцэтгэдэг бараг бүх функц юм. Зарчмын хувьд Unity 3D-ийн уран зохиолд тэдгээрийг функц гэж нэрлэдэг, гэхдээ хэрэв бид C # хэлийг тусдаа програмчлалын хэл болгон ярьж байгаа бол эдгээр нь эцсийн эцэст аргууд юм :). Unity дахь цэвэр функцууд нь жишээ нь дуу гаргах, GUI элементүүдийг зурах гэх мэт аргуудын дотор хэрэглэгддэг стандарт функцууд юм.

Одоо скриптийн бүтцийг мэдэж байгаа тул түүний утгыг ойлгоход хялбар болох бөгөөд энэ нь дараахь зүйлийг багтаана ... Sounds ангид (скрипт) бид AudioClip төрлийн 9 хувьсагчийг ашиглахад хялбар болгох үүднээс шаардлагатай нэрээр зарладаг. тэдгээрийг ялгах. Бид тэдгээрийг заавал олон нийтэд нээлттэй болгодог (хувийнх нь засварлагч дээр харагдахгүй бөгөөд бид засварлагчаар дамжуулан тэдгээрийн дууг "өлгөх" шаардлагатай болно). Дараа нь скриптийн үндсэн хэсэгт бид "void OnMouseDown ()" стандарт аргыг ашигладаг. Өмнө нь энэ нь зөвхөн хулганы товшилтыг боловсруулах үүрэгтэй байсан бол шинэ хувилбаруудад үүнийг мэдрэгчтэй дэлгэцэнд хүрэх гэж тайлбарладаг. Үүн дээр бид дарагдсан мөргөлдөөнүүдийн нэрийг шалгах нөхцөлийг бичиж, тэдгээрийн аль нэгийг нь дарахад тохирох дууг гаргана (бид стандарт audio.PlayOneShot(); функцийг ашигладаг).

Код бичихдээ нээх, хаах бүх хаалтуудыг оруулахаас болгоомжил, эс тэгвээс та Консол дээр алдааны мэдээг байнга хүлээн авч, төслөө огт ажиллуулах боломжгүй болно! Мөн арга, функцийн нэрэнд том үсгээр бичихийг анхаарна уу. Эдгээр нь ихэвчлэн алдааны шалтгаан болдог. Мэдээжийн хэрэг, бүх тэмдгийг (цэг, хоёр цэг, хаалт), товчоор хэлбэл хэлний синтаксийг ажиглаарай. Эхэндээ хэцүү байх болно, гэхдээ цаг хугацаа өнгөрөхөд та алдаагүй эхнээс нь бичиж эхлэх болно!

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

Хэрэв скриптийг зөв чирсэн бол бидний чирсэн объектын хажууд байгаа байцаагчийн цонхонд гарч ирэх ёстой. Үүний дагуу бид скриптийг тоглоомонд дуугарах ёстой бүх объект руу чирч, үүнийг ажиллуулахыг оролдож болно. Та манай тоглоомын товчлуур дээр дарахад эцэст нь заасан дуу гарах болно!

GUI-ийн танилцуулга

Зарчмын хувьд тоглоом бидэнтэй аль хэдийн ажиллаж байгаа боловч ямар нэг байдлаар хэтэрхий "халзан" байна. Үүнд ямар нэг зүйл дутуу байна ... Эсвэл ядаж бидний өмнө байгаа нэртэй бичээс! Өөрөөр хэлбэл, та ямар нэгэн ойлгомжтой хэрэглэгчийн интерфэйсийг хэрэгжүүлэх хэрэгтэй.

Үнэндээ GUI нь англи хэлний товчлол юм. "График хэрэглэгчийн интерфэйс", өөрөөр хэлбэл график хэрэглэгчийн интерфэйс. Уламжлал ёсоор энэ нь дараахь бүрэлдэхүүн хэсгүүдийг агуулдаг.

  • товчлуурууд;
  • цонх;
  • текст талбарууд;
  • шалгах хайрцаг ба/эсвэл радио товчлуурууд;
  • гулсагч (гүйлгэх баар) гэх мэт.

Unity 3D-д энэ бүхэн (мөн үүнээс ч илүү зүйл) бүрэн дүүрэн байдаг. Хамгийн гол нь үүнийг хэрхэн ашиглах талаар сурах явдал юм! Unity-ийн GUI хэрхэн энгийн гарчиг хийж болохыг харцгаая.

Үүнийг хийхийн тулд Интерфейс нэртэй шинэ скрипт үүсгээд дараах байдлаар өөрчилнө үү.

Дэлгэцийн агшин дээрх скриптийг сайтар бодож үзээрэй. Энд бид GUIStyle төрлийн зөвхөн нэг нийтийн хувьсагчийг бичдэг бөгөөд энэ нь бидний хувьд шинэ юм. Энэ төрөл нь энэ хэв маягийг хуваарилсан элементүүдийн харагдах байдлыг нүдээр өөрчлөх боломжийг олгодог. Загварууд нь ижил төрлийн олон интерфейсийн элементүүд (жишээлбэл, товчлуурууд) байх үед ашигтай байдаг, гэхдээ тэдгээр нь өөр харагдах ёстой.

Дараа нь бид товчлуурыг ("GUI.Button") үүсгэдэг бөгөөд энэ нь дараах синтакстай: нөхцөл - 4 координат (зүүн ирмэгээс хэвтээ догол, дээд ирмэгээс босоо догол, өргөн, өндөр) - хашилтанд харагдах текст болон цааш нь , сонголтоор, загварын заалт. Шаардлагатай функцууд нь товчлуурын нөхцөл дотор бичигдсэн байдаг. Манай тохиолдолд бид хөгжүүлэгчдийн сайт руу шилжих шилжилтийг бүртгэсэн ("Application.OpenURL("");").

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

Бид ямар ч нөхцөлд арын дэвсгэрийн текстийн өнгө, бүтцийг зааж өгөх боломжтой (товчлуурын хувьд та түүний гурван сонголтыг бүртгэх хэрэгтэй (Хэвийн - ердийн харагдац, Hover - хулганаар болон Идэвхтэй - товшилт дээр), дэвсгэрийг тохируулж, үсгийн фонтыг тохируулна уу. Анхдагч байдлаар Unity 3D-д байгаа цорын ганц фонт нь Arial боловч та өөр дурын фонтыг төсөлд гараар ачаалж, холбогдох бүх параметрүүдийг тохируулж "Font" талбарт ашиглаж болно.

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

Интерфэйсийг нөхцөл болон статик хувьсагчаар өөрчлөх

Бид аль хэдийн маш их зүйлийг хийсэн, гэхдээ сайжруулах зүйл үргэлж байдаг :) Тиймээс би хамгийн сүүлийн жишээ болгон энгийн хөгжүүлэгчид тоглоом, програмаа нийлүүлдэг тусламжийн цонхыг бий болгохыг санал болгож байна. Үүнийг хийхийн тулд ийм товчлуурын зургийг асуултын тэмдэг хэлбэрээр дүрс бүхий хавтсанд нэмж, үүнээс тоглоомын объект хий. Үүн дээр коллайдер өлгөж, дараах агуулгатай "Тусламж" гэх нэртэй скрипт бичье.

Энэ скриптэд бид хоёр хувьсагчтай байна. Эхний хувьсагч нь энэ ангид тайлбарласан бүх интерфейсийн элементүүдэд ашиглагдах арьсыг тодорхойлдог. Дээр дурдсан хэв маягаас ялгаатай нь арьс нь зөвхөн тухайн элементийн гаднах төрхийг өөрчлөх боломжийг олгодог төдийгүй тодорхой төрлийн бүх элементүүдийг нэг дор өөрчлөх боломжийг олгодог. Нэмж дурдахад, хэв маягаас ялгаатай нь арьс нь элементүүдэд хуваарилагдаагүй, харин бүхэл бүтэн аргын хувьд нэн даруй зарлагддаг бөгөөд өөр арьс зарлах хүртэл ажиллана. Арьс нь хувьсагч төдийгүй тусдаа файл хэлбэрээр оршдог гэдгийг та бас санах хэрэгтэй. Тиймээс арьсыг зарлахаасаа өмнө контекст цэснээс "Төсөл" цонхонд нэн даруй үүсгэх ёстой: "Create" - "GUI Skin".

Бидэнд байгаа хоёрдахь хувьсагч бол логик (эсвэл логик) юм. Энэ нь зөвхөн хоёр утгатай байж болно: "үнэн" (үнэн) эсвэл "худал" (худал). Хоёртын шинж чанартай учраас ийм хувьсагч нь бүх төрлийн шилжүүлэгчийг хэрэгжүүлэхэд төгс төгөлдөр юм. Манай тохиолдолд энэ нь бидний тоглоомыг дүрсэлсэн текстийг харуулах үүрэгтэй.

Гэсэн хэдий ч, хэрэв та анхааралтай ажиглавал сүүлчийн хувьсагч нь "статик" гэсэн нэг гайхалтай параметртэй болохыг анзаарах болно. Энэ параметрийг хувьсагчдад нэмснээр тэдгээрийг статик болгож, бусад скриптээс хандах боломжтой болно!

Гэхдээ кодын үлдсэн хэсэг рүү буцна уу. Энд бидэнд аль хэдийн танил болсон "void OnMouseDown()" арга нь энгийн нөхцөлийг ашиглан "isVisible" хувьсагчийн шилжүүлэгчийн үүрэг гүйцэтгэнэ. Гэсэн хэдий ч нөхцөл байдлын дараа өөр функц байдаг. Энэ функцийг ("Debug.Log();") нь бидэнд хэрэгтэй хувьсагчийн утгыг консол руу "явшин" гаргахад хэрэглэгддэг (бид хаалтанд хашилтгүйгээр оруулна). Таны харж байгаагаар функц дотор та өөрчлөгддөггүй текст (хашилтаар бичсэн) болон хувьсагч (хашилтгүйгээр) хоёуланг нь нэгтгэж болно. Хамгийн гол нь бүх өгөгдлийн хооронд "+" тэмдэг байх ёстой.

Цаашид скриптийн текстэнд бид интерфэйсийг зурах аргатай ("void OnGUI()()"), дотор нь бид шинэ арьсны мэдэгдэл ("GUI.skin = HelpSkin;") болон шинэ хувилбарыг хардаг. GUI.Box төрлийн интерфейсийн элемент. Товчлуураас ялгаатай нь хайрцаг нь идэвхгүй элемент бөгөөд ихэвчлэн янз бүрийн текст эсвэл график өгөгдлийг харуулахад үйлчилдэг.

Бид хайрцгийн байршлыг хэрхэн тохируулахыг анхаарч үзээрэй. Энд бүх утгыг шууд зааж өгөөгүй, харин математикийн илэрхийллийн тусламжтайгаар энэ нь вэб хөгжүүлэлтийн "шингэний зохион байгуулалт" -ын аналог юм. Асуудал нь өөр өөр дэлгэцийн нягтралтай GUI элементүүдийн яг хэмжээг зааж өгөхөд тэдгээр нь дасан зохицохгүй бөгөөд хэтэрхий жижиг эсвэл эсрэгээрээ том байж болно. Хөдөлгүүрийн дараагийн хувилбар дээр хөгжүүлэгчид GUI-г дасан зохицох чадвартай болгоно гэж амлаж байгаа ч одоо болтол бид гажуудуулж байна :(

Амжилтанд хүрэх зам дахь сүүлчийн алхам бол арьсаа өөрчлөх явдал юм. Бид скрипт хувьсагч дахь арьсны файлыг зааж өгөөд төслийн цонхонд энэ файлыг сонгоно. Бусад файлуудын нэгэн адил арьсны тохиргоог Inspector цонхонд харуулах болно. Энд бид өөрчлөх боломжтой элементийг хайж байна (манай тохиолдолд, Box), үүнийг нээж, дээр дурдсан хэв маягтай ижил аргаар тохируулна уу.

Манай скрипт зөв ажиллаж байгаа эсэхийг шалгахын тулд төслийг ажиллуулаад тусламжийн товчийг дарж үзнэ үү:

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

Дуу тоглуулахын тулд товчлуурыг дардаг анхны скриптдээ ("Дуу чимээ") буцаж орцгооё. Бидэнд зөвхөн нэг мөр бичихэд хангалттай (илүү нарийвчлалтай, "void OnMouseDown ()" аргын дотор:

хэрэв (this.name != "HelpButton")(Help.isVisible = худал;)

Энэ мөрөнд бид нөхцөлийг тавьдаг: хэрэв дарагдсан мөргөлдүүлэгчийн нэр нь тусламжийн товчлуурын нэртэй тэнцүү биш бол "Тусламж" скрипт дэх "isVisible" хувьсагч нь "худал" гэсэн утгатай тэнцүү болно. Зөвхөн "isVisible" хувьсагч нь "статик" гэсэн бичлэгтэй байх шаардлагатай, эс тэгвээс алдаа гарах болно.

Одоо эхлүүлэх үед бид зөвхөн баруун дээд буланд байгаа товчлуур дээр дарахаас гадна дэлгэцийн аль ч чөлөөт хэсэгт хүрэх үед бидний тусламжийн цонх хаагдахыг харах болно. Сайжруулж болох цорын ганц зүйл бол цонхон дээр дарахад цонхыг далдлах явдал юм... Энэ бол таны "гэрийн даалгавар" байх болно;) GUI хайрцагыг ижил загвартай товчлуур болгон өөрчлөх шаардлагатай гэж би хэлж чадна. , тохиргооны арьс болон "isVisible" хувьсагчийг өөрчилдөг функцийг зааж өгнө. Бүгд чимээгүй бай :)

Тоглоомыг эмхэтгэж, төслийг хадгалах

Эцэст нь хэлэхэд бүх зүйл бидний төлөө ажилладаг! Энэ нь тоглоомоо хадгалж, бодит төхөөрөмж дээр туршиж үзэх цаг болсон гэсэн үг юм. Үүний тулд үүнийг гүйцэтгэх файл болгон хөрвүүлэх шаардлагатай (Windows-д, жишээлбэл, EXE дээр, Android-д, APK дээр).

Хэрэв та компьютерт зориулсан тоглоомыг эмхэтгэхийг хүсвэл урьдчилсан тохиргоо хийх шаардлагагүй болно. Гэсэн хэдий ч, Android-ийн хувьд та эхлээд бидний татаж авсан Android SDK-г холбох хэрэгтэй болно. Үүнийг маш энгийнээр хийдэг: "Засах" цэс рүү очоод "Тохиргоо" хэсгийг дуудаж, нээгдэх цонхонд "Гадаад хэрэгсэл" таб руу очно уу. Энд бид "Android SDK байршил" гэсэн мөрийг хайж байгаа бөгөөд үүн дээр бид SDK-ээр задлагдаагүй архив руу орох замыг зааж өгсөн болно (доорх дэлгэцийн зургийг үзнэ үү). Дашрамд дурдахад, эндээс та MonoDevelop хэмээх аймшигт текст засварлагчийг анхдагчаар өөрийн дуртай болгон өөрчилж болно :)

Одоо үнэний мөч ирлээ! "Файл" цэс рүү очоод тэндээс "Тохиргоо бүтээх" хэсгийг олоорой. Нээгдсэн цонхонд бид угсралтын үзэгдлүүдийг нэн даруй нэмэх шаардлагатай болно. Хэрэв зөвхөн нэг үзэгдэл байгаа бол (манай төслийнх шиг) "Одоо нэмэх" товчийг дарахад хангалттай. Хэрэв тэдгээр нь хэд хэдэн байгаа бол та тэдгээрийг тус бүрээр нь нээж, үзэгдлийн жагсаалтад ижил аргаар нэмж, дараа нь чирж буулгах замаар хүссэн дарааллыг нь тохируулах хэрэгтэй болно.

Дараагийн алхам бол бүтээх платформыг сонгох явдал юм (бид Android-д зориулсан тоглоом хийхээр төлөвлөж байгаа бөгөөд энэ нь бид үүнийг сонгосон гэсэн үг юм) доорх "Тоглогчийн тохиргоо" товчийг дарна уу. Inspector цонхонд хэд хэдэн тохиргоо нээгдэх бөгөөд тэдгээрийн зарим нь заавал байх ёстой эсвэл маш их хүсч байна. Тохиргооны жагсаалтын дээд талд хөгжүүлэгч компанийн нэр, програм, түүний дүрсийг (Компанийн нэр, Бүтээгдэхүүний нэр, Үндсэн дүрс) зааж өгөх нь зүйтэй.

Доод талд "Бусад тохиргоо" хэсэгт "Багц танигч" ба "Багцын хувилбар" гэсэн хоёр шаардлагатай параметр байна. Өгөгдмөл хувилбарыг 1.0 гэж тохируулсан боловч танигчийг гараар, илүү бол өвөрмөц байдлаар үүсгэх шаардлагатай. Энэ нь бие биенээсээ цэгээр тусгаарлагдсан гурван хэсгээс бүрдэх ёстой: нөөцлөгдсөн "com" гэсэн үг, дараа нь хөгжүүлэгч компанийн нэр, төгсгөлд нь програмын нэр.

Та бусад угсралтын тохиргоог өөрийн үзэмжээр өөрчилж болно, эсвэл огт өөрчлөхгүй. Хамгийн гол нь одоо эмхэтгэл аль хэдийн эхлэх боломжтой болно. Үүнийг хийхийн тулд "Тохиргоо бүтээх" цонхон дээрх "Бүтээх" товчийг дарж, програм нь APK файлд багцалсан бэлэн програмыг өгөх хүртэл хүлээнэ үү :)

Дүгнэлт

Энэ нь Android-д зориулсан хамгийн энгийн програмуудыг бий болгох хичээлийн тоймыг дуусгаж байна. Бидний ярьсан бүх зүйлийг давтахын тулд өгүүллийн төгсгөлд би тоглоомын бүх нөөцийг тусдаа хавтас болгон хадгалах архивын холбоосыг өгөх болно (хэрэв та бүх зүйлийг эхнээс нь хийхийг хүсч байвал). unitypackage өргөтгөлтэй файл. Сүүлийнх нь бүх төслийг Unity руу нэг дор импортлох боломжийг олгодог, үүнд хамаарал гэх мэт.

Манай төслийг (мөн дашрамд хэлэхэд, Интернет эсвэл хөрөнгийн дэлгүүрээс татаж авсан нэмэлт өргөтгөлүүдийг) импортлохын тулд та "Хөрөнгө" цэс рүү орж, "Импортын багц" хэсгийг сонгоод "Захиалгат багц", Дараа нь манай файлын замыг зааж өгөөд "Импорт" товчийг дарна уу. Дашрамд хэлэхэд, та "Багцыг экспортлох" зүйл дээр дарж ижил цэснээс ("Хөрөнгө") ийм нэгдмэл багцад хадгалах төслийн бүрэн нөөцлөлтийг хийж болно.

Бүх зүйл юм шиг санагдаж байна :) Unity 3D-ийг эхнээс нь эзэмшсэн хүний ​​хувьд би нийтлэлдээ хамгийн их асуултанд хариулж, хөдөлгүүртэй ажиллахад гарч ирдэг гол нюансуудыг тодруулахыг хичээсэн. Гэхдээ энэ нь хэн нэгэнд хангалтгүй байж магадгүй тул танд асуулт байгаа бол шуудангаар эсвэл форумаар надтай холбоо барина уу: Би танд чадах бүхнээрээ туслах болно!

Та бүхэнд амжилт хүсье, бүх төслүүд амжилттай хэрэгжиж байна!

P.S. Эх сурвалжийн нээлттэй идэвхтэй холбоосыг зааж, Руслан Тертышныйгийн зохиогчийн эрхийг хадгалсан тохиолдолд энэ өгүүллийг чөлөөтэй хуулж, иш татахыг зөвшөөрнө.