Игри

Урок за Unity3D

Урок за Unity3D

Въведение в Unity 3D

Unity 3D е мощен двигател за разработка на игри. Това е кръстосана платформа, която ви позволява да създавате игри за мобилни устройства, уеб, десктоп и конзола, общо около 30 платформи. Unity 3D има много вълнуващи функции, някои от тях са дадени по-долу:

Unity интерфейси

Нека разгледаме интерфейсите на редактора на Unity, които могат да се конфигурират.  Състои се от подслушвани прозорци, които можете да пренаредите според вашите нужди.  Нека разгледаме настройките на прозореца по подразбиране. Ето изображението как изглежда

Прозорец за йерархия

Прозорецът Йерархия представлява всеки обект в сцената. Той показва как обектите са свързани помежду си в сцената, така че тези два прозореца са свързани. В йерархичния прозорец има падащ списък, наречен като Създайте. Можете да създадете празен обект, 3D обекти, 2D обекти, светлина, аудио, видео, система от частици и обекти на камерата много лесно. Прозорецът за йерархия е показан по-долу. „Без заглавие“ е името на сцената. Можете да го преименувате както искате. Можете да видите падаща икона в дясната страна на без заглавие (име на сцена). Като кликнете върху това падащо меню, можете да видите различни опции за Запазване на сцена и Добавяне на нова сцена.

Прозорец на сцена

Прозорецът на сцена е мястото, където създавате вашата сцена. Тук можете да взаимодействате с вашите игрови обекти и модели. Можете да преоразмерите, прекроите и преместите вашите обекти на сцената. Това е прозорецът, в който започвате да работите с Unity. Изгледът на сцената може да бъде 2D или 3D в зависимост от настройката на вашия проект. Ето снимка на екрана за това как изглежда прозорецът на сцената:

В прозореца на сцената можете да видите друг раздел с етикет Засенчени, тук можете да изберете какъв вид изглед искате или сенчест, или каркасен. Той има много други опции като Разни, Глобално осветление, GI в реално време, Baked GI и много други. Можете да видите 2D или 3D, като използвате бутона до Засенчени падане. Следва превключвател за осветление на сцената. По същия начин бутон за превключване за звук на сцената. Следва падащ списък за активиране на небето, мъглата, анимираните материали и ефектите на изображението.

Прозорец на играта

Прозорецът на играта представлява вашата окончателна, публикувана игра в режим на игра. Той се изобразява от камерите, които сте използвали във вашата игра. В прозореца на играта можете да видите друга лента с инструменти, както е показано по-долу на снимката на екрана:

Дисплей 1 показва камерата, присъстваща във вашата игрална сцена. По подразбиране е зададено на Дисплей 1 за основна камера. Ако имате няколко камери и искате да превключите, можете да изберете от падащия списък. До това можете да видите падащо меню за пропорции. Можете да изберете според екрана на монитора на вашето целево устройство. След това можете да видите a Плъзгач за мащаба за да увеличите. Превъртете надясно и разгледайте повече подробности за вашата сцена в режим на възпроизвеждане. Следва бутонът за Увеличете при игра, при щракване размерът на прозореца на играта ще бъде максимален в режим на игра. Без звук превключвателят се използва за заглушаване / включване на звука. Статистика показва статистика за изобразяване на аудиото и графиката на играта ви.

Прозорец на активите на проекта

Както името показва актива прозорецът има всички активи на вашия проект, които можете да използвате. Ако импортирате нещо ново, то ще се появи в прозореца на активите на проекта. Прозорецът на активите на проекта има две части, левия панел и десния панел, както е показано на снимката на екрана по-долу:

Левият прозорец показва йерархичната структура на активите на проекта.  Когато кликнете върху която и да е папка, тя ще покаже подробностите в десния панел. Например на дадената фигура Сглобяеми елементи папката се щраква в левия панел, така че нейните детайли се показват в десния панел, тъй като съдържа два игрални обекта. В левия панел можете да видите a Любими раздел, където можете да плъзнете елементи, които искате да използвате много често, за да избегнете загуба на време в търсенето им. Над него можете да видите a Създайте падащо меню, което ви позволява да създадете C # скрипт, папка, шейдър, GUI скин, сцена, сглобяем материал и много други.

Конзолен прозорец

Прозорецът на конзолата е мястото, където можете да видите грешките, предупрежденията и съобщенията си. Можете да ги коригирате, като щракнете върху техните бутони за превключване. Също така ви позволява да изчистите всички грешки, предупреждения и съобщения. Можете да поставите на пауза грешки за определено време. Тук можете да видите на следващата фигура

Иконата за падащо меню в горния десен ъгъл има опции за Редактор на дневник и Регистрация на трасиране на стека.

Прозорец на инспектора

Прозорецът на инспектора е един от най-интересните и полезни прозорци на редактора. Това е мястото, където можете да редактирате всички свойства на избрания обект на играта. Всеки игрален обект има свой собствен тип, така че свойствата му ще бъдат различни и прозорецът на инспектора може да варира. Активите, скриптовете и игровите обекти се различават по свойства. Нека видим свойствата на куб в прозореца на инспектора. Ето изображението:

Можете да преименувате своя игрален обект, като просто щракнете върху предишното име и напишете ново. След това ще видите секцията за трансформиране, където можете да регулирате позицията, въртенето и мащабирането на избрания от вас обект на игра. В последната виждате име на бутон като Добавяне на компонент, кликнете върху него, за да добавите нови компоненти към вашия игрален обект, например ако искате да прикачите скрипт, просто кликнете върху добавяне на компонент и въведете името на вашия скрипт.

Лента с инструменти

Последният е раздел на лентата с инструменти, той има много полезни функции. Той съдържа някои основни инструменти за манипулиране на изгледа на сцена и обекти. В центъра има бутони за управление на възпроизвеждане, пауза и стъпка. Следващите два бутона показват вашия Unity облак и Unity акаунт. Ето фигурата как изглежда:

Първи стъпки с единството

Нека започнем да създаваме нов проект в Unity, защото е време да си поиграем с наученото. Щракнете двукратно върху иконата Unity, ще се появи следният прозорец:

Въведете Име на проекта, изберете работно място Местоположение и след това изберете тип на вашия проект или 2D, или 3D. Кликнете върху Създаване на проект.

По подразбиране ще видите сцена без заглавие, съдържаща основна камера и насочена светлина в сцената. Нека започнем да създаваме среда.

Строителна среда

Преди всичко създайте равнина, като кликнете върху Създаване -> 3D обект и след това изберете Самолет. Или алтернативно можете да го създадете, като кликнете върху GameObject -> Game Object и след това изберете Самолет. Отидете до прозореца на йерархията и щракнете върху обект на равнинна игра. Сега отидете в прозореца на инспектора и го преименувайте като Земя. Сега коригирайте стойностите на трансформацията, така че тази равнина да изглежда като прав път. Просто скалирайте X до 6 и Z до 50. Ето изображението как изглежда

Сега изтеглете пътна текстура и я приложете върху земния обект. Създайте име на папка като Texture. Плъзнете изтеглената текстура на пътя в папката на Texture. Сега изберете Земя и плъзнете текстура на пътя в изгледа на сцената. Ето изображението как изглежда

Това е текстурата, която изтеглих

След като приложите текстура върху земята, кликнете върху Ground и задайте облицовка в прозореца на инспектора. Ето как го зададох.

Сега сте създали модел на пътя, нека създадем модел на топка в единство.

Отидете на Създаване -> 3D обект и след това изберете Сфера, ще видите сферен обект в прозореца на сцената. Изберете го и отидете в прозореца на инспектора, за да го преименувате като Топка. Сега коригирайте съответно стойностите на трансформацията. Просто го мащабирайте до 5 по трите оси и го преместете в центъра на пътя. Ето как изглежда

Сега създайте ограда или стена около пътя.

Отидете на Създаване -> 3D обект и след това изберете Кубче. Изберете го и го преименувайте на Стена1. Отидете до прозореца на инспектора и задайте стойности за трансформация, така че да изглежда като стена около пътя. Ето как изглежда:

Вижте тези стойности на трансформация за Стена1. Скалирайте Y до 6 и Z до 500. След това коригирайте позицията му така, че да идва в ъглите на пътя.

Сега потърсете текстура на стената, изтеглете я и копирайте в Текстура папка в активи. Плъзнете текстурата на стената към стената в прозореца на сцената. Настройте обработката, така че да изглежда добре и гладко. Нагласих облицовката като X на 50 и Y на 1.5. След коригиране на облицовката ето как изглежда

Това е текстурата, която използвах за стена

Създадохме стена за едната страна на пътя. Сега направете същото и за другата страна на пътя. Вместо да преминем през целия процес, можем просто да копираме Стена1 и го преименувайте на Стена2.

Изберете Стена1 в йерархичен прозорец и след това щракнете с десния бутон и след това изберете Дубликат опция. Той ще създаде друг игрален обект със същия размер и стойности на трансформация. Кликнете върху Стена1 (1) и го преименувайте на Стена2. Сега коригирайте позицията, така че да стигне до другия ъгъл на пътя.

Вижте следното изображение колко страхотно изглежда

Стойностите на моята позиция за Wall2 са от X до -29.6 Y до 2.6 и Z до 2.6.

Сега създайте материал за Топка. Отидете в прозореца на проекта и създайте папка, като щракнете с десния бутон на мишката и след това изберете Папка. Назовете го като Материали. Отново щракнете с десния бутон на мишката и създайте материал. Назовете го като червена топка. В прозореца на инспектора изберете цвят на материала. Отидете на Основни карти и изберете цвят Albedo до червен. Увеличете металната текстура, като превъртите лентата надясно. Плъзнете този материал в Топка в изгледа на сцената. Ето как изглежда

Ето как изглежда материалът:

Така че приключихме с развитието на нашата околна среда. Сега е време да направим малко кодиране. За това трябва да създадем скрипт.

Сценарии в Unity

За да приложите собствените си функции за игра и да контролирате поведението на играта, която Unity предлага като скриптов механизъм. Можете да напишете свой собствен скрипт за желания резултат от играта. С тези скриптове можете да задействате събития в играта, да променяте свойствата на компонента и да отговаряте на потребителските входове. По принцип Unity поддържа два различни езика за програмиране с цел скриптове, единият е C #, а другият е JavaScript. Освен тези два езика много други .NET езиците също могат да се използват с Unity. Скриптовете са известни като поведенчески компонент в Unity.

Създаване на скрипт

Нека започнем да създаваме Unity скрипт. За това отидете в прозореца на активите и създайте нова папка с име Скриптове (можете да пропуснете създаването на нови папки за всеки нов тип актив, но неговата добра практика е да поддържате нещата организирани). Ето как изглежда прозорецът на моите активи сега:

Сега отворете Скриптове папка, щракнете с десния бутон, след което отидете на Създайте и изберете ° С# скрипт. Преименувайте скрипта на Движение. Ние създаваме този скрипт за преместване и търкаляне на топката по пътя. Засега топката е неподвижна, без да прави нищо, нека създадем някакво движение в нея.

Щракнете двукратно върху скрипта за движение, който ще се отвори в Mono Develop. Ако вашият скрипт е моно поведение, ще видите някакъв предварително написан код като този

с помощта на System.Колекции; с помощта на System.Колекции.Общи; използване на UnityEngine; публичен клас MovementScript: MonoBehaviour // Използвайте това за инициализация void Start ()  // Актуализацията се извиква веднъж на кадър void Update ()  

Можете да видите две функции Start () и Update ().

Старт (): Функцията Start се използва за инициализиране на променливи и обекти. Той се извиква само веднъж, когато скриптът е активиран непосредствено преди извикванията на всяка друга функция за актуализиране.

Актуализация (): Това е функция за моно поведение, тя се извиква веднъж във всеки кадър.

Освен тези две има много други функции за моно поведение, например awake (), fixedUpdate (), lateUpdate () и т.н.

За да преместите топката по пътя, първо трябва да я направите твърдо тяло (това е идеално твърдо тяло, в което деформацията се пренебрегва). Изберете Топка в йерархичен прозорец и кликнете върху Добавяне на компонент бутон в прозореца на инспектора. Въведете твърдо тяло и натиснете Въведете. Твърдо тяло ще се прикрепи към Топка. Сега отидете на скрипт и създайте частна променлива от тип Твърдо тяло. Сега задайте твърдо тяло на топката на тази променлива, която току-що създадохте в скрипта.

частно Rigidbody rb; rb = GetComponent (); 

Сега напишете някакъв код за движението на това твърдо тяло. Каква е идеята? Топката трябва да се движи, когато натисна клавишите със стрелки на клавиатурата. Той трябва да се движи напред, когато е натиснат бутон нагоре, назад, когато е натиснат клавиш надолу и т.н.

Така че входът, идващ от клавиатурата, как трябва да получа този вход? Входният клас на Unity има име на функция GetAxis (), да връща стойността на виртуалната ос, идентифицирана с името на оста. Създайте две променливи, една за оси x и една за въвеждане на оста y. Ето как трябва да бъде

float moveHorizontal = Вход.GetAxis ("Хоризонтално"); 

Сега създайте променлива Vector3, за да получите стойности на движение.

Vector3 движение = нов Vector3 (moveHorizontal, 0.0f, moveVerticle); 

Първият параметър е стойността на оста x, вторият е стойността на оста y и третият е стойността на оста z. Тъй като топката няма да се движи по посока на оста y, така й задайте нула. Накрая добавете това движение към твърдо тяло и умножете с постоянно число за скорост или създайте друга променлива за скорост. Вижте пълния код по-долу

с помощта на System.Колекции; с помощта на System.Колекции.Общи; използване на UnityEngine; публична класа Движение: MonoBehaviour публична скорост на плаване; частно Rigidbody rb; // Използвайте това за инициализация void Start () rb = GetComponent ();  // Фиксирана актуализация се извиква след фиксиран брой кадър void FixedUpdate () float moveHorizontal = Input.GetAxis ("Хоризонтално"); float moveVerticle = Вход.GetAxis ("Хоризонтално"); Vector3 движение = нов Vector3 (-1 * moveHorizontal, 0.0f, -1 * moveVerticle); rb.AddForce (движение * скорост);  

Тъй като скоростта е публична променлива, така че можете да зададете стойност в прозореца на инспектора. Прикрепете този скрипт към топката, като я плъзнете към прозореца на инспектора или като натиснете Добавяне на компонент бутон. Натиснете бутона за възпроизвеждане и тествайте кодирането си или топката се движи, или не.

Настройка на камерата

Последното нещо, което ще забележите е, че когато натиснете бутона напред и топката започне да се движи, тя излиза от камерата, тъй като камерата е неподвижна. Какво да правим? Трябва да преместим и камерата? Да, това е най-простото нещо. Направете камерата дете на топката, като плъзнете основната камера към топката.

Заключение

Това беше основен уводен урок, в който научихте много интересни функции, изграждане на среда и скриптове в Unity. Не се колебайте, започнете да създавате първата си игра с Unity още днес и се наслаждавайте!

WinMouse ви позволява да персонализирате и подобрите движението на показалеца на мишката на компютър с Windows
Ако искате да подобрите функциите по подразбиране на показалеца на мишката, използвайте безплатна програма WinMouse. Той добавя още функции, за да ви ...
Бутонът на левия бутон на мишката не работи в Windows 10
Ако използвате специална мишка с вашия лаптоп или настолен компютър, но бутонът на левия бутон на мишката не работи на Windows 10/8/7 по някаква причи...
Курсорът скача или се движи произволно, докато пишете в Windows 10
Ако установите, че курсорът на вашата мишка скача или се движи самостоятелно, автоматично, произволно, докато пишете в лаптоп или компютър на Windows,...