Akrus Games | Unity
🎯 Цель — 200 подписчиков! Друзья, как только наш канал набирает 200 подписчиков, я выпускаю Telegram-бота, который будет вашим карманным помощником по Unity и C#! 💡 В боте вы найдёте: — Самые полезные фишки по Unity — Советы по C# — Подборки курсов, книг…
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥3😱3
🔍 Важно!
Похоже, на канал недавно накрутили около 100 подписчиков без моего ведома. Это была не моя инициатива и, скорее всего, сделано сторонними людьми — возможно, враждебно или «в подарок» от каких-то сервисов.
❗️ Я выступаю против накруток, потому что они портят статистику и мешают понимать, кто действительно читает канал.
В ближайшее время постараюсь удалить неактивных ботов и вернуть всё в норму.
Спасибо, что вы со мной — настоящая, живая аудитория❤️
Продолжаем делать годный контент!
Похоже, на канал недавно накрутили около 100 подписчиков без моего ведома. Это была не моя инициатива и, скорее всего, сделано сторонними людьми — возможно, враждебно или «в подарок» от каких-то сервисов.
В ближайшее время постараюсь удалить неактивных ботов и вернуть всё в норму.
Спасибо, что вы со мной — настоящая, живая аудитория
Продолжаем делать годный контент!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18😱6🔥5 1 1
#screenshotsaturday
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
🚀 5 приёмов C# и Unity, которые отличают джуна от мидла
📌 Сохрани — это шаг в сторону масштабируемого и профессионального кода
1️⃣ Action и Func — универсальные делегаты
📌 Упрощают объявления и колбэки. Подходят для:
• UI-событий
• игровых триггеров
• асинхронных проверок
Вместо создания собственного делегата — просто:
2️⃣ LINQ + лямбды — фильтрация без циклов
📌 Сокращает код и улучшает читаемость.
Идеально для выбора целей, фильтрации объектов и логики на старте.
⚠️ Внутри Update() не злоупотребляй — может создать GC.
3️⃣ Extension Methods — пиши C#, будто это твой движок
📌 transform.position = pos.WithY(0); — читается, как родной синтаксис.
Абстрагируй повторы, работай с Transform, GameObject, string, float и т.д.
4️⃣ ScriptableObject — переменные и сигналы между сценами
📌 Используется как:
• runtime переменная (настройки, состояния)
• Event-центр (через UnityEvent или кастомные Raise())
• конфигурация апгрейдов / миссий
Поддерживает инспекторную настройку и разделение логики от данных.
5️⃣ Editor-инструменты — экономь себе часы
📌 Один клик — и готово.
Создавай себе:
• дебаг-кнопки
• редакторы данных
• инструменты генерации
Хочешь больше — используй EditorWindow, PropertyDrawer, AssetPostprocessor.
💬 Хочешь идти в senior — думай об удобстве других, переиспользуемости и времени команды.
🔔 Подписывайся — впереди про архитектуру, DI, UI-системы и async паттерны
👉 Akrus Games | Unity
public Action OnFinished;
public Func<bool> IsConditionMet;
📌 Упрощают объявления и колбэки. Подходят для:
• UI-событий
• игровых триггеров
• асинхронных проверок
Вместо создания собственного делегата — просто:
OnFinished?.Invoke();
var enemies = allUnits.Where(u => u.IsEnemy && u.HP > 0).ToList();
📌 Сокращает код и улучшает читаемость.
Идеально для выбора целей, фильтрации объектов и логики на старте.
⚠️ Внутри Update() не злоупотребляй — может создать GC.
public static Vector3 WithY(this Vector3 v, float y) => new(v.x, y, v.z);
📌 transform.position = pos.WithY(0); — читается, как родной синтаксис.
Абстрагируй повторы, работай с Transform, GameObject, string, float и т.д.
[CreateAssetMenu]
public class FloatVariable : ScriptableObject {
public float Value;
}
📌 Используется как:
• runtime переменная (настройки, состояния)
• Event-центр (через UnityEvent или кастомные Raise())
• конфигурация апгрейдов / миссий
Поддерживает инспекторную настройку и разделение логики от данных.
[MenuItem("Tools/Clear PlayerPrefs")]
private static void ClearPrefs() => PlayerPrefs.DeleteAll();📌 Один клик — и готово.
Создавай себе:
• дебаг-кнопки
• редакторы данных
• инструменты генерации
Хочешь больше — используй EditorWindow, PropertyDrawer, AssetPostprocessor.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🔥3 2
Как делать UI, который не ломается
📌 Middle-уровень — это не просто «UI работает». Это UI, который масштабируется, адаптируется и не разваливается на любом экране.
1️⃣ Canvas Scaler: Scale With Screen Size
📌 UI масштабируется пропорционально экрану. Не забудь установить Screen Match Mode в Match Width Or Height.
2️⃣ Layout Group + ContentSizeFitter — друг, но с оглядкой
📌 Уходи от фиксированных размеров. Пусть элементы растягиваются и подстраиваются.
НО: ContentSizeFitter тяжёлый в Scroll View. На списках — лучше вручную контролировать размеры через LayoutElement.
3️⃣ Safe Area — must have на мобилках
📌 Используй Screen.safeArea и адаптируй UI под вырезы, чёлки, панели.
Особенно важно для iPhone X+, Samsung с закруглёнными краями.
Есть готовые плагины (например, SafeArea.cs) — или пиши свой, обрезая RectTransform под safeArea.
4️⃣ Anchors и Pivot — основа адаптивного UI
📌 Никогда не ставь UI в абсолютные координаты.
Используй anchorMin и anchorMax — например, чтобы кнопка «назад» всегда оставалась в левом верхнем углу, независимо от разрешения.
5️⃣ UI Manager — централизованное управление интерфейсом
📌 Используй один UIManager, который управляет:
• текущими экранами (через стэк или FSM)
• открытием/закрытием окон
• блокировкой ввода
• переходами (анимации, звук, пауза)
💡 Идеально: событийная архитектура. Панель не знает о других панелях — всё через UIManager.Show("Settings").
🎯 Почему это важно?
UI — это первое, что видит игрок. Даже простая игра выглядит “профессионально”, если у неё стабильный и адаптивный интерфейс.
💬 Что у тебя чаще всего ломается в UI?
🔔 Подписывайся — впереди посты про оптимизацию, UI-архитектуру и best practices
👉 Akrus Games | Unity
📌 Middle-уровень — это не просто «UI работает». Это UI, который масштабируется, адаптируется и не разваливается на любом экране.
UI Scale Mode: Scale With Screen Size
Reference Resolution: 1920 x 1080 (или 1080 x 1920 для вертикали)📌 UI масштабируется пропорционально экрану. Не забудь установить Screen Match Mode в Match Width Or Height.
📌 Уходи от фиксированных размеров. Пусть элементы растягиваются и подстраиваются.
НО: ContentSizeFitter тяжёлый в Scroll View. На списках — лучше вручную контролировать размеры через LayoutElement.
📌 Используй Screen.safeArea и адаптируй UI под вырезы, чёлки, панели.
Особенно важно для iPhone X+, Samsung с закруглёнными краями.
Есть готовые плагины (например, SafeArea.cs) — или пиши свой, обрезая RectTransform под safeArea.
📌 Никогда не ставь UI в абсолютные координаты.
Используй anchorMin и anchorMax — например, чтобы кнопка «назад» всегда оставалась в левом верхнем углу, независимо от разрешения.
📌 Используй один UIManager, который управляет:
• текущими экранами (через стэк или FSM)
• открытием/закрытием окон
• блокировкой ввода
• переходами (анимации, звук, пауза)
💡 Идеально: событийная архитектура. Панель не знает о других панелях — всё через UIManager.Show("Settings").
🎯 Почему это важно?
UI — это первое, что видит игрок. Даже простая игра выглядит “профессионально”, если у неё стабильный и адаптивный интерфейс.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯5 2❤1 1
Akrus Games | Unity
Итоги уже завтра 1️⃣
🎰 не забываем участвовать ‼️ ‼️
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯5 2
Архитектурные ошибки, которые мешают скейлиться
📌 Вот что часто делает мидл, когда ещё не думает как senior:
1️⃣ Всё в одном MonoBehaviour
📌 Разделяй по слоям:
• Model — данные (например, ScriptableObject, runtime state)
• View — отображение и UI (MonoBehaviour с UI-ссылками)
• Controller/Manager — логика и управление
🧠 Это основа MVC / MVVM / ECS — двигайся в сторону слабосвязной архитектуры.
2️⃣ Прямые ссылки между объектами
📌 Лучше через:
• Action и event-события
• интерфейсы (например, IDamageable)
• ScriptableObject-сигналы (EventChannel)
• Service Locator / Dependency Injection (Zenject, Extenject)
3️⃣ Нет централизованного GameManager или FSM
📌 Когда логика разбросана по сцене — сложно дебажить, сохранять и управлять состоянием игры.
🛠️ Сделай GameState-машину:
Добавь централизованную точку входа:
• UIManager
• SceneController
• AudioManager
4️⃣ Мешанина из public переменных
📌 Используй:
🧠 Это защищает от случайных изменений и делает код самодокументируемым.
5️⃣ Нет разделения Editor и Runtime
📌 Всё, что относится к редактору (например, EditorGUILayout, Handles, MenuItem) — в папку /Editor и под #if UNITY_EDITOR.
Если этого не сделать:
• код попадёт в билд (ошибка)
• появится ненужный вес
• сломается на мобильных/в WebGL
💡 Средний уровень — это уже мышление архитектора: ты создаёшь систему, которую другие смогут поддерживать, расширять и не бояться трогать.
💬 Хочешь пост про конкретные архитектурные подходы: EventBus, ScriptableSignals или Scene Flow?
🔔 Подписывайся — впереди про UI-архитектуру, async-менеджеры и паттерны уровня Senior
👉 Akrus Games | Unity
📌 Вот что часто делает мидл, когда ещё не думает как senior:
// И логика, и UI, и данные — всё в одном классе 😵
📌 Разделяй по слоям:
• Model — данные (например, ScriptableObject, runtime state)
• View — отображение и UI (MonoBehaviour с UI-ссылками)
• Controller/Manager — логика и управление
🧠 Это основа MVC / MVVM / ECS — двигайся в сторону слабосвязной архитектуры.
enemy.healthBar.SetValue(enemy.hp); // жёсткая связь
📌 Лучше через:
• Action и event-события
• интерфейсы (например, IDamageable)
• ScriptableObject-сигналы (EventChannel)
• Service Locator / Dependency Injection (Zenject, Extenject)
📌 Когда логика разбросана по сцене — сложно дебажить, сохранять и управлять состоянием игры.
🛠️ Сделай GameState-машину:
GameState.Menu → GameState.Playing → GameState.PausedДобавь централизованную точку входа:
• UIManager
• SceneController
• AudioManager
public int hp; // открыто для всех
📌 Используй:
[SerializeField] private int hp;
public int HP => hp;
🧠 Это защищает от случайных изменений и делает код самодокументируемым.
📌 Всё, что относится к редактору (например, EditorGUILayout, Handles, MenuItem) — в папку /Editor и под #if UNITY_EDITOR.
Если этого не сделать:
• код попадёт в билд (ошибка)
• появится ненужный вес
• сломается на мобильных/в WebGL
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤2 2 2 1 1
Akrus Games | Unity
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
✨Продаётся пак изображений: Автомобили для кликера.
В паке есть 9 автомобилей, 7 фонов
❗️Важно: Пак создавался долго с упором на качество: в каждой папке машина в PNG без фона. Также все фоны были подобранны в хорошем качестве.Соблюдены все авторские права, все картинки прошли модерацию яндекс игр. Достаточно сделать быстрый рескин на готовом шаблоне и можно заработать.
Стоимость пака: 150 ₽
Для покупки писать: @Akrus001
Движок: любой
Интеграция: Картинки полностью адаптированы под требования Яндекс Игр
В паке есть 9 автомобилей, 7 фонов
❗️Важно: Пак создавался долго с упором на качество: в каждой папке машина в PNG без фона. Также все фоны были подобранны в хорошем качестве.Соблюдены все авторские права, все картинки прошли модерацию яндекс игр. Достаточно сделать быстрый рескин на готовом шаблоне и можно заработать.
Стоимость пака: 150 ₽
Для покупки писать: @Akrus001
❤4😁4 1
public class TestScript : MonoBehaviour {
void Awake() {
Debug.Log("Awake");
enabled = false;
}
void Start() {
Debug.Log("Start");
}
void Update() {
Debug.Log("Update");
}
}Компонент TestScript находится на активном объекте в сцене.
Что выведет этот код?
Anonymous Quiz
49%
Awake Start Update
4%
Awake Update
40%
Awake
8%
Start Update
❤3🔥1 1
Копаем глубже в гениальность Hollow Knight на Unity. Сегодня — квинтэссенция: механика, стиль и звук. Что брать на вооружение?
⚙️ Программирование (Коротко):
• Контроль персонажа: кастомная физика (Rigidbody2D без физики Unity), State Machine для анимаций, Input Buffering для плавных и отзывчивых действий (например, прыжок с задержкой на краю платформы).
• Системы: модульные чары (по сути, набор компонентов с динамической активацией), Object Pool для пуль/врагов/эффектов, надёжная система сохранений по зонам.
• Камера: Cinemachine с ограничением по зонам (блоки-ограничители) + ручной контроль сглаживания.
🎨 Стилистика: Атмосфера через Технику
• Арт: ручная 2D-анимация (не пиксельарт, а именно hand-drawn) + шейдеры (мерцание Geo, свет, туман, подводные искажения).
• Свет и тень: 2D Lights (Universal RP), Ambient Occlusion (запечённый или фейковый), Color Grading через Volume-компоненты.
• Детали движений: Particle System — для шагов, пыли, частиц при разрушении — оживляют каждое действие.
• Параллакс: многослойные фоны с разной скоростью, управляемые скриптом или Cinemachine Parallax.
🎵 Музыка Кристофера Ларкина: Не Фон, а Инструмент Дизайна
• Лейтмотивы: у каждого района — своя тема. Узнаваемость через музыку. (Сравни “Город Слёз” и “Greenpath”).
• Интерактивность: музыка подстраивается под события. Скорее всего — FMOD или Wwise: middleware для динамического микширования в Unity.
• Звук = мир: шаги, капли, скрипы — вплетены в общий саундскейп. Не просто фоны, а слой геймдизайна.
• Точка покоя: скамейки и музыка — безопасные гавани. Эмоциональные якоря, как костры в Dark Souls.
💡 Вывод для Dev’а:
1. Атмосфера = Единство: арт, звук и механики говорят на одном языке. Код не просто работает — он служит художественной цели.
2. Звук — это дизайн, а не “последний штрих”. Интерактивность важна.
3. Детали = жизнь: пыль, свечения, лёгкие эхо — и мир оживает.
4. Оптимизация — путь к атмосфере: без Object Pool и правильной архитектуры, ты не вытянешь такую насыщенность.
🛠️ Hollow Knight — мастер-класс по созданию целостного мира в Unity, где нет разделения между кодом и искусством. Всё работает на ощущение.
🎧 P.S. Какой трек из Hollow Knight у тебя в голове до сих пор?
#HollowKnight #Unity #GameDev #GameAudio #Геймдизайн #ИндиИгры #PixelArt #Звук #Арт #AkrusGames
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤3
❓ Какую тему ты хочешь увидеть в следующем посте?
Я стараюсь делать практичные, чёткие и мощные материалы по Unity и C#, которые действительно помогают в работе.
Хочу сделать следующий пост именно под тебя👇
💬 Напиши в комменты, что тебе реально нужно — я сделаю пост не “в общем”, а именно под твой уровень и задачи.
Я стараюсь делать практичные, чёткие и мощные материалы по Unity и C#, которые действительно помогают в работе.
Хочу сделать следующий пост именно под тебя👇
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Сохрани — экономит куча времени:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23🎄2 2
Сохрани, чтобы не потерять
Набираем 225 подписчиков и выкладываю шпаргалку по C#/Unity!
#программирование #IT #csharp #шпаргалка #VS #Unity #GameDev
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤2 2 1
Это удобная и наглядная платформа, идеально подходящая для новичков. Всё разбито по темам, объяснения простые.
Учись в своём темпе и практикуйся прямо на сайте!
#сишарп #программирование #IT #полезное #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤2😁2
Akrus Games | Unity
Понравился сайт?
🔥 - да
👎 - нет
🔥 - да
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12 5😁3 2