Если камера обновляется не в том цикле, картинка начинает дергаться, и даже хорошая физика выглядит плохо.
В этом гайде:
• Показываем, почему появляется дрожание при разных циклах обновления;
• Переносим камеру в LateUpdate, чтобы она читала финальную позицию цели;
• Добавляем SmoothDamp и Interpolate для мягкого и стабильного слежения.
Настрой этот пайплайн один раз, и камера сразу станет заметно спокойнее в геймплее.
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
Храним секреты в Windows Credential Manager!
Пароли и токены часто кладут прямо в
Такой «плэйнтекст» рискует попасть в репозиторий и логи. Делаем цивильно — через Credential Manager.
Секрет положили — теперь читаем, не светя в коде:
🔥 Теперь твои API-ключи и пароли живут в зашифрованном хранилище Windows, а не в открытом конфиге!
➡️ C# Ready | #практика
Пароли и токены часто кладут прямо в
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("Запись не найдена");Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤8👍5👎1
В этой статье:
• Как создать проект WPF в Visual Studio и запустить первое окно.
• Как добавлять элементы интерфейса и обрабатывать базовые события.
• Как собрать приложение и подготовить его к запуску/публикации.🔊 Продолжай читать на Microsoft Learn!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤5🔥3
Как перестать собирать строки через `+` в цикле?
Когда мы складываем строки в цикле, кажется, что всё просто:
Но строки в C# неизменяемые — каждая такая операция создаёт новую строку. В итоге на больших списках получаем лишние аллокации, нагрузку на GC и падение скорости.
Если нужно просто склеить коллекцию значений — используем
А если в процессе сборки есть условия, форматирование, много
🔥 Итог: для простого “склеить список” —
➡️ C# Ready | #совет
Когда мы складываем строки в цикле, кажется, что всё просто:
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, и код выглядит как правило, а не ручная сборка строки.Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍7🔥3😁1
На картинке — схема: TCP handshake, затем TLS/SSL с проверкой сертификата, обменом ключами (асимметричное шифрование) и созданием session key, после чего идёт передача данных уже по симметричному шифрованию.
Сохрани, чтобы быстро вспоминать этапы HTTPS без погружения в документацию
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍8🔥6
В этой шпаргалке — ключевые приёмы работы с Path: как собирать корректные пути через Combine, вытаскивать имя файла и расширение, менять их на лету и получать аккуратные абсолютные пути, которые одинаково уверенно живут и под Windows, и под Linux.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27❤11👍6🤝3
В этой статье:
• Как подключить генерацию QR-кодов для приложений-аутентификаторов.• Как настроить TOTP-аутентификацию и связать её с Identity.• Как обновить страницы и логику входа для работы с 2FA и recovery codes 🔊 Продолжай читать на Microsoft Learn!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍4🔥3
Почему Any() читается лучше, чем Count() > 0?
Когда в коде нужно просто проверить, есть ли элементы, запись через
Гораздо проще читается такой вариант:
🔥 Маленькая замена, а код становится понятнее уже с первого взгляда.
➡️ C# Ready | #совет
Когда в коде нужно просто проверить, есть ли элементы, запись через
Count() > 0 выглядит чуть тяжелее, чем нужно. По ней как будто мы реально хотим что-то посчитать, хотя на деле нас интересует только сам факт: пусто или нет.Гораздо проще читается такой вариант:
if (users.Any())
{
SendPromo(users);
}
Any() сразу передаёт намерение: “есть ли хоть кто-то”. Без лишнего шума и без ощущения, что мы решаем другую задачу.Please open Telegram to view this post
VIEW IN TELEGRAM
❤23👍7🔥4😁1
Span<T> - работаем с памятью без лишних аллокаций!
Иногда нужно обработать часть массива, строки или буфера без создания новых объектов в памяти.
Раньше для этого часто приходилось копировать данные в новый массив:
Такой код выглядит привычно, но каждый
В C# можно использовать
🔥 В итоге вместо создания временных массивов ты работаешь с уже существующими данными напрямую
➡️ C# Ready | #практика
Иногда нужно обработать часть массива, строки или буфера без создания новых объектов в памяти.
Раньше для этого часто приходилось копировать данные в новый массив:
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> создает представление на участок памяти, а не новый массив. То есть ты работаешь с нужной частью данных без лишних выделений памяти.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍6❤4
This media is not supported in your browser
VIEW IN TELEGRAM
Этот репозиторий настоящий мета-каталог по самым разным технологиям. Внутри собраны тысячи подборок с библиотеками, инструментами, статьями и гайдами по программированию. Отдельные разделы посвящены языкам C# и C++, где можно найти библиотеки, фреймворки, проекты и обучающие ресурсы.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤7🔥5
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26❤5👍4🤝1