C# Ready | Unity
10.5K subscribers
1.5K photos
84 videos
746 links
Авторский канал по разработке на C# и Unity.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Cотрудничество: @energy_c

РКН: https://clck.ru/3SBaT3
Download Telegram
📱 LateUpdate: камера без дрожания в движении!

Если камера обновляется не в том цикле, картинка начинает дергаться, и даже хорошая физика выглядит плохо.

В этом гайде:

• Показываем, почему появляется дрожание при разных циклах обновления;

• Переносим камеру в LateUpdate, чтобы она читала финальную позицию цели;

• Добавляем SmoothDamp и Interpolate для мягкого и стабильного слежения.


Настрой этот пайплайн один раз, и камера сразу станет заметно спокойнее в геймплее.

➡️ C# Ready | #unity
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍9❤6🤝6👎1
❤30🔥14👍2
Храним секреты в Windows Credential Manager!

Пароли и токены часто кладут прямо в appsettings.json — небезопасно, да и коммитить стыдно:
string dbPassword = "P@ssw0rd";   // лежит в файле — легко утечёт


Такой «плэйнтекст» рискует попасть в репозиторий и логи. Делаем цивильно — через Credential Manager.
using CredentialManagement;       // nuget: CredentialManagement

// создаём источник
using var cred = new Credential
{
Target = "MyApp:DbPassword", // уникальный ключ
Password = "S3cureP@ss!", // сам секрет
PersistanceType = PersistanceType.LocalComputer
};
cred.Save(); // безопасно сохранили


Секрет положили — теперь читаем, не светя в коде:
using var read = new Credential { Target = "MyApp:DbPassword" };
if (read.Load())
Console.WriteLine("Секрет: " + read.Password);
else
Console.WriteLine("Запись не найдена");


🔥 Теперь твои API-ключи и пароли живут в зашифрованном хранилище Windows, а не в открытом конфиге!

➡️ C# Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤8👍5👎1
☕️ Нашёл полезный материал на Microsoft Learn — быстрый старт по созданию WPF-приложения!

В этой статье:
• Как создать проект WPF в Visual Studio и запустить первое окно.
• Как добавлять элементы интерфейса и обрабатывать базовые события.
• Как собрать приложение и подготовить его к запуску/публикации.


🔊 Продолжай читать на Microsoft Learn!


➡️ C# Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤5🔥3
Как перестать собирать строки через `+` в цикле?

Когда мы складываем строки в цикле, кажется, что всё просто: text += ....
Но строки в C# неизменяемые — каждая такая операция создаёт новую строку. В итоге на больших списках получаем лишние аллокации, нагрузку на GC и падение скорости.

Если нужно просто склеить коллекцию значений — используем string.Join:
var text = string.Join(", ", names);


А если в процессе сборки есть условия, форматирование, много Append — берём StringBuilder и собираем строку без постоянного пересоздания:
var sb = new StringBuilder();
sb.AppendLine(...);
var text = sb.ToString();


🔥 Итог: для простого “склеить список” — string.Join, для сложной сборки — StringBuilder. Меньше мусора в памяти, меньше нагрузки на GC, и код выглядит как правило, а не ручная сборка строки.

➡️ C# Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍7🔥3😁1
📂 Шпаргалка по HTTPS — как устанавливается защищённое соединение!

На картинке — схема: TCP handshake, затем TLS/SSL с проверкой сертификата, обменом ключами (асимметричное шифрование) и созданием session key, после чего идёт передача данных уже по симметричному шифрованию.

Сохрани, чтобы быстро вспоминать этапы HTTPS без погружения в документацию

➡️ C# Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍8🔥6
👩‍💻 Понятные пути без боя с слэшами

В этой шпаргалке — ключевые приёмы работы с Path: как собирать корректные пути через Combine, вытаскивать имя файла и расширение, менять их на лету и получать аккуратные абсолютные пути, которые одинаково уверенно живут и под Windows, и под Linux.

➡️ C# Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27❤11👍6🤝3
❤️ Нашёл полезный материал на Microsoft Learn — пошаговый гайд по добавлению QR-кодов для 2FA в Blazor WebAssembly с Identity!

В этой статье:
• Как подключить генерацию QR-кодов для приложений-аутентификаторов.
• Как настроить TOTP-аутентификацию и связать её с Identity.
• Как обновить страницы и логику входа для работы с 2FA и recovery codes

🔊 Продолжай читать на Microsoft Learn!


➡️ C# Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍4🔥3
Почему Any() читается лучше, чем Count() > 0?

Когда в коде нужно просто проверить, есть ли элементы, запись через Count() > 0 выглядит чуть тяжелее, чем нужно. По ней как будто мы реально хотим что-то посчитать, хотя на деле нас интересует только сам факт: пусто или нет.

Гораздо проще читается такой вариант:
if (users.Any())
{
SendPromo(users);
}


Any() сразу передаёт намерение: “есть ли хоть кто-то”. Без лишнего шума и без ощущения, что мы решаем другую задачу.

🔥 Маленькая замена, а код становится понятнее уже с первого взгляда.

➡️ C# Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
❤23👍7🔥4😁1
🔥13👍8❤5😁3
Span<T> - работаем с памятью без лишних аллокаций!

Иногда нужно обработать часть массива, строки или буфера без создания новых объектов в памяти.

Раньше для этого часто приходилось копировать данные в новый массив:
int[] numbers = { 1, 2, 3, 4, 5, 6 };

int[] slice = numbers.Skip(2).Take(3).ToArray();

foreach (var n in slice)
Console.WriteLine(n);

Такой код выглядит привычно, но каждый ToArray() создает новый массив в памяти. Если таких операций много, появляются лишние аллокации и нагрузка на GC.

В C# можно использовать Span<T>, чтобы работать с частью данных без копирования:
int[] numbers = { 1, 2, 3, 4, 5, 6 };

Span<int> slice = numbers.AsSpan(2, 3);

foreach (var n in slice)
Console.WriteLine(n);

Span<T> создает представление на участок памяти, а не новый массив. То есть ты работаешь с нужной частью данных без лишних выделений памяти.

🔥 В итоге вместо создания временных массивов ты работаешь с уже существующими данными напрямую

➡️ C# Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍6❤4
This media is not supported in your browser
VIEW IN TELEGRAM
☕️ Ultimate Awesome — огромная подборка с ресурсам!

Этот репозиторий настоящий мета-каталог по самым разным технологиям. Внутри собраны тысячи подборок с библиотеками, инструментами, статьями и гайдами по программированию. Отдельные разделы посвящены языкам C# и C++, где можно найти библиотеки, фреймворки, проекты и обучающие ресурсы.

Оставляю ссылочку: GitHub 📱


➡️ C# Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤7🔥5
👩‍💻 URL и адреса в C# — без ручного парсинга и лишних ошибок!

В этой шпаргалке — как безопасно создавать Uri, валидировать адреса, кодировать параметры, доставать части URL и строить относительные ссылки без хрупкой работы со строками

➡️ C# Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26❤5👍4🤝1