TGViewer
JDC DevLog 🕳 JDC DevLog 🕳 @jeusdev · 51 subscribers
Post #283 415
Вы используете using не по максимуму!

Кейворд-директива using используется почти во всех скриптах при работе с Unity. Я провел небольшой резерч на эту тему и приведу вам примеры использования, о которых вы могли не знать или знали не всё:

1️⃣ Классический пример - импорт пространства имен:

Это позволяет использовать классы и методы из других пространств имен без указания полного пути (Например без using пришлось бы писать UnityEngine.Debug.Log() вместо Debug.Log())
using UnityEngine;

При создании скрипта Unity (в зависимости от версии) добавляет нужные неймспейсы - UnityEngine, System и (в старых версиях) System.Collections.


2️⃣ using для работы с ресурсами (IDisposable):

Обеспечивает автоматическое освобождение ресурсов (например, файловых потоков) после использования
using (StreamReader reader = new StreamReader("file.txt")) {
string content = reader.ReadToEnd();
} // reader.Dispose() вызывается автоматически

❕Это помогает избежать утечек памяти и висящих сетевых подключений. Вызов Dispose() гарантирован даже при исключениях.

Больше про IDisposable:
Это интерфейс, который требует реализации метода Dispose(). Его задача — освободить ресурсы, когда объект больше не нужен
public class FileReader : IDisposable {
private StreamReader _reader;
public FileReader(string path) { _reader = new StreamReader(path); }
public void Dispose() {
_reader?.Dispose(); // Закрываем файл
Console.WriteLine("Ресурсы освобождены!");
}
}

Оператор using автоматически вызывает Dispose() при выходе из блока, даже если произошла ошибка. Вот пример кода чуть выше, только без using:
StreamReader reader = null;
try {
reader = new StreamReader("data.txt");
string content = reader.ReadToEnd();
Console.WriteLine(content);
}
finally {
reader?.Dispose(); // Гарантированное освобождение
}


❕Некоторые Unity-объекты (например, Texture) используют нативную память, но не реализуют IDisposable. Вместо этого у них есть:
Destroy() – для удаления игровых объектов
Resources.UnloadUnusedAssets() – для принудительной очистки
❌ Поэтому если объект не реализует IDisposable, то using не сработает ❌


3️⃣ Статический импорт:

Статический импорт позволяет использовать статические методы, константы и свойства без указания имени класса. Это особенно полезно там, где часто применяются утилиты всяческие:
using static UnityEngine.Mathf;
float x = Clamp(5, 0, 10); // Вместо Mathf.Clamp()

❌ Но если импортировать два класса с одинаковыми методами, будет ошибка.
Также - работает только для статического контекста ❌
using static UnityEngine.GameObject;  //GameObject - не статический



4️⃣ Псевдонимы:

Это способ дать кастомное имя неймспейсу в коде - например, заменить коротким длинное название пространства имен или типа:
// using Псевдоним = Полное.Имя.Пространства;
using StringList = System.Collections.Generic.List<string>;
StringList names = new StringList();


❕Это помогает 1) упростить код, если имя получается слишком длинное, 2) решить конфликт, если классы называются одинаково, 3) улучшить читабельность в крупных проектах.

Более того:
В новых версиях C# можно задавать глобальные псевдонимы, которые работают во всём проекте:
global using Vec3 = UnityEngine.Vector3;

Теперь Vec3 можно использовать в любом файле проекта без повторного объявления.


✅ Вот, вы узнали про using больше! И теперь вы легко узнаете кто заворачивает поток вашего сна в диспозабл. Используйте эти фичи уместно и аккуратно, тогда и все чисто будет 🤝
#Интересное
  • 🔥 10
  • ⚡ 1
  • 👎 1
  • 🏆 1
More from @jeusdev
  1. Jul 22, 2026video post
  2. May 12, 2026я дождался сабнатики 2 на 825 день
  3. May 9, 2026⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⣰⣆ ⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⣸⡇⠄⠄⠄⠄⠄⠄⠄⠄⣰⡿⢿⣆ ⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⢰⡟⠄⠄⠄⠄⠄⠄⠄⠄⣠⡿⠁⠈⢿⣆ ⠄⠄⠄⠄⠄⠄⠄⠄⠄⢠⡟⠄…
  4. Apr 1, 2026У вас все списки белые
  5. Dec 31, 2025HNY
  6. Dec 22, 2025первый стикерпак заполнили
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →