🏠 Главная

Операции в Юнити

Операции в C# — это способ работать с данными: прибавлять очки, сравнивать скорость, проверять, на земле ли игрок, и многое другое. Без них скрипты были бы просто набором переменных без действия.

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

В этом разделе мы покажем основные типы операций, которые чаще всего встречаются в Unity. Всё будет просто, с примерами и объяснением, зачем они нужны.

📝 Операции присваивания

Оператор Что делает
= Присваивает значение переменной
+= Прибавляет значение к переменной и сохраняет результат
-= Вычитает значение из переменной и сохраняет результат
*= Умножает с переменной и сохраняет результат
/= Делит переменную и сохраняет результат
%= Сохраняет остаток от деления переменной

  using UnityEngine;
  public class CSharpScript : MonoBehaviour
{
    int health = 10;       // Здоровье персонажа
    int damage = 1;        // Урон, который наносится
    float speed = 5f;      // Скорость персонажа
    string color;          // Цвет объекта (пока не задан)
    int score = 0;         // Счёт игрока

    // Start вызывается один раз при запуске объекта
    void Start()
    {
        // Уменьшаем здоровье на урон (health = health - damage;)
        health -= damage;

        // Увеличиваем скорость в 2 раза: (speed = speed * 2;)
        speed *= 2f;

        // Прибавляем к очкам 10 (score = score +10;)
        score += 10;

        // Делим скорость на 2 (speed = speed / 2;)
        speed /= 2f;

        // Присваиваем цвет
        color = "red";
    }

    // Update вызывается каждый кадр
    void Update()
    {
        // Создаём копию цвета
        string firstColor = color;

        // Уменьшаем очки на 3 (сокращённое вычитание)
        score -= 3;

        // Умножаем здоровье на 2 (сокращённая операция)
        health *= 2;
    }
}

  

➕ Арифметические операции

Оператор Что делает
+ Сложение
- Вычитание
* Умножение
/ Деление
% Остаток от деления

using UnityEngine;

public class CSharpScript : MonoBehaviour
{
    int a = 10;
    int b = 3;
    float speed = 5.5f;
    float time = 2f;

    int remainder;  // Объявлена переменная для хранения остатка от деления
    int quotient;   // Объявлена переменная для хранения результата деления

    // Start вызывается один раз при запуске объекта
    void Start()
    {
        int sum = a + b;            // Сложение: 10 + 3 = 13
        int diff = a - b;           // Вычитание: 10 - 3 = 7
        int product = a * b;        // Умножение: 10 * 3 = 30

        quotient = a / b;           // Целочисленное деление: 10 / 3 = 3
        remainder = a % b;          // Остаток от деления: 10 % 3 = 1

        float speedPerSecond = speed * time;  // Умножение с float: 5.5 * 2 = 11.0
        float averageSpeed = speed / time;    // Деление с float: 5.5 / 2 = 2.75
    }

    // Update вызывается каждый кадр
    void Update()
    {
        
    }
}

🔍 Операции сравнения

Оператор Что делает
== Проверяет, равны ли значения?
!= Проверяет, не равны ли значения?
> Больше?
< Меньше?
>= Больше или равно?
<= Меньше или равно?

using UnityEngine;

public class CSharpScript : MonoBehaviour
{
    int score = 10;
    int highScore = 15;

    float speed = 5f;
    float maxSpeed = 5f;

    bool isEqual;
    bool isFaster;

    // Start вызывается один раз при запуске объекта
    void Start()
    {
        isEqual = score == highScore;   // false — очки не равны
        isFaster = speed > maxSpeed;    // false — не быстрее

        bool slowedDown = speed < maxSpeed;  // false — скорость равна максимальной
        bool atLimit = speed >= maxSpeed;    // true — скорость равна или больше
    }

    // Update вызывается каждый кадр
    void Update()
    {
      
    }
}

💡Операторы сравнения чаще всего используются внутри условий — например, чтобы проверить, набрал ли игрок нужное количество очков или достиг ли цели. Мы подробнее разберём условия в следующем уроке.

🔗 Логические операции

Оператор Что делает
&& И — результат true, только если оба выражения true
|| ИЛИ — результат true, если хотя бы одно из условий является true
! НЕ — логическое отрицание (превращает true в false и наоборот)

using UnityEngine;

public class CSharpScript : MonoBehaviour
{
    int a = 5;
    int b = 10;
    int c = 5;

    bool resultAnd;
    bool resultOr;
    bool resultNot;

    // Start вызывается один раз при запуске объекта
    void Start()
    {
        // Проверяем: равны ли a и c → true
        // и одновременно: больше ли b чем 5 → true
        resultAnd = (a == c) && (b > 5);   // true && true → true

        // Проверяем: меньше ли a чем 3 → false
        // или равен ли b 10 → true
        resultOr = (a < 3) || (b == 10);   // false || true → true

        // Отрицаем результат сравнения
        resultNot = !(a > b);             // !(false) → true
    }

    // Update вызывается каждый кадр
    void Update()
    {

    }
}

💡 Будьте осторожны при операциях с переменными разных типов (например, int и float). Иногда C# автоматически преобразует один тип в другой, но в некоторых случаях это может привести к неожиданным результатам или даже ошибке компиляции. Лучше заранее убедиться, что оба значения одного типа — или привести их явно.