Как писать программы в юнити

You want to start learning to code in Unity so you can get going on your first game, but you don’t know where to begin. We get the struggle. Here’s a breakdown of the scripting elements in Unity and some learning material that you can use to go through more advanced projects like «Space Shooter». This should get you covered in the following areas: the very basics of coding, like variables, functions and classes, and how to use them.

On this page

  • What is scripting in Unity?
  • What languages can you use in Unity?
  • What do these do?
  • Variables
  • Functions
  • Writing functions
  • Classes

What is scripting in Unity?

Scripting tells our GameObjects how to behave; it’s the scripts and components attached to the GameObjects, and how they interact with each other, that creates your gameplay. Now, scripting in Unity is different from pure programming. If you’ve done some pure programming, e.g. you created a running app, you should realize that in Unity you don’t need to create the code that runs the application, because Unity does it for you. Instead, you focus on the gameplay in your scripts.

Основы программирования в Unity. Скрипты

Unity runs in a big loop. It reads all of the data that’s in a game scene. For example, it reads through the lights, the meshes, what the behaviors are, and it processes all of this information for you.

If you think about television, where, for example in North America, you have 29.5 frame/sec, Unity needs to do the same thing. It’s running single discrete frames, one after another. You direct Unity with the instructions that you write in your scripts, and Unity executes them frame after frame as fast as it can.

Achieving a high frame rate means not only your game will look more fluid, but your scripts will also be executed more often, making controls more responsive.

What languages can you use in Unity?

A script must be attached to a GameObject in the scene in order to be called by Unity. Scripts are written in a special language that Unity can understand. And, it’s through this language that we can talk to the engine and give it our instructions.

The language that’s used in Unity is called C# (pronounced C-sharp). All the languages that Unity operates with are object-oriented scripting languages. Like any language, scripting languages have syntax, or parts of speech, and the primary parts are called variables, functions, and classes.

If you’re using a version of Unity until 2017.3, you’ll notice that it has a text editor called MonoDevelop: it can help us complete our code, it’ll let us know if we’re writing a wrong piece of code, and allows us to take shortcuts. Starting with 2018.1, you can also use Visual Studio for Unity Community, or other text editors such as Visual Studio, Notepad, or Sublime text.

Here’s a script with some sample code in it (based on the Coding in Unity for the Absolute Beginner tutorial):

Как выучить Unity? Самый аху#### способ!

As you can see, there are variables, functions, and classes.

What do these do?

Variables hold values and references to objects (you can see objects as “bigger” variables). They’re like a box that holds something for us to use. Variables start with a lowercase letter.

Functions are collections of code that compare and manipulate these variables. Functions start with an uppercase letter. We organise code in functions so that they can be easily reused multiple times in different parts of the program.

Classes are a way to structure code to wrap collections of variables and functions together to create a template that defines the properties of an object.

Scripting is primarily comparing these objects and their current states and values. It’s based on logic determining an outcome or resolution.

In Unity, the scripts start by laying out the tools that you need at the top, and this is usually by declaring variables. You can see the declared variables here with the visibility keyword “public” or «private» at the front, followed by a type, and a name.

variables

When we’re declaring your variables there are several visibility types, but the two most important ones are public and private.

Читайте также:
Список литературы для 5 класса по программе меркина

If you create a script with the above text in your code editor and then come back to Unity and assign the script to a GameObject, you’ll see that you can access and see the light variable declared as public in the Inspector, but you can’t see the private one. And that’s because what’s defined as “private” can only be accessed within this particular script, within this particular class.

If you make this public, then it’s accessible to other scripts and other classes, and can be changed in the Inspector from the Unity editor. So, that means other people can access it and change its value.

There are many reasons to choose between private or public. Private variables allow your code to be cleaner, since you know that the value of those variables can be changed only inside that class. This makes debugging and maintaining the code easier.

If you choose “public” , and you experience an issue, you need to look inside your whole codebase in order to track the source because any other object has access to that variable. However, if you want objects to communicate between themselves you need some variables (or functions) to be public.

Another important aspect of variables is the type. A type defines what kind of value is the variable holding in memory, e.g. it can be a number, text, or more complex types, like the ones in the image below: Transform, Light and Demo Script in the image below are in fact references to Components. Unity needs to know what type of object it is so that it knows how to handle it.

Variable types

Another important thing about variables is the name. The main thing that you need to remember about naming variables is that it can’t start with a number, and it can’t contain spaces. Therefore, there’s a style of writing the names. In C#, the naming convention is camelCase: you start with a lowercase letter and add words, without spaces, starting with a capital letter, e.g. «myLight».

When Unity compiles the script, it makes public variables visible in the editor. See the image below from the inspector.

demo script

Scripts manipulate the variables by using functions. There are a number of functions that run automatically inside Unity. See below:

functions

Awake is called only once when the GameObject with that component is instantiated. If a GameObject is inactive, then it will not be called until it is made active. However, Awake is called even if the GameObject is active but the component is not enabled (with the little checkbox next to its name). You can use Awake to initialize all the variables that you need to assign a value to.

Start – like Awake, Start will be called if a GameObject is active, but only if the component is enabled. For more information on the differences with Awake, see this video.

Update is called once per frame. This is where you put code to define the logic that runs continuously, like animations, AI, and other parts of the game that have to be constantly updated.

FixedUpdate is when you want to do physics work.

As you can see, there’s Fixed Update and Update and in our Scripting tutorials section, you can learn how to effect changes every frame with the Update and FixedUpdate functions, and their differences.

LateUpdate is a function that’s similar to Update, but LateUpdate is called at the end of the frame. Unity will look at all of the game objects, find all of the Updates, and call the LateUpdates. This is good for things like the camera. Let’s say you want to move a character in your game. And then he’s bumped into by another character and ends up in a different position. If we move the camera at the same time as the character, there would be a jiggle, and the camera wouldn’t be where it needs to be.

So, basically, it’s a second loop that comes in very handy.

Writing functions

When writing a function, remember that functions start with the returned type of the function at the beginning, followed by the name of the function, and then the parameters in the parentheses (if any). Function names start with a capital letter and the body of the function goes between the curly brackets. Here’s an example on how to write a function:

writing function

How do we call this function?

call function

Functions can do calculations and then return a value. You can ask a function to do something, process the information, then return an answer. If you use the type «void», then they are not returning anything.

Classes are collections of these variables and functions. For example, this script is a class:

Читайте также:
Какие бывают интернет программы

Script class

Bear in mind that the class name must match the file name of the C# script for it to work. And then to be attached to a GameObject, it has to derive from another class called MonoBehaviour which is automatically put there for you when you first create a script. Classes can also be public or private.

In Unity, if you create a custom class, like in the example below, you have to ask it to serialize it. This means that it will be converted into simple data that Unity can look at in the inspector. When you do that, it’ll see that you have the class will appear in the inspector.

serial class

Variables, functions, and classes are just the basics of starting with coding in Unity. Check out the Learn section, you can find a bunch of useful scripting tutorials that will help you go learn about programming from scratch, then progress to create detailed code for your projects.

Источник: unity.com

Unity для новичков и C#

C# – язык программирования, который базируется на скриптах. Он относится к СИ-семейству и не теряет своей популярности из года в год. Зная этот язык, вы сможете писать программы и игры посредством игрового движка Unity.

В данной статье будет приведен материал, который поможет новичкам освоиться на соответствующей платформе. Движок крайне распространен как у начинающих разработчиков, так и у профессионалов. Этот редактор кода позволяет достаточно быстро получать результат без глубоких навыков программирования.

Unity – это…

Unity – движок, который позволяет создавать приложения и игры. Один из наиболее популярных кроссплатформенных редакторов кода с необходимым инструментарием. Через него удается писать софт для ПК, а также мобильных устройств и приставок.

Для того, чтобы использовать Unity, пользователю понадобится минимум информации о заранее выбранном языке. Пример – C#. В данном случае рекомендуется изучить основы работы с переменными, классами и функциями. Любой учебник для разработчика или программера по Си шарпу расскажет об этом.

Зачем нужен скриптинг

Коды могут быть «обычными» или «скриптовыми». Юнити функционирует подобно редактору видео:

  1. Пользователь говорит, что и в каком порядке выполнить.
  2. Редактор кода и сам движок получает команды и обрабатывает их.
  3. Unity воспроизводит последовательность действий.

Чем выше скорость воспроизведения, тем более плавной будет утилита. Скриптинг – это написание последовательностей, которые будут обрабатываться Unity.

Использовать такой вариант работы с кодами – это отличный способ сэкономить время на разработку. В C# программирование сводится к манипулированию объектами и соответствующими им скриптами, а также иными элементами.

Принцип работы здесь будет примерно таким же, как у режиссера – он действует по сценарию. А программер – по скриптам кодов. Это дает возможность управлять «происходящим на экране».

Каждый объект в проекте Unity Editor получит собственный скрипт. Они пишутся на C#. В основе заложены концепции объектно-ориентированного программирования.

Начало работы

Unity Editor – это редактор кода в рассматриваемом движке. Чтобы начать с ним работу, вовсе не обязательно изучать специализированный учебник по Юнити или соответствующую литературу. Для этого достаточно:

  1. Скачать исполняемый файл Unity с официальной странички сервиса.
  2. Запустить Мастер Установки. Он предложит поставить Microsoft Visual Studio. Без него дальнейшие действия окажутся невозможными. Можно пропустить этот шаг, если упомянутый компонент уже стоит на устройстве.
  3. Дождаться завершения операции.
  4. Запустить движок.

Редактор кода и среда программирования готовы к дальнейшему использованию. Если работа с Visual Studio разработчику не нравится, он может воспользоваться облегченной версией – Visual Studio Code. В Unity также есть встроенный текстовый редактор. Он носит название MonoDevelop. Обладает разнообразными инструментами вроде возможности исправления ошибок кода, а также сокращений для более быстрой разработки.

Основы работы с кодом C#

Любой учебник по Си Шарпу научит работать с этим скриптовым языком. Он не слишком сложный, особенно для тех, кто уже несколько знаком с базой разработки. Перед началом использования оного стоит обратить внимание на несколько понятий. Без них в Юнити добиться результатов не получится:

  1. Переменная – ячейка (область) памяти, которая будет хранить значение или ссылки на объекты того или иного типа. В C# ее название начинается с маленькой буквы. Цифры в самом начале недопустимы.
  2. Функция – код, который отвечает за управление и разного рода действия над переменными. Вводится как единожды, так и многократно. Начинается в C# с заглавной буквы.
  3. Класс – шаблон, позволяющий создавать объекты. Он дает возможность комфортно группировать функции и переменные.

Также рекомендуется выучить базовые термины в программировании типа ООП. Все это поможет не запутаться в процессе коддинга, а также грамотно использовать элементы будущей программы.

Объявление переменной

В Unity Editor сначала нужно объявить переменную, а затем использовать ее. Они могут быть разного типа доступа:

  • public – доступный из любого участка кода;
  • private – используется в пределах конкретного блока кодификации;
  • internal;
  • protected.

Первый используют для связи объектов, второй – для ограничения области видимости. Имя переменной начинается с маленькой буквы, пробелы содержать не должно. Слова принято разделять заглавной буквой.

Читайте также:
Как освоить программу автокад самостоятельно

Задание функции

Функции и переменные характеризуются типом. Это тип значения, которые возвращает операции. Начинается имя функции с заглавной буквы, а кодификация прописывается в фигурных скобках. Void ничего не возвращает.

О классах в Юнити

Классы содержат переменные или функции. Имя совпадает с именем файла скрипта. Классы способны характеризоваться различными модификаторами доступа.

Пример класса в C# – это List из пространства System.Collection.Generic. Он включает в себя список однотипный объектов. Для работы с GameObject он должен наследоваться от класса MonoBehaviour.

Здесь – туториал по разработке в Юнити на C#. Еще лучше разобраться в азах программирования помогут компьютерные дистанционные курсы как для новичков, так и для опытных разработчиков. В конце ученику выдадут сертификат в электронном виде. Он также получит массу опыта, практики, новых знакомств.

Интересует GameDev-направление? Обратите внимание на авторские курсы в Otus!

Также, возможно, вам будет интересен следующий курс:

Источник: otus.ru

Разработка с Unity: Часть 1 редактор Unity

Разработка приложения или игры требует от разработчика знания доступных инструментов и умения ими пользоваться. В данной статье описаны основы работы с редактором Unity. Статья ориентирована на начинающих разработчиков, но, возможно, опытные разработчики найдут для себя что-то новое.

Редактор Unity

Редактор Unity — программный инструмент, который используется для создания 2D и 3D игр, приложений.

Графическая и программная часть редактора периодически обновляются разработчиками, но общие черты графического интерфейса пользователя, функционал и подход к разработке сохраняются.

Рис. 1 Редактор Unity версия 2022.1.23

Окно «Scene»

В окне «Scene» отображается сцена — виртуальный мир, создаваемый пользователем. Пользователь может выбирать, перемещать и редактировать объекты на сцене. На сцену добавляются игровые объекты такие, как персонажи, свет, эффекты, камеры, декорации.

Рис. 2 Окно

Для управления камерой редактора и смены вида существует несколько методов:

Управление стрелками

При помощи стрелок можно перемещать камеру в четырех направлениях.

Стрелка вверх перемещает камеру вперед, стрелка вниз — назад. Стрелки вправо и влево перемещают камеру вправо и влево соответственно.

Рис. 3 Стрелки

Управление мышью и клавиатурой

Наиболее часто применяется.

  • Зажатием ПКМ и перемещением мыши выполняется поворот камеры;
  • Зажатием ПКМ и применением клавиш WASD выполняется перемещение камеры, аналогичное перемещению стрелками. При зажатии Shift скорость перемещения увеличивается;
  • Одновременным зажатием ЛКМ + Alt и перемещением мыши выполняется поворот камеры относительно точки в пространстве;
  • Одновременным зажатием ПКМ + Alt и перемещением мыши выполняется удаление или приближение камеры к точке в пространстве.

Окно «Project»

В окне «Project» отображаются все файлы и папки, которые используются в проекте. Через окно «Project» пользователь может создавать, редактировать, открывать, переименовывать, копировать и удалять файлы.

Рис. 4 Окно

Для добавления файла в проект необходимо нажать ПКМ в окне «Project» во вкладке «Assets», в открывшемся диалоговом окне выбрать пункт «Import New Asset».

Рис. 5 Диалоговое окно

Откроется окно проводника, где выбираются файлы для добавления в проект.

Файлы в проект возможно добавить перетаскиванием из проводника в окно «Project».

Окно «Hierarchy»

В окне «Hierarchy» отображаются все объекты, расположенные на сцене. Через окно «Hierarchy» пользователь может выбирать, удалять, копировать, переименовывать, сортировать и объединять в группы объекты на сцене.

Рис. 6 Окно

Добавление объектов на сцену

Для добавления объекта на сцену необходимо нажать ПКМ в окне «Hierarchy», в открывшемся диалоговом окне выбрать тип объекта. Для примера создан куб (Cube), он расположен во вкладе «3D object».

Группировка объектов и Parenting

Игровые объекты можно группировать. Объект может содержать другие объекты, которые наследуют его свойства такие, как положение в пространстве, вращение и масштаб. При перемещении, вращении или масштабировании объекта, стоящего выше по иерархии, все дочерние объекты буду изменены.

Для связывания объектов необходимо в окне «Hierarchy» перенести один объект на другой, при этом переносимый объект становится дочерним. Для примера создана сфера, которая помещена в дочерние объекты куба. При перемещении куба сфера перемещалась вместе с ним.

Окно «Inspector»

В окне «Inspector» отображаются все свойства выбранного объекта. Пользователь может просматривать и редактировать параметры объектов на сцене, компонентов, материалов и файлов в проекте.

Рис. 7 Окно

На рисунке 7 окно пустое. Для отображения свойств необходимо выбрать объект. Был выбран ранее добавленный в проект текстовый документ «TestFile.txt». В окне «Inspector» отобразилась информация о файле и его содержимое.

Рис. 8 Информация о TestFile.txt

Редактирование окон

Редактор Unity позволяет имеет возможность гибкой настройки интерфейса. Пользователь может изменять размеры, ориентацию и положение окон, прикреплять их к панелям, создавать вкладки.

Сохранение и загрузка настроек окон

Пользователь может сохранить и загрузить расположение и параметры окон при помощи выпадающего списка «Select editor layout», находящегося в правом верхнем углу редактора.

Открытие окон

В верхней панели во вкладке «Window» пользователь может выбрать окно, которое необходимо открыть. Для примера было добавлено окно «Inspector»

Разворачивание окон

Пользователь может развернуть окно на всю область редактора, для этого необходимо открыть панель параметров окна и выбрать пункт «Maximize». Аналогичным образом окно возвращается к прежнему размеру.

Ссылки

  1. Редактор Unity
  2. Окно «Scene»
  3. Навигация по сцене
  4. Окно «Project»
  5. Окно «Hierarchy»

Источник: habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru