Please open Telegram to view this post
VIEW IN TELEGRAM
😁15 5 2 2
⚙️ Unity: настройки камеры — 2 ключевых параметра, которые ты обязан знать
Сохрани, чтобы твоя камера всегда работала как надо — и в 2D, и в 3D!
1️⃣ Field of View (FOV) — твой главный инструмент глубины
📌 Что это: Угол обзора камеры в градусах.
• 60° — стандарт, похоже на человеческое зрение
• 90°+ — экшн-кадр, видно больше вокруг (отлично для шутеров)
• 30°- — телеобъектив, акцент на детали
💡 Совет: В 3D увеличивай FOV, когда нужна скорость и динамика. В 2D-платформере уменьшай для кинематографичного кадра.
2️⃣ Projection: Orthographic vs Perspective
🎯 Perspective (Перспектива)
• Объекты уменьшаются с расстоянием — как в реальной жизни
• Идеально для 3D-игр, гонок, RPG
• Настрой глубину через Clipping Planes → Far меньше 1000, если не нужны далёкие объекты
🎯 Orthographic (Ортографическая)
• Нет перспективы, размер объектов не меняется
• Must have для 2D-игр, пиксель-арта, интерфейсов, изометрических игр
• Размер сцены контролируй через Size
💡 Лайфхак: В ортографической камере Size = половина высоты экрана в юнитах. Для пиксель-перфекта выставляй Size = (высота экрана в пикселях) / (2 * Pixels Per Unit)
✅ Всего два параметра — а результат: кадр, который не режет глаза и работает как задумано.
💬 А ты используешь ортографию или перспективу в своих проектах?
🔔 Подпишись — впереди разбор Cinemachine и скриптов для камеры.
👉Akrus Games | Unity
Сохрани, чтобы твоя камера всегда работала как надо — и в 2D, и в 3D!
1️⃣ Field of View (FOV) — твой главный инструмент глубины
📌 Что это: Угол обзора камеры в градусах.
• 60° — стандарт, похоже на человеческое зрение
• 90°+ — экшн-кадр, видно больше вокруг (отлично для шутеров)
• 30°- — телеобъектив, акцент на детали
💡 Совет: В 3D увеличивай FOV, когда нужна скорость и динамика. В 2D-платформере уменьшай для кинематографичного кадра.
2️⃣ Projection: Orthographic vs Perspective
🎯 Perspective (Перспектива)
• Объекты уменьшаются с расстоянием — как в реальной жизни
• Идеально для 3D-игр, гонок, RPG
• Настрой глубину через Clipping Planes → Far меньше 1000, если не нужны далёкие объекты
🎯 Orthographic (Ортографическая)
• Нет перспективы, размер объектов не меняется
• Must have для 2D-игр, пиксель-арта, интерфейсов, изометрических игр
• Размер сцены контролируй через Size
💡 Лайфхак: В ортографической камере Size = половина высоты экрана в юнитах. Для пиксель-перфекта выставляй Size = (высота экрана в пикселях) / (2 * Pixels Per Unit)
✅ Всего два параметра — а результат: кадр, который не режет глаза и работает как задумано.
💬 А ты используешь ортографию или перспективу в своих проектах?
🔔 Подпишись — впереди разбор Cinemachine и скриптов для камеры.
👉Akrus Games | Unity
❤8🔥5 2🎄1 1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥4 3 1 1
Stack Overflow не умер, он делает мощный камбэк
Да, наш любимый Stack Overflow снова в игре. Они запустили Stack Overflow AI
На первый взгляд это может напоминать ChatGPT или другие AI-инструменты, но ключевое отличие в том, что он работает на базе огромной базы знаний разработчиков, которую Stack Overflow собирал годами. Это обеспечит быстрые и точные ответы
Да, наш любимый Stack Overflow снова в игре. Они запустили Stack Overflow AI
На первый взгляд это может напоминать ChatGPT или другие AI-инструменты, но ключевое отличие в том, что он работает на базе огромной базы знаний разработчиков, которую Stack Overflow собирал годами. Это обеспечит быстрые и точные ответы
❤8 5😱2 2 2 1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤15😁7😱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-машину:
GameState.Menu → GameState.Playing → GameState.Paused
Добавь централизованную точку входа:
• 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:
1️⃣ Всё в одном MonoBehaviour
// И логика, и UI, и данные — всё в одном классе 😵
📌 Разделяй по слоям:
• Model — данные (например, ScriptableObject, runtime state)
• View — отображение и UI (MonoBehaviour с UI-ссылками)
• Controller/Manager — логика и управление
🧠 Это основа MVC / MVVM / ECS — двигайся в сторону слабосвязной архитектуры.
2️⃣ Прямые ссылки между объектами
enemy.healthBar.SetValue(enemy.hp); // жёсткая связь
📌 Лучше через:
• Action и event-события
• интерфейсы (например, IDamageable)
• ScriptableObject-сигналы (EventChannel)
• Service Locator / Dependency Injection (Zenject, Extenject)
3️⃣ Нет централизованного GameManager или FSM
📌 Когда логика разбросана по сцене — сложно дебажить, сохранять и управлять состоянием игры.
🛠️ Сделай GameState-машину:
GameState.Menu → GameState.Playing → GameState.Paused
Добавь централизованную точку входа:
• UIManager
• SceneController
• AudioManager
4️⃣ Мешанина из public переменных
public int hp; // открыто для всех
📌 Используй:
[SerializeField] private int hp;
public int HP => hp;
🧠 Это защищает от случайных изменений и делает код самодокументируемым.
5️⃣ Нет разделения Editor и Runtime
📌 Всё, что относится к редактору (например, EditorGUILayout, Handles, MenuItem) — в папку /Editor и под #if UNITY_EDITOR.
Если этого не сделать:
• код попадёт в билд (ошибка)
• появится ненужный вес
• сломается на мобильных/в WebGL
💡 Средний уровень — это уже мышление архитектора: ты создаёшь систему, которую другие смогут поддерживать, расширять и не бояться трогать.
💬 Хочешь пост про конкретные архитектурные подходы: EventBus, ScriptableSignals или Scene Flow?
🔔 Подписывайся — впереди про UI-архитектуру, async-менеджеры и паттерны уровня Senior
👉Akrus Games | Unity
❤7🔥3🎄2
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12🔥3😱2
⚡️ Unity: шпаргалка по Tilemap
Сохрани, чтобы быстро настроить сетку для уровня и не вспоминать долгие туториалы.
1️⃣ Быстрый старт
🔸 Создай Grid GameObject (GameObject → 2D Object → Tilemap)
🔸 Добавь компонент Tilemap Renderer к дочернему объекту.
🔸 Создай палитру (Window → 2D → Tile Palette) и перетащи туда свои спрайты.
💡 Совет: настрой Grid у основного объекта на Cell Size (1, 1, 0) для пиксель-перфекта.
2️⃣ Типы кистей (Brushes) — главный инструмент
🎨 Regular Brush — стандартная кисть для ручной расстановки тайлов.
🎨 Random Brush — рандомно расставляет тайлы из выбранного набора. Идеально для природных объектов!
🎨 GameObject Brush — размещает не спрайты, а целые GameObject-ы (например, камни с коллайдерами).
💡 Чтобы использовать: в Tile Palette выбери Brush и создай Tile Asset (перетащи спрайт в палитру).
3️⃣ Rule Tile — магия автоматизации
Автоматически выбирает нужный тайл исходя из соседей.
🔸 Установи пакет "2D Tilemap Extras" через Package Manager.
🔸 Создай Rule Tile (Create → 2D → Tiles → Rule Tile).
🔸 Настрой правила для каждого соседа (например, тайл травы сверху, земли снизу).
💡 Идеально для быстрого построения земли, стен, дорог.
4️⃣ Коллайдеры на тайлах
🔸 Добавь компонент Tilemap Collider 2D к объекту Tilemap.
🔸 Для оптимизации отметь Used By Composite и добавь Composite Collider 2D на родительский Grid.
💡 Автоматически создаст единый коллайдер для всех тайлов!
5️⃣ Анимация через Animated Tile
Создай анимированную поверхность (вода, лава).
🔸 Создай Animated Tile (Create → 2D → Tiles → Animated Tile).
🔸 Перетащи в него кадры анимации и настрой Speed (частота кадров).
🔸 Рисуй как обычным тайлом — анимация запустится автоматически.
✅ Теперь ты сможешь собрать уровень за минуты, а не часы.
📌 Сохрани шпаргалку!
💬 Часто используешь Tilemap? Делись опытом в комментариях!
🔔 Подпишись — ещё больше гайдов по Unity ждут тебя.
👉Akrus Games | Unity
Сохрани, чтобы быстро настроить сетку для уровня и не вспоминать долгие туториалы.
1️⃣ Быстрый старт
🔸 Создай Grid GameObject (GameObject → 2D Object → Tilemap)
🔸 Добавь компонент Tilemap Renderer к дочернему объекту.
🔸 Создай палитру (Window → 2D → Tile Palette) и перетащи туда свои спрайты.
💡 Совет: настрой Grid у основного объекта на Cell Size (1, 1, 0) для пиксель-перфекта.
2️⃣ Типы кистей (Brushes) — главный инструмент
🎨 Regular Brush — стандартная кисть для ручной расстановки тайлов.
🎨 Random Brush — рандомно расставляет тайлы из выбранного набора. Идеально для природных объектов!
🎨 GameObject Brush — размещает не спрайты, а целые GameObject-ы (например, камни с коллайдерами).
💡 Чтобы использовать: в Tile Palette выбери Brush и создай Tile Asset (перетащи спрайт в палитру).
3️⃣ Rule Tile — магия автоматизации
Автоматически выбирает нужный тайл исходя из соседей.
🔸 Установи пакет "2D Tilemap Extras" через Package Manager.
🔸 Создай Rule Tile (Create → 2D → Tiles → Rule Tile).
🔸 Настрой правила для каждого соседа (например, тайл травы сверху, земли снизу).
💡 Идеально для быстрого построения земли, стен, дорог.
4️⃣ Коллайдеры на тайлах
🔸 Добавь компонент Tilemap Collider 2D к объекту Tilemap.
🔸 Для оптимизации отметь Used By Composite и добавь Composite Collider 2D на родительский Grid.
💡 Автоматически создаст единый коллайдер для всех тайлов!
5️⃣ Анимация через Animated Tile
Создай анимированную поверхность (вода, лава).
🔸 Создай Animated Tile (Create → 2D → Tiles → Animated Tile).
🔸 Перетащи в него кадры анимации и настрой Speed (частота кадров).
🔸 Рисуй как обычным тайлом — анимация запустится автоматически.
✅ Теперь ты сможешь собрать уровень за минуты, а не часы.
📌 Сохрани шпаргалку!
💬 Часто используешь Tilemap? Делись опытом в комментариях!
🔔 Подпишись — ещё больше гайдов по Unity ждут тебя.
👉Akrus Games | Unity
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8❤4😱3 1
⚡️ Unity: шпаргалка по Rigidbody для новичков
Rigidbody — это физическое тело твоего объекта. Без него объект просто «виснет» в воздухе. Сохраняй, чтобы не упустить основы!
1️⃣ Добавление силы (AddForce)
• Толкает объект в указанном направлении.
• Режимы силы:
2️⃣ Прыжок через Velocity
• Мгновенно задаёт скорость. Идеально для прыжка!
• Не зависит от массы объекта.
3️⃣ Ограничение движения (Freeze Rotation/Position)
• Замораживает ненужные оси в Rigidbody компоненте
• Предотвращает неконтролируемые падения и кувырки
4️⃣ Определение земли (IsGrounded)
• Лучший способ проверить, стоит ли объект на земле
5️⃣ Включение/выключение физики (isKinematic)
• isKinematic = true — объект не подвержен физике, но двигает другие объекты
• Используй для движущихся платформ или дверей
💥 Главное правило: Не изменяй позицию через transform.position если у объекта есть Rigidbody! Используй rb.MovePosition.
✅ Этих основ хватит для управления персонажем, создания пуль и простых физических взаимодействий.
💬 С какими проблемами с физикой сталкивался ты?
🔔 Подпишись — впереди шпаргалка по Colliders и триггерам!
👉Akrus Games | Unity
Rigidbody — это физическое тело твоего объекта. Без него объект просто «виснет» в воздухе. Сохраняй, чтобы не упустить основы!
1️⃣ Добавление силы (AddForce)
• Толкает объект в указанном направлении.
• Режимы силы:
ForceMode.Force — плавное ускорение (как толкать машину)ForceMode.Impulse — мгновенный толчок (как выстрел)// Выстреливает объект вперёд
rb.AddForce(transform.forward * 10f, ForceMode.Impulse);
2️⃣ Прыжок через Velocity
• Мгновенно задаёт скорость. Идеально для прыжка!
• Не зависит от массы объекта.
// Прыжок вверх
rb.velocity = new Vector3(rb.velocity.x, 10f, rb.velocity.z);
3️⃣ Ограничение движения (Freeze Rotation/Position)
• Замораживает ненужные оси в Rigidbody компоненте
• Предотвращает неконтролируемые падения и кувырки
4️⃣ Определение земли (IsGrounded)
• Лучший способ проверить, стоит ли объект на земле
bool IsGrounded() {
return Physics.Raycast(transform.position, Vector3.down, 1.1f);
}5️⃣ Включение/выключение физики (isKinematic)
• isKinematic = true — объект не подвержен физике, но двигает другие объекты
• Используй для движущихся платформ или дверей
💥 Главное правило: Не изменяй позицию через transform.position если у объекта есть Rigidbody! Используй rb.MovePosition.
✅ Этих основ хватит для управления персонажем, создания пуль и простых физических взаимодействий.
💬 С какими проблемами с физикой сталкивался ты?
🔔 Подпишись — впереди шпаргалка по Colliders и триггерам!
👉Akrus Games | Unity
❤7😱2 2 1 1
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Unity: как оптимизировать код. Советы для профи
Сохрани — эти правила спасут твой проект от лагов и помогут выжать максимум FPS. Не теория, а то, что используют в реальных проектах.
1️⃣ Избегай строковых операций в циклах — невидимый убийца производительности
❌ Плохо:
✅ Правильно:
💡 Сравнение по тегу через CompareTag в 2-3 раза быстрее. Хеширование параметров аниматора исключает дорогостоящие поиски по строке каждый кадр.
2️⃣ Пулинг объектов — создавай объекты заранее
❌ Плохо: Instantiate() при появлении пули.
✅ Правильно: создай массив пуль при старте и переиспользуй их.
💡 Для всего, что появляется часто (пули, враги, эффекты), пулинг — must have. Никакого мусора для GC.
3️⃣ Избегай лишних вызовов в Update()
Вместо проверки каждого кадра:
Используй корутины или InvokeRepeating:
💡 Счетчик раз в секунду вместо 60 раз в секунду — вот оно, спасение CPU.
🔥 Особенно хеширование параметров аниматора — это профессиональный прием, который сразу показывает уровень разработчика.
💬 А ты хешируешь параметры аниматора или все еще используешь строки?
🔔 Подпишись — скоро разберем продвинутые методы: Job System, Burst Compiler и бенчмаркинг.
👉Akrus Games | Unity
Сохрани — эти правила спасут твой проект от лагов и помогут выжать максимум FPS. Не теория, а то, что используют в реальных проектах.
1️⃣ Избегай строковых операций в циклах — невидимый убийца производительности
❌ Плохо:
void Update() {
if (gameObject.tag == "Player") { }
animator.SetTrigger("Attack");
}✅ Правильно:
private static readonly int AttackHash = Animator.StringToHash("Attack");
void Update() {
if (gameObject.CompareTag("Player")) { }
animator.SetTrigger(AttackHash);
}💡 Сравнение по тегу через CompareTag в 2-3 раза быстрее. Хеширование параметров аниматора исключает дорогостоящие поиски по строке каждый кадр.
2️⃣ Пулинг объектов — создавай объекты заранее
❌ Плохо: Instantiate() при появлении пули.
✅ Правильно: создай массив пуль при старте и переиспользуй их.
List<GameObject> _bulletPool = new List<GameObject>();
💡 Для всего, что появляется часто (пули, враги, эффекты), пулинг — must have. Никакого мусора для GC.
3️⃣ Избегай лишних вызовов в Update()
Вместо проверки каждого кадра:
void Update()
{
if (condition) DoSomething();
}
Используй корутины или InvokeRepeating:
IEnumerator CheckWithDelay() {
while (true) {
yield return new WaitForSeconds(1f);
if (condition) DoSomething();
}
}💡 Счетчик раз в секунду вместо 60 раз в секунду — вот оно, спасение CPU.
🔥 Особенно хеширование параметров аниматора — это профессиональный прием, который сразу показывает уровень разработчика.
💬 А ты хешируешь параметры аниматора или все еще используешь строки?
🔔 Подпишись — скоро разберем продвинутые методы: Job System, Burst Compiler и бенчмаркинг.
👉Akrus Games | Unity
🔥10❤6 3 1
Так, маи чуваки. Мои запасы мемов кончаются.
Поэтому пришлите свои мемы в комменты!!!🎉 🎉 🎉
@kittysharky жги 🎧
Поэтому пришлите свои мемы в комменты!!!
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7❤2😱2
Игра подписчика @ZARKI01
The Unknown Parameter / Неизвестный Параметр
Жанр: Atmospheric survival-horror от первого лица.
Сеттинг: Луна. Вы космонавт, отправленный на поиски пропавшей научной экспедиции.
Что ждёт внутри: Найти можно лишь их трупы... и «это», что за ними охотилось. Забрать образцы и бежать к кораблю под аккомпанемент панических сообщений с луны. Атмосфера одиночества, паники и безысходности в духе классических космических ужасов.
Движок: Unity
Пишу на C#, активно учусь и прототипирую. В планах небольшой, но концентрированный и пугающий опыт.
Следите за развитием! Буду делиться скриншотами, гифками и болью геймдева.
Этот проект я буду делать постепенно, так как ещё пока осваиваю Юнити, и поэтому разработка может длиться от нескольких месяцев.
Тгк - https://t.me/minikraft2010fnaf
#геймдев #индиразработка #хоррор #unity #godotengine #indiegames #indiedev
🔥4❤3😱1
Сколько вы заработали на геймдеве за этот месяц?🤔
Anonymous Poll
72%
0 руб 💧
8%
от 100 до 500 руб 🤟
2%
от 500 до 2000 руб🎧
18%
больше 2000 руб 💰
❤6 3🔥2