2025rc

1. Змінні

Змінні використовуються для зберігання значень різних типів даних.

int x = 5;
float y = 3.14f;
string name = "John";

2. Умовний оператор if

Цей оператор дозволяє виконувати певний блок коду, якщо умова істинна.

if (x > 10)
{
    Console.WriteLine("x більше 10");
}
else
{
    Console.WriteLine("x менше або рівне 10");
}

3. Цикл for

Цикл for дозволяє повторювати блок коду певну кількість разів.

for (int i = 0; i < 5; i++)
{
    Console.WriteLine(i);
}

Цей цикл виведе числа від 0 до 4.

4. Цикл while

Цикл while продовжує виконувати код, поки умова є істинною.

int counter = 0;
while (counter < 5)
{
    Console.WriteLine(counter);
    counter++;
}

5. Масиви

Масиви дозволяють зберігати кілька значень одного типу.

int[] numbers = { 1, 2, 3, 4, 5 };
Console.WriteLine(numbers[2]); // Виведе 3

6. Методи

Методи використовуються для виконання певних операцій, які можуть бути викликані з іншого місця в програмі.

void Greet(string name)
{
    Console.WriteLine($"Привіт, {name}!");
}

Greet("Микола");

7. Конструктори класів

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

class Person
{
    public string Name;
    public int Age;

    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
}

Person p = new Person("Андрій", 30);
Console.WriteLine(p.Name);  // Виведе "Андрій"

8. Оператори порівняння

Ці оператори використовуються для порівняння значень.

int a = 10;
int b = 20;

if (a == b)
{
    Console.WriteLine("a дорівнює b");
}
else if (a > b)
{
    Console.WriteLine("a більше b");
}
else
{
    Console.WriteLine("a менше b");
}

9. Switch

Оператор switch дозволяє вибирати блок коду залежно від значення змінної.

int day = 3;
switch (day)
{
    case 1:
        Console.WriteLine("Понеділок");
        break;
    case 2:
        Console.WriteLine("Вівторок");
        break;
    case 3:
        Console.WriteLine("Середа");
        break;
    default:
        Console.WriteLine("Невірний день");
        break;
}

10. Підготовка до обробки виключень (try-catch)

Це дозволяє обробляти помилки в програмі без її аварійного завершення.

try
{
    int result = 10 / 0; // Це спричинить помилку ділення на нуль
}
catch (DivideByZeroException)
{
    Console.WriteLine("Не можна ділити на нуль!");
}

Ось 10 простих конструкцій програмування для Unity на C# з поясненнями, які допоможуть вам почати роботу в цьому середовищі:

1. MonoBehaviour: базовий клас для скриптів

Всі скрипти в Unity зазвичай успадковуються від класу MonoBehaviour. Це дозволяє використовувати спеціальні методи Unity для керування поведінкою об’єкта.

using UnityEngine;

public class MyScript : MonoBehaviour
{
    void Start()
    {
        // Цей метод викликається один раз при запуску гри
        Debug.Log("Гра почалася!");
    }

    void Update()
    {
        // Цей метод викликається кожен кадр
        transform.Rotate(0, 1, 0);
    }
}

2. Переміщення об’єкта

Ви можете змінювати позицію об’єкта в світі за допомогою transform.

using UnityEngine;

public class MoveObject : MonoBehaviour
{
    void Update()
    {
        // Переміщаємо об'єкт вправо по осі X
        transform.Translate(Vector3.right * Time.deltaTime);
    }
}

3. Використання фізики (Rigidbody)

Якщо об’єкт має фізику, ви можете використовувати компонент Rigidbody для застосування сил або руху.

using UnityEngine;

public class AddForce : MonoBehaviour
{
    Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            rb.AddForce(Vector3.up * 5, ForceMode.Impulse);
        }
    }
}

4. Обробка введення користувача (Input)

Unity надає потужний інструмент для обробки вводу з клавіатури, миші чи геймпада.

using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    void Update()
    {
        float horizontal = Input.GetAxis("Horizontal");
        float vertical = Input.GetAxis("Vertical");

        transform.Translate(new Vector3(horizontal, 0, vertical) * Time.deltaTime);
    }
}

5. Використання подій для обробки колізій (OnCollision)

Unity дозволяє визначити поведінку об’єктів при зіткненнях за допомогою методів OnCollisionEnter, OnCollisionStay, OnCollisionExit.

using UnityEngine;

public class CollisionExample : MonoBehaviour
{
    void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.CompareTag("Player"))
        {
            Debug.Log("Сталося зіткнення з гравцем!");
        }
    }
}

6. Визначення тегів

В Unity можна призначити тег об’єкту і використовувати його для порівняння.

using UnityEngine;

public class CheckTag : MonoBehaviour
{
    void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Enemy"))
        {
            Debug.Log("Ви зіткнулися з ворогом!");
        }
    }
}

7. Використання анімацій

Анімації можна керувати через компонент Animator.

using UnityEngine;

public class AnimationControl : MonoBehaviour
{
    Animator anim;

    void Start()
    {
        anim = GetComponent<Animator>();
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.W))
        {
            anim.SetTrigger("Walk");
        }
    }
}

8. Завантаження сцени

Для перемикання між сценами в Unity використовується клас SceneManager.

using UnityEngine;
using UnityEngine.SceneManagement;

public class SceneSwitcher : MonoBehaviour
{
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Return))
        {
            SceneManager.LoadScene("NextScene");
        }
    }
}

9. Керування камерою (Camera)

В Unity ви можете змінювати положення камери для створення ефектів або відстеження об’єктів.

using UnityEngine;

public class CameraFollow : MonoBehaviour
{
    public Transform player;

    void Update()
    {
        transform.position = new Vector3(player.position.x, transform.position.y, player.position.z - 10);
    }
}

10. Просте спаунування об’єктів

Щоб створити об’єкт в грі, можна використати метод Instantiate.

using UnityEngine;

public class ObjectSpawner : MonoBehaviour
{
    public GameObject prefab;

    void Start()
    {
        Instantiate(prefab, new Vector3(0, 1, 0), Quaternion.identity);
    }
}