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