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

Сотрудничество/реклама/помощь @Akrus001
Download Telegram
Игра подписчика @ZARKI01

The Unknown Parameter / Неизвестный Параметр

Жанр: Atmospheric survival-horror от первого лица.

Сеттинг: Луна. Вы космонавт, отправленный на поиски пропавшей научной экспедиции.

Что ждёт внутри: Найти можно лишь их трупы... и «это», что за ними охотилось. Забрать образцы и бежать к кораблю под аккомпанемент панических сообщений с луны. Атмосфера одиночества, паники и безысходности в духе классических космических ужасов.

Движок: Unity

Пишу на C#, активно учусь и прототипирую. В планах небольшой, но концентрированный и пугающий опыт.

Следите за развитием! Буду делиться скриншотами, гифками и болью геймдева.

Этот проект я буду делать постепенно, так как ещё пока осваиваю Юнити, и поэтому разработка может длиться от нескольких месяцев.

Тгк - https://t.me/minikraft2010fnaf

#геймдев #индиразработка #хоррор #unity #godotengine #indiegames #indiedev
🔥43😱1
Рисунок подписчика @Gtima_Orion

А я пожелаю всем хорошей недели!
8🔥6🎄3
Сколько вы заработали на геймдеве за этот месяц?🤔
Anonymous Poll
72%
0 руб 💧
8%
от 100 до 500 руб 🤟
2%
от 500 до 2000 руб🎧
18%
больше 2000 руб 💰
63🔥2
⚡️ Unity: шпаргалка по библиотекам в C#

Сохрани эту шпаргалку! Библиотеки — это как суперспособности для твоего кода. Не пиши велосипеды, используй готовые и проверенные решения.

1️⃣ LINQ (Language Integrated Query)

🎯 Для чего: Упрощает работу с коллекциями (массивы, списки). Фильтрация, сортировка, поиск — в одну строку.

💡 Простой пример:
// Найти всех врагов с здоровьем > 50
var strongEnemies = enemiesList.Where(e => e.health > 50);

// Получить список только имён
var names = enemiesList.Select(e => e.name);

📌 using System.Linq; — не забудь эту директиву!

2️⃣ Newtonsoft.Json (JSON.NET)

🎯 Для чего: Самый популярный инструмент для работы с JSON. Сохранение данных настроек, загрузка конфигов с сервера.

💡 Простой пример:
// Сериализация объекта в JSON-строку
string json = JsonConvert.SerializeObject(playerData);

// Обратно из строки в объект
PlayerData loadedData = JsonConvert.DeserializeObject<PlayerData>(json);

📌 Ставь через Package Manager (NuGet) или из Asset Store.

Итог: Освой LINQ — будешь быстро управлять данными. Подключи Newtonsoft.Json — легко работать с сохранениями и API.

📌 Сохрани, чтобы не забыть синтаксис!
💬 Какие библиотеки используешь ты? Делись в комментариях!
🔔 Подпишись — каждый день полезности по C# и Unity!

👉Akrus Games | Unity
8🔥5🎄21
😭
Please open Telegram to view this post
VIEW IN TELEGRAM
1174🤯1
⚡️ Unity: шпаргалка по Collider

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

1️⃣ Примитивные коллайдеры (Box, Sphere, Capsule)

🎯 Идеально для 90% объектов!
Box Collider — стены, ящики, платформы.
Sphere Collider — шары, камни, предметы.
Capsule Collider — персонажи, вертикальные объекты.

💡 Совет: Ставь Is Trigger = true, если объект должен быть сквозным (монетки, зона диалога).

2️⃣ Mesh Collider vs Primitive

Mesh Collider — точное повторение сложной 3D-модели. Тяжелый! Используй только для статичных объектов (например, скала сложной формы).
Primitive Collider — легкий, быстрый. Всегда выбирай его для движущихся объектов.

📌 Важно: В Mesh Collider галочка Convex позволяет сталкиваться с другими Mesh Collider.

3️⃣ 2D коллайдеры (Box Collider 2D, Circle Collider 2D)

• Работают только с другими 2D коллайдерами!
• Нужен Rigidbody 2D для физики.
• Для триггера используй Is Trigger.

💡 Запомни: 2D и 3D коллайдеры никогда не взаимодействуют.

4️⃣ Важные настройки

Material — определяет физические свойства (трение, упругость).
Is Trigger — объект пропускает другие объекты, но генерирует события OnTriggerEnter.
Rigidbody — без него объект будет статичным и не будет реагировать на физическое воздействие.

🔥 Главное правило: Используй самые простые коллайдеры, которые достаточно точно описывают форму объекта. Производительность скажет спасибо!

📌 Сохрани шпаргалку!
💬 Чаще всего используешь Box или Sphere?

👉Akrus Games | Unity
🔥134🎄31
⚡️ Unity: шпаргалка по чистому коду

Сохраняй себе — эти правила сделают твой код читаемым, поддерживаемым и профессиональным.

📝 Именование — это всё

Классы, Методы — с большой буквы: PlayerMovement, CalculateDamage()
переменные, поля — с маленькой буквы: health, isGrounded
CONSTANTS — через подчёркивание: MAX_SPEED
Не используй сокращения: spd , speed

🎯 Принцип единственной ответственности (SRP)

Один класс = одна задача.
PlayerInput → читает ввод.
PlayerMovement → двигает.
PlayerHealth → отвечает за здоровье.

🚫 Избегай магических чисел

Вместо if (distance < 10) пиши:
private float _attackRange = 10f;
if (distance < _attackRange)

🔌 Используй [SerializeField] и приватные поля

[SerializeField] private float _jumpForce;

Так ты скрываешь логику, но оставляешь настройку в Инспекторе.

⚡️ Быстрая инициализация через [SerializeField]

Забудь про public GameObject bullet; и ручное перетаскивание. Помечай поле как [SerializeField] private GameObject _bulletPrefab; и назначай префаб прямо в инспекторе. Это безопаснее и быстрее.

🔄 Кэшируй частые вызовы

Вместо GetComponent<>() в Update:
private Rigidbody _rb;
void Start() { _rb = GetComponent<Rigidbody>(); }

🎮 События (Events) — для связи между скриптами

Система событий делает код независимым.
public static event System.Action OnPlayerDeath;
// Где-то в другом скрипте:
GameManager.OnPlayerDeath += HandlePlayerDeath;

💎 Краткость = профессионализм

Читаемый код > умный код.

💬 Какой главный принцип чистого кода используешь ты?

🔔 Подпишись — больше шпаргалок по C# и Unity уже скоро!

👉Akrus Games | Unity
10🔥6🎄31
@mncrzz_dev написал свой собственный движок на C#.
Первый релиз был сегодня. Даже на раннем этапе реализовано несколько функций стандартных движков. Все работает быстро и четко.
Что реализовано:
1. Создание 3д кубов
2. Передвижение объектов
3. Настройка размера, цвета, позиции через инспектор(там он называется Info)
4. Иерархия, что-то вроде консоли и инспектор.


Я считаю в будущем это будет достойная замена.

Как скачать:
загрузить этот файл. это сдк C#
Скачать следующий файл.

Канал разработчика @breadlabs_dev
🔥7😁432🎄1
Tiny3D.zip
8.3 MB
🔥42🎄2
"Напугайте линуксоида меньше, чем пятью словам"

Я:
7😱4😁21
О, нашел прикольный сайт.
Превращает текст в рукописный.
Думаю будет полезно если в свою локацию в игре захотите добавить записку или письмо.

👉 Забираем здесь
Советую НЕ включать впн, когда заходите на сайт👍
Люди, которые делают домашку с гпт, вы знаете что делать😏
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥102😱2
Unity исполнилось 20 лет!🥳

Поэтому пройдет офицальный джем с 7 по 10 ноября.

🔗 Ссылка

Призы:
Первое место:
Показано в прямом эфире Unity
Лицензии Unity Pro на 1 год (до 5 лицензий на команду)
Эксклюзивная сумка Unity Swag с кепкой Unity, посвящённой 20-летию бренда

Второе место:
Показано в прямом эфире Unity
Лицензии Unity Pro на 1 год (до 5 лицензий на команду)

Третье место:
Показано в прямом эфире Unity
Лицензии Unity Pro на 1 год (до 5 лицензий на команду)

Важное примечание: «Самое креативное использование юбилейных материалов» — это ЕДИНСТВЕННАЯ категория голосования с соответствующими призами.
9🤯3🔥11
Изменяемое окно игры в Unity

Как настроить?
В сборках под ПК (Windows/Mac/Linux) это делается в настройках плеера.

Пошагово:
1. Открой File → Build Settings
2. Выбери платформу (PC)
3. Нажми Player Settings
4. В разделе Resolution and Presentation:
- Default Is Full Screen — сними галочку
- Fullscreen Mode — выбери "Windowed"
- Resizable Window — отметь галочку (доступно для Windows/Mac)

Важные нюансы:
• Размер окна при старте задаётся в полях Default Screen Width/Height
• Игрок может менять размер перетаскиванием краёв окна
• В коде можно отслеживать изменение размера:

void Update()
{
if (Screen.width != lastWidth || Screen.height != lastHeight)
{
// Пересчитать интерфейс или камеру
UpdateLayout();
lastWidth = Screen.width;
lastHeight = Screen.height;
}
}


Что проверить:
- Интерфейс (UI) должен адаптироваться под разные разрешения
- Камера может требовать перенастройки при изменении пропорций
- Для Windows убедись, что в Target Platform выбрана версия с DX11/OpenGL

💡 Используй для: удобства тестирования, игр с оконным режимом, инструментов разработки.

Советую прочитать пост про настройку Canvas

#Unity #GameDev #Сборка #Unity2D #Unity3D
🔥94😱21
⚙️ Unity: основы ECS

Сохрани, если хочешь выжать максимум производительности из Unity! ECS — это подход, где данные и логика разделены. Идеально для тысяч объектов на сцене.

1️⃣ Из чего состоит ECS?

Entity — просто ID, контейнер для данных. Не GameObject!
Component — структура с данными (позиция, здоровье). Не MonoBehaviour!
System — класс с логикой, которая работает над подходящими компонентами.

2️⃣ Как это работает вместе?

Система MovementSystem автоматически находит все Entity, у которых есть компоненты Position и Velocity, и обновляет их.

3️⃣ Пример кода:

// Компонент - ТОЛЬКО данные
public struct Position : IComponentData
{
public float3 Value;
}

public struct Velocity : IComponentData
{
public float3 Value;
}

// Система - ТОЛЬКО логика
public partial class MovementSystem : SystemBase
{
protected override void OnUpdate()
{
float deltaTime = Time.DeltaTime;

Entities
.ForEach((ref Position pos, in Velocity vel) =>
{
pos.Value += vel.Value * deltaTime;
}).ScheduleParallel();
}
}


💥 Главный плюс: Невероятная производительность за счет кеш-дружественности и многопоточности.

🚀 С чего начать?
Установи пакеты Entities, Hybrid Renderer через Package Manager. Используй ConvertToEntity на GameObject для постепенного перехода.

ECS + Jobs System = Мощь для массовки, пуль и сложных симуляций.

💬 Планируешь использовать ECS в своем проекте?
🔔 Подпишись — впереди разбор DOTS, Jobs System и Burst Compiler!

👉Akrus Games | Unity
🔥93🎄11
🚀 Unity ECS: Part 2 — Пишем первую систему

Сохраняй и пробуй! Сегодня разберем как создать работающую ECS-систему с нуля. Без воды — только код и практика.

1️⃣ Создаём компоненты данных

// Компонент для хранения здоровья
public struct Health : IComponentData
{
public float Current;
public float Max;
}

// Компонент для урона
public struct Damage : IComponentData
{
public float Value;
}


2️⃣ Пишем систему обработки урона

public partial class DamageSystem : SystemBase
{
protected override void OnUpdate()
{
float deltaTime = Time.DeltaTime;

Entities
.ForEach((ref Health health, in Damage damage) =>
{
// Уменьшаем здоровье с учётом времени
health.Current -= damage.Value * deltaTime;

// Не даём упасть ниже нуля
if (health.Current < 0)
health.Current = 0;

}).ScheduleParallel();
}
}


3️⃣ Система удаления мёртвых объектов

public partial class DeathSystem : SystemBase
{
private EndSimulationEntityCommandBufferSystem _ecbSystem;

protected override void OnCreate()
{
_ecbSystem = World.GetExistingSystem<EndSimulationEntityCommandBufferSystem>();
}

protected override void OnUpdate()
{
var ecb = _ecbSystem.CreateCommandBuffer();

Entities
.WithNone<DestroyTag>()
.ForEach((Entity entity, in Health health) =>
{
if (health.Current <= 0)
{
ecb.AddComponent<DestroyTag>(entity);
}
}).Run();
}
}

public struct DestroyTag : IComponentData {}


⚡️ Что важно понять:
• Системы работают автоматически каждый кадр
ScheduleParallel() — запускает в несколько потоков
• EntityCommandBuffer — для безопасного изменения Entities

🎯 Практический совет:
Начни с малого — создай систему вращения кубов. Потом добавь движение. Постепенно освоишь все концепции!

💬 Получилось запустить первую систему?
🔔 В следующем посте разберем JobSystem и Burst Compiler для максимальной производительности!

👉Akrus Games | Unity
🔥1043🎄11
Сегодня день рождения у бывшего второго админа канала @egor_uryvaev971. 🎉🎉🎉🎉🎉

Он внес большой вклад в канал: придумал образовательные посты, набрал 270 подписчиков.
Потом он перестал делать посты, ушел на фриланс. С тех пор он не админ.

НО, все же он внес вклад больше чем я.

Желаю Егору счастья, здоровья и успехов💃💃
Поздравьте
его в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
13🔥43
⚡️ Unity: на какое железо игроков стоит рассчитывать?

Сохрани этот гайд — чтобы твоя игра летала у большинства, а не только у 1% хардкорной аудитории.

🎯 Бюджетные ПК (Low-End)
Процессор: Intel i3 / Ryzen 3 (4 потока)
Видеокарта: Intel UHD Graphics / GT 1030 / RX 550
Память: 8 ГБ ОЗУ
Разрешение: 1280x720 (HD)

💡 Что делать: Отключай постобработку, снижай разрешение теней, используй LOD.

🎯 Средний сегмент (Mid-Range) — ЗОЛОТАЯ СЕРЕДИНА
Процессор: Intel i5 / Ryzen 5 (6+ потоков)
Видеокарта: GTX 1660 / RTX 3050 / RX 6600
Память: 16 ГБ ОЗУ
Разрешение: 1920x1080 (Full HD)

💡 Что делать: Включай лёгкую постобработку, средние тени, смело работай с частицами.

🎯 Игровые ноутбуки / Мощные ПК (High-End)
Процессор: Intel i7 / Ryzen 7 (8+ потоков)
Видеокарта: RTX 3060 / RX 6700 XT и выше
Память: 16-32 ГБ ОЗУ
Разрешение: 2560x1440 (2K) и выше

💡 Что делать: Можно включать HDRI-скайбокс, высокие настройки освещения, HDRP.

📌 Телефоны (Mobile):
Бюджетные: Snapdragon 4xx / 6xx, 4 ГБ ОЗУ
Средние: Snapdragon 7xx / 8xx, 6-8 ГБ ОЗУ
Флагманы: Snapdragon 8 Gen 2/3, Apple A15+

💡 Что делать: Для мобилок критично — батч-рендеринг, атласы текстур, минимум овердрава.

Вывод: Ориентируйся на Mid-Range + Low-End = охватишь 80% аудитории.

📌 Сохрани чек-лист по оптимизации!
🔔 Подпишись — скоро разберём как настроить Quality Settings под разные устройства.

💬 Под какое железо оптимизируешь свою игру? Пиши в комментах!

👉Akrus Games | Unity
8🔥2🎄21
⚡️ Как продумать игру: от идеи до структуры уровней

Не начинай с деталей! Сначала заложи фундамент — иначе переделывать придётся каждый уровень.

🎯 1. Сначала — ядро геймплея

Определи главную механику, вокруг которой всё строится:
• Прыжки и увороты? (Platformer)
• Стрельба и укрытия? (Shooter)
• Головоломки? (Puzzle)

📌 Совет: Опиши геймплей одним предложением: "Игра, где ты управляй призраком, который может проходить сквозь стены, но боится света". Если не получается — механик слишком много.

🔄 2. Спроектируй игровой цикл

Что игрок делает за один сеанс?
• Зашёл → выполнил задачу → получил награду → вернулся в хаб
• Прошёл уровень → открыл новую способность → испытал её в следующем уровне

📌 Пример для мобильной игры:
Запуск → сбор ресурсов → улучшение базы → бой с боссом → повтор

📌 Пример для платформера:
Уровень → сбор монеток → открытие двери ключом → босс → новая способность

🗺 3. Структура уровней: правило "3-х секций"

Дели уровень на части:
• Начало: знакомство с новой механикой (простая платформа)
• Середина: усложнение (платформа + враги)
• Кульминация: проверка навыков (прыжок через пропасть с врагами)

📌 Совет: Нарисуй схему на бумаге! Блок-схема связей лучше тысячи слов.

🌀 4. Композиция уровня = поток

Игрок не должен останавливаться и думать "куда идти". Веди его:
• Светом в темноте
• Цветом важных объектов
• Расположением врагов и платформ

💡 Тест: Запусти уровень и посмотри, где игрок теряется. Убрал точку остановки — улучшил поток.

🛠 5. Сначала серое, потом цветное

Создай все уровни в примитивах (кубы, сферы) и проверь геймплей. Только потом добавляй графику. 90% игр умирают на этапе "я хочу красивый уровень сразу".

Кратко:
1. Определи главную механику
2. Построй игровой цикл
3. Разбей уровень на 3 логические части
4. Тестируй поток
5. Сначала геймплей, потом графика

📌 Сохрани этот план — он сэкономит тебе месяцы разработки.

💬 По какому плану создаёшь игру ты?
🔔 Подпишись — скоро разберём геймдизайн-документы на практике.

👉Akrus Games | Unity
8521
Сегодня у меня день рождения.
За этот год я:
1. Научился работать с unity
2. Нашел много новых друзей как в чатах, так и в реальности
3. Создал канал
4. Заработал денег
5. Получил много опыта


Это был наверное самый продуктивный год моей жизни.
Вообщем админ сегодня отдыхает.
Если что, я тот самый чувак который вам пишет посты.
10🔥6🎄311
Также в честь такого крутого дня я делаю скидку на рекламу в этом канале на 50 РУБЛЕЙ.
12 часов - 50₽ 100₽
24 часа - 80₽ 130₽ ХИТ ПРОДАЖ
48 часов - 100₽ 150₽
1 месяц - 230₽ 280₽

Посты в среднем набирают 200 просмотров сутки.
Реклама очень дешевая. Это помогает маленьким каналам набрать подписчиков, прорекламировать свой продукт.
за все время мне доверилось более 50 человек. Иногда покупали несколько раз.
Если интересует пишите @Akrus001

Акция заканчивается через 3 дня.
😁65🤯4