 
    Операции в 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#
          автоматически преобразует один тип в другой, но в некоторых случаях
          это может привести к неожиданным результатам или даже ошибке
          компиляции. Лучше заранее убедиться, что оба значения одного типа —
          или привести их явно.