Game design. Ігровий об’єкт в Unity. Скрипти С#

Содержание

Слайд 2

Повторення Що таке ігровий об’єкт в Unity? Ігрові об’єкти - це

Повторення

Що таке ігровий об’єкт в Unity?

Ігрові об’єкти - це контейнери. Порожня

коробка, яка може містити всередині різні елементи, такі як острів з зааданими тінями або фізично коректний автомобіль.
Слайд 3

За що відповідають компоненти Collider? Повторення Collider відповідають за взаємодію ігрових

За що відповідають компоненти Collider?

Повторення

Collider відповідають за взаємодію ігрових об’єктів. Ці

компоненти, фактично, «матеріалізують» об’єкти.
Слайд 4

Повторення Як задати коефіцієнт пружності та силу опору(тертя)? Ці параметри задаються

Повторення

Як задати коефіцієнт пружності та силу опору(тертя)?

Ці параметри задаються за рахунок

присвоєння ігровим об’єктам параметрів фізичного матеріалу Physical Material 2D.
Слайд 5

Скрипти С# Якщо діти на попередньому занятті встигли попрацювати зі скриптами

Скрипти С#

Якщо діти на попередньому занятті встигли попрацювати зі скриптами –

то скрийте слайди 5-14 включно
Слайд 6

Відкрийте проект з минулого уроку. Скрипти С# Створіть горизонтальну поверхню, по

Відкрийте проект з минулого уроку.

Скрипти С#

Створіть горизонтальну поверхню, по якій зможе

рухатись ігровий об’єкт. Та задайте всі необхідні колаедри.
Слайд 7

Створимо скрипт. Для цього перейдемо в папку Scripts->пкм-> Create->C# Script, задайте назву Скрипта: Скрипти С#

Створимо скрипт. Для цього перейдемо в папку Scripts->пкм-> Create->C# Script, задайте

назву Скрипта:

Скрипти С#

Слайд 8

Відкрийте скрипт (подвійний клік на файлі): Скрипти С# using System.Collections; using

Відкрийте скрипт (подвійний клік на файлі):

Скрипти С#

using System.Collections; using System.Collections.Generic; using UnityEngine; public class Beam_1 : MonoBehaviour {     // Use this for initialization     void Start () {              }          // Update is called once per frame     void Update () {              } }

Слайд 9

Скрипт визначає тільки план компонента, а отже, його код не буде

Скрипт визначає тільки план компонента, а отже, його код не буде

активований до тих пір, доки екземпляр скрипта не буде приєднаний до ігрового об'єкту. Ви можете прикріпити скрипт перетягуванням його із Assets на ігровий об'єкт в панелі Hierarchy або через вікно Inspector обраного ігрового об'єкта.

Скрипти С#

Слайд 10

Послідовність дій при роботі зі змінними: Це комірка памяті в якій

Послідовність дій при роботі зі змінними:

Це комірка памяті в якій зберігаються

дані.

Змінна

1. int x; - оголошення (декларування);

2. x = 3; - присвоєння (ініціалізація).

Скрипти С#

Слайд 11

Типи даних С# Скрипти С#

Типи даних С#

Скрипти С#

Слайд 12

Створимо public змінну, що зберігатиме в собі швидкість зміщення об’єкту: Скрипти

Створимо public змінну, що зберігатиме в собі швидкість зміщення об’єкту:

Скрипти С#

public

float speed;

Замінемо функцію void Update() на void FixedUpdate():

void FixedUpdate () {
/*~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
*****************Виконуваний код********************
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ */
}

Слайд 13

Скрипти С# Задамо зміщення об’єкта вліво – вправо при натисканні клавіш

Скрипти С#

Задамо зміщення об’єкта вліво – вправо при натисканні клавіш А,

D на клавіатурі. Для цього скористаємось класом UnityEngine – Input.

Input.GetKey(KeyCode.A) -

Повертає true, поки натиснута кнопка А

Input.GetKey(KeyCode.D) -

Повертає true, поки натиснута кнопка D

Для реалізації вибору між діями, які ми виконуємо при натисненні кнопки, використаємо умовний оператор if-else.

Слайд 14

Щоб задати напрямок переміщення скористаємось структурою Vector 3: Скрипти С# -

Щоб задати напрямок переміщення скористаємось структурою Vector 3:

Скрипти С#

- Ця структура

використовується всередині Unity для передачі 3D-позицій та напрямків. Вона також містить функції для виконання загальних векторних операцій.

Vector3(x, y, z)

x

y

z

Слайд 15

Програма виглядатиме наступним чином: Скрипти С# 0o 180o void FixedUpdate ()

Програма виглядатиме наступним чином:

Скрипти С#

0o

180o

void FixedUpdate ()
{
if (Input.GetKey(KeyCode.A)) {

transform.Translate(-speed, 0, 0);
}
else if (Input.GetKey(KeyCode.D)) {
transform.Translate(speed, 0, 0);
}
else {
transform.Translate(0, 0, 0);
}
}
Слайд 16

Але на даному етапі ми лише задаємо зміщення по координатним осям,

Але на даному етапі ми лише задаємо зміщення по координатним осям,

сам ігровий об’єкт при цьому залишається незмінним.

Скрипти С#

У редакторі Unity ви змінюєте властивості Компонента використовуючи вікно Inspector.

Але властивості компонентів для керування ігровими об'єктами можназмінювати і за допомогою скриптів.

Слайд 17

Завдання Самостійно пропишіть зміщення по осі у. Створіть лабіринт.

Завдання

Самостійно пропишіть зміщення по осі у.
Створіть лабіринт.

Слайд 18

Завдання При створенні гри «Лабіринт» для детектування контакту об’єкта зі стінами

Завдання

При створенні гри «Лабіринт» для детектування контакту об’єкта зі стінами зробіть

наступне:

Задайте стінкам колаедри (Poligon/Box).
Ігровому об’єкту задайте колаедри та Rigidbody 2D.

Слайд 19

Завдання Оскільки напрям руху transform.Translate(Vector3) підвязано до системи координат об’єкта зі

Завдання

Оскільки напрям руху transform.Translate(Vector3) підвязано до системи координат об’єкта зі скриптом,

то при зміні кута нахилу зміняться і напрями.

Forward

Forward

Щоб цього позбутися – слід помістити ігровий об’єкт в порожній об’єкт і скрипт приєднати до нього
Або ж в Inspector-> Rigidbody2D-> Constraints->Freeze Rotation.

Слайд 20

Перша гра В папці Assets, для зручності створимо папки, в яких

Перша гра

В папці Assets, для зручності створимо папки, в яких будуть

зберігатись зображення, скрипти, префаби, тощо..
Слайд 21

Перша гра Додайте ваші ігрові об’єкти (можна з минулого заняття), в

Перша гра

Додайте ваші ігрові об’єкти (можна з минулого заняття), в наведеному

прикладі – це булавка та кулька:
Слайд 22

Перша гра Задайте ігровим об’єктам основні фізичні параметри Physics 2D >

Перша гра

Задайте ігровим об’єктам основні фізичні параметри Physics 2D > Rigidbody2D

Physics 2D > Polygon Collider(Circle). Запустіть і перевірте:
Слайд 23

Перша гра Нам слід змінити налаштування Rigidbody2D, щоб об’єкти не падали

Перша гра

Нам слід змінити налаштування Rigidbody2D, щоб об’єкти не падали під

дією гравітації, а керувались скриптами:
Слайд 24

Перша гра В папці Scripts створюємо 2 скрити для кульки та

Перша гра

В папці Scripts створюємо 2 скрити для кульки та голки:

Нам

треба, щоб скрипт Baloon задавав повільне падіння кульки згори вниз, а Needle задавав зміщення голки вліво – вправо.
Слайд 25

Перша гра В скрипті Baloon задамо рublic змінну, що контролюватиме швидкість

Перша гра

В скрипті Baloon задамо рublic змінну, що контролюватиме швидкість падіння:

public float Fallspeed;

Тіло програми змінимо на void FixedUpdate () і додамо в нього зміну положення по осі у:

void FixedUpdate()
{
transform.Translate(0, -Fallspeed, 0);
}

Слайд 26

Перша гра Метод transform відповідає за зміну відповідних параметрів: Зокрема transform.Translate

Перша гра

Метод transform відповідає за зміну відповідних параметрів:

Зокрема transform.Translate переносить об’єкт

в заданому напрямі на задану кількість пікселів, а оскільки метод FixedUpdate викликається кожного фрейму, то фактично – це зміщення за фрейм

1 frame

2 frame

3 frame

4 frame

Слайд 27

Перша гра В скрипті Needle задамо зміщення (transform.Translate ) по натисненні

Перша гра

В скрипті Needle задамо зміщення (transform.Translate ) по натисненні кнопок

A, D, для цього слід використати умовний оператор if - else:
Слайд 28

Перша гра В скрипті дана конструкція виглядатиме так (не забудьте проініціалізувати

Перша гра

В скрипті дана конструкція виглядатиме так (не забудьте проініціалізувати змінну

public float speed до void Setup()):

if (Input.GetKey(KeyCode.A))
{
transform.Translate(-speed, 0, 0);
}
else if (Input.GetKey(KeyCode.D))
{
transform.Translate(speed, 0, 0);
}
else
{
transform.Translate(0, 0, 0);
}

Слайд 29

Перша гра Під’єднайте скрипти до відповідних об’єктів:

Перша гра

Під’єднайте скрипти до відповідних об’єктів: