Akrus Games | Unity
2.95K subscribers
408 photos
89 videos
11 files
351 links
Самые годные лайфхаки по unity c#

Сотрудничество/реклама/помощь @Akrus001
Download Telegram
⚡️ Хочешь разобраться в C# и не путаться в делегатах, LINQ и async/await?

📘 Metanit — один из самых понятных и полных гидов по C# — идеально для Unity-разработчиков.

Он простым языком объясняет даже сложные темы, постоянно обновляется (уже есть материалы по C# 12) и отлично работает как учебник, так и как справочник.

🔥Чёткая структура помогает быстро находить нужные темы — от ООП и коллекций до паттернов проектирования. Особенно полезен Unity-разработчикам: можно легко прокачать понимание делегатов, async/await для работы с API и классических паттернов вроде Singleton или State.

🔗 Смотри сам: ссылка

🔔 Подпишись — делюсь только тем, что реально экономит время и нервы

👉Akrus Games | Unity

#unity #csharp #программирование #gamedev #советы
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥11
🎯 Цель — 200 подписчиков!

Друзья, как только наш канал набирает 200 подписчиков, я выпускаю Telegram-бота, который будет вашим карманным помощником по Unity и C#!

💡 В боте вы найдёте:
— Самые полезные фишки по Unity
— Советы по C#
— Подборки курсов, книг и видео
— Шпаргалки и практика

👨‍💻 Всё собрано и удобно структурировано — чтобы учиться и развиваться было проще!

📲 Делитесь каналом с друзьями — и бот не заставит себя ждать.
Погнали к цели! 🚀

👉Akrus Games | Unity

#unity #csharp #telegramбот #gamedev #программирование
Please open Telegram to view this post
VIEW IN TELEGRAM
42
public record Player(string Name, int Score);

var p1 = new Player("Alex", 10);
var p2 = new Player("Alex", 10);

Console.WriteLine(p1 == p2);
3
⚡️ 5 C# фишек, которые прокачают твой Unity-код

Сохрани — используешь каждый день, если хочешь писать чисто и современно.

1️⃣ ?? и ??=

playerName = inputName ?? "Без имени";
list ??= new List<int>();


📌 ?? — дефолт при null, ??= — инициализация, если объект ещё не создан.

В Unity:
• Подходит для ленивой инициализации компонентов
• Отлично работает с GetComponent() и кастомными системами DI

2️⃣ switch expression

string label = state switch {
GameState.Menu => "В меню",
GameState.Playing => "Играем",
_ => "?"
};


📌 Читается лучше, чем громоздкий switch { case }, особенно в UI-слоях и инспекторных тулзах.

В Unity:
• Используй в кастомных инспекторах, отображении состояний, локализации

3️⃣ Интерполяция строк $""

Debug.Log($"Игрок: {playerName}, Очки: {score}");


📌 Быстрее и безопаснее, чем +. Упрощает логи на этапе разработки.

В Unity:
• Используй для логирования, UI-отладчика, вывода инфы в EditorWindow

4️⃣ using var (C# 8+)

using var stream = File.OpenRead(path);


📌 Безопасное использование ресурсов — автоматически закроется, даже при исключении.

В Unity:
• Полезно при работе с файлами, AssetBundle, StreamingAssets
• Работает только в .NET 4.x / Unity с C# 8+

5️⃣ readonly struct и in параметры (бонус)

readonly struct DamageInfo {
public readonly int amount;
public readonly Vector3 direction;
}

void ApplyDamage(in DamageInfo info) { ... }


📌 Меньше копий, больше производительности. Актуально в ECS и при передаче больших структур.

💬 Какие из этих ты уже используешь в Unity?
🔔 Подписывайся — будет ещё про Span<T>, LINQ и новые C# фичи в Unity

👉Akrus Games | Unity
Please open Telegram to view this post
VIEW IN TELEGRAM
7321
IEnumerable<int> Numbers()
{
Console.WriteLine("Start");
yield return 1;
Console.WriteLine("Middle");
yield return 2;
Console.WriteLine("End");
}

foreach (var num in Numbers().Take(1))
{
Console.WriteLine(num);
}
Что выведет код?
Anonymous Quiz
29%
Start 1 Middle 2 End
20%
Start 1 Middle
39%
Start 1
11%
1 2
Forwarded from DevKit Unity
🎉 Розыгрыш сразу 3 исходников🎉

Так как розыгрыш исходника «Симулятор магазина» немного задерживается, мы совместно с каналом Unity Free Projects решили порадовать вас и разыграть сразу три других крутых проекта! 🔥

📅 Итоги через 3 дня в 15:00 по МСК
🏆 3 призовых места

Условия участия:
1️⃣ Подписаться на каналы:
👉 @DevkitUnity
👉 @Unity_free_projects

🚀 Участвуй и получи один из трёх топовых Unity-проектов!
🍀 Всем удачи!
53321
var numbers = new List<int> { 1, 2, 3 };
var query = numbers.Where(n => n > 1);

numbers.Add(4);

foreach (var n in query)
Console.Write(n + " ");
1
653
readonly struct Point
{
public int X { get; }

public Point(int x) => X = x;

public void Mutate()
{
Console.WriteLine(X + 1);
}
}

var p = new Point(5);
p.Mutate();
Вы изучаете python?
Anonymous Poll
63%
нет 👎
29%
да 👍
8%
что это? 🤔
🔥1
list_ = []
for i in range(10):
list_.append("8")
print(len(list_))
111
Что произойдет?
Anonymous Quiz
46%
10
25%
8
6%
9
23%
не знаю питон :(
43🔥21
4🔥32
Akrus Games | Unity
Какой хотите следующий пост?
Набираем 50 голосов и выкладываем пост.

P.S: накидайте сюда 20 🔥
🔥187😁3
⚡️ 5 фишек Unity и C#, которые используют профи

Сохрани — пригодятся в любом проекте, от прототипа до релиза.

1️⃣ Awake vs Start — не перепутай!

void Awake() {
cache = GetComponent<Renderer>(); // Ранняя инициализация
}

void Start() {
uiManager.Show(); // Уже можно обращаться к другим объектам
}


📌 Awake() вызывается до Start() на всех объектах сразу.
Используй для создания зависимостей и кэширования компонентов.
Start() — для логики, зависящей от других объектов (например, UI, враги, игрок).

2️⃣ Editor-only код с #if UNITY_EDITOR

#if UNITY_EDITOR
Debug.Log("Это увидит только разработчик");
#endif


📌 Всё внутри UNITY_EDITOR не попадёт в билд.
Подходит для:
• Gizmos
• тестов без UNITY_INCLUDE_TESTS
• кастомных тулов

💡 Не забывай: using UnityEditor; — тоже должно быть внутри #if.

3️⃣ [ExecuteInEditMode] — поведение без Play Mode

[ExecuteInEditMode]
public class ScenePreview : MonoBehaviour {
void Update() => Debug.Log("Работает в редакторе");
}


📌 Скрипт работает в Editor, даже если игра не запущена.
Удобно для:
• генерации окружения
• превью анимаций
• редакторов навигации

⚠️ Важно: Update() вызывается даже при изменении инспектора — будь осторожен с производительным кодом.

4️⃣ [SerializedReference] — сериализация полиморфных структур

[SerializeReference]
public List<IUpgrade> upgrades;


📌 Unity хранит информацию о конкретных типах в списке.
Подходит для:
• эффектов
• AI-поведений
• квестовых условий

💡 Работает с интерфейсами, абстрактными классами. Требует настройки PropertyDrawer, если хочешь красивый инспектор.

5️⃣ Debug.DrawRay / DrawLine — вижу, значит работает

Debug.DrawRay(transform.position, transform.forward * 5, Color.red);


📌 Визуализируй логику прямо в сцене:
• патрули
• трассировки
• направление силы / движения

💡 Работает только в Editor или с включённой Gizmos-отладкой.

💬 Какая из этих фишек стала для тебя новой?
🔔 Подписывайся, если хочешь использовать Unity на полную мощность

👉Akrus Games | Unity
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥41
object _sync = new string("lock");
lock (_sync)
{
Console.WriteLine("Locked");
}