⚡️ Патруль врага в 2D платформере
Когда враг ходит туда‑сюда между двумя точками — базовая механика любого платформера.
Сохраняй, пригодится в каждом втором проекте! 👇
Компоненты:
✅ Плюсы: враг не пройдёт сквозь стены, реагирует на физику.
❌ Минусы: нужно следить за застреванием (можно добавить Raycast для проверки края).
📌 Сохрани пост, чтобы не потерять коды.
🔔 Подпишись – дальше будет ещё больше готовых решений для 2D и не только.
👉 Akrus Games | Unity
Когда враг ходит туда‑сюда между двумя точками — базовая механика любого платформера.
Сохраняй, пригодится в каждом втором проекте! 👇
Компоненты:
PointA, PointB(границы патрулирования) + Rigidbody2D (кинематик или динамик – по желанию).using UnityEngine;
public class Patrol : MonoBehaviour
{
[SerializeField] private Transform pointA;
[SerializeField] private Transform pointB;
[SerializeField] private float speed = 3f;
private Rigidbody2D rb;
private Transform targetPoint;
void Start()
{
rb = GetComponent<Rigidbody2D>();
targetPoint = pointA;
}
void FixedUpdate()
{
// направление к цели
Vector2 direction = (targetPoint.position - transform.position).normalized;
// двигаем через velocity (сохраняем гравитацию по Y)
rb.velocity = new Vector2(direction.x * speed, rb.velocity.y);
// если почти дошли по X – меняем цель
if (Mathf.Abs(targetPoint.position.x - transform.position.x) < 0.1f)
{
targetPoint = targetPoint == pointA ? pointB : pointA;
// разворачиваем спрайт (опционально)
Flip();
}
}
private void Flip()
{
Vector3 scale = transform.localScale;
scale.x *= -1;
transform.localScale = scale;
}
}
✅ Плюсы: враг не пройдёт сквозь стены, реагирует на физику.
❌ Минусы: нужно следить за застреванием (можно добавить Raycast для проверки края).
📌 Сохрани пост, чтобы не потерять коды.
🔔 Подпишись – дальше будет ещё больше готовых решений для 2D и не только.
👉 Akrus Games | Unity
❤7🔥3👎1😁1
⚡️ Unity: шпаргалка по Input
Сохрани, чтобы управление в твоей игре всегда работало чётко! Два основных подхода — старый и новый.
1️⃣ Классический Input Manager (Input.GetKey)
Старый добрый способ, который все знают. Идеален для быстрого прототипа.
✅ Быстро и понятно
❌ Жёстко зашито в коде, сложно переключать схемы управления
2️⃣ Новая система Input System (Unity Package)
Мощный и гибкий инструмент. Нужно поставить через Package Manager.
📌 Сначала настрой Input Actions:
• Создай Action Map (например, "Player")
• Добавь Actions ("Move", "Jump", "Fire")
• Назначь кнопки (WASD, Space, Mouse)
✅ Переключаемые схемы управления (геймпад, клавиатура)
✅ Автоматическая ремаппинг кнопок
❌ Нужно время на настройку
🔥 Важно:
• Для нового Input System не забудь
• В Build Settings → Player → Active Input Handling выбери "Both"
💬 Какую систему используешь ты? Классику или новую?
🔔 Подпишись — впереди ещё много шпаргалок по Unity и C#!
👉Akrus Games | Unity
Сохрани, чтобы управление в твоей игре всегда работало чётко! Два основных подхода — старый и новый.
1️⃣ Классический Input Manager (Input.GetKey)
Старый добрый способ, который все знают. Идеален для быстрого прототипа.
// Движение
float horizontal = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");
// Прыжок
if (Input.GetKeyDown(KeyCode.Space))
{
Jump();
}
// ЛКМ
if (Input.GetMouseButtonDown(0))
{
Shoot();
}
✅ Быстро и понятно
❌ Жёстко зашито в коде, сложно переключать схемы управления
2️⃣ Новая система Input System (Unity Package)
Мощный и гибкий инструмент. Нужно поставить через Package Manager.
📌 Сначала настрой Input Actions:
• Создай Action Map (например, "Player")
• Добавь Actions ("Move", "Jump", "Fire")
• Назначь кнопки (WASD, Space, Mouse)
using UnityEngine.InputSystem;
// Чтение вектора движения
private void OnMove(InputValue value)
{
Vector2 moveInput = value.Get<Vector2>();
// перемещаем объект
}
// Обработка одиночного нажатия
private void OnJump(InputValue value)
{
if (value.isPressed) Jump();
}
✅ Переключаемые схемы управления (геймпад, клавиатура)
✅ Автоматическая ремаппинг кнопок
❌ Нужно время на настройку
🔥 Важно:
• Для нового Input System не забудь
PlayerInput компонент на объект• В Build Settings → Player → Active Input Handling выбери "Both"
💬 Какую систему используешь ты? Классику или новую?
🔔 Подпишись — впереди ещё много шпаргалок по Unity и C#!
👉Akrus Games | Unity
🔥11❤6
ИИ
Если бы не было чатагпт, не было таких цен на оперативную память, скорость работы программирования не возросла, не было бы этого канала.
Большинство из вас использует ИИ. Я в том числе.
Однако у ИИ есть проблема — он любит фантазировать, очень много фантазировать. Чтобы этого избежать, нужна правильная структура запроса.
Вот вам полезный промт, который убирает лишнюю "фантазию" ИИ:
Чтобы составить свой промт, надо:
Используя эти 4 пункта и промт, можно достать максимум из ИИ
Если бы не было чатагпт, не было таких цен на оперативную память, скорость работы программирования не возросла, не было бы этого канала.
Большинство из вас использует ИИ. Я в том числе.
Однако у ИИ есть проблема — он любит фантазировать, очень много фантазировать. Чтобы этого избежать, нужна правильная структура запроса.
Вот вам полезный промт, который убирает лишнюю "фантазию" ИИ:
Прежде чем дать мне ответ, оцени его
неопределённость. Если она больше, чем 0.1 — задавай
мне уточняющие вопросы до тех пор, пока
неопределённость будет 0.1 или меньше
Чтобы составить свой промт, надо:
1. Объяснить что ты делаешь
2. Что ты уже сделал
3. Объяснить, что должен сделать ИИ
4. Добавить примеры по возможности.
Используя эти 4 пункта и промт, можно достать максимум из ИИ
❤8🔥1
Какой ии в используете?
Anonymous Poll
43%
чат гпт
37%
дипсик
19%
claude
9%
codex
29%
gemeni
4%
яндексгпт
12%
что-то еще(напишите в комментариях)
6%
не использую
🔥8
Присылайте свои работы в комментарии!👊
Лучшие выложу здесь!
Присылайте лучше видео. Хороший компрессор https://tools.rotato.app/compress , если не грузит используйте https://github.com/codeforreal1/compressO
Для новеньких поясняю: по сути это бесплатная реклама вашей игры и канала, только если у вас реально крутая игра)
#работыПодписчиков
🎧Akrus Games | Unity
Лучшие выложу здесь!
Для новеньких поясняю: по сути это бесплатная реклама вашей игры и канала, только если у вас реально крутая игра)
#работыПодписчиков
🎧Akrus Games | Unity
❤5🔥2🎄1
This media is not supported in your browser
VIEW IN TELEGRAM
Игра подписчика @Lenya418
Канал: https://t.me/StarGamesOne
Присылайте свои игры сюда
Akrus Games | Unity
С января я делал Roguelike игру и сейчас могу поделиться прогрессом
Сейчас в игре:
•100+ скриптов
•10+ уникальных оружий
•20+ уникальных пуль для них
•15+ уникальных эффектов которые можно комбинировать между собой
•5+ бонусов
•Система генерации комнат
•Механика бомб
•Система волн с разными паттернами
Канал: https://t.me/StarGamesOne
Присылайте свои игры сюда
Akrus Games | Unity
👍13❤1🎄1
Игра подписчика @pingalinux
Канал: @LumaPlayUG
Игра: Плей маркет игры
Присылайте свои игры сюда
Akrus Games | Unity
Моя игра марбл судоку💎
Выпустила 2 недели назад и радуюсь
Уже более 3к скачиваний и несколько сотен активных игроков в день
В игре множество режимов, а также есть ачивки, лидерборд и ивенты🐈
Сейчас тружусь над уведомлениями
Канал: @LumaPlayUG
Игра: Плей маркет игры
Присылайте свои игры сюда
Akrus Games | Unity
🔥7❤3👍2
Возможно, у кого-то есть старый аккаунт Google Play Разработчика (любого года).
Есть возможность хорошо заработать на этом.
Закрытые за неактив аккаунты тоже принимаются(помогу бесплатно восстановить)
По любым вопросам в ЛС @Ilya01s.
Есть возможность хорошо заработать на этом.
Закрытые за неактив аккаунты тоже принимаются(помогу бесплатно восстановить)
По любым вопросам в ЛС @Ilya01s.
🔥5
Media is too big
VIEW IN TELEGRAM
Игра подписчика @blackdragon3129
Канал: t.me/dragodev3129
Присылайте свои игры сюда
Akrus Games | Unity
Мой проект: Wall Walker - головоломка, где изменение гравитации стало ключевой механикой. В нём тебя ждёт:
⚙️ Множество разнообразных механик (помимо изменения гравитации)
🎨 Приятный глазу визуальный стиль
🗺 Куча уникальных уровней
Игра уже на финишной прямой, скоро релиз.
Канал: t.me/dragodev3129
Присылайте свои игры сюда
Akrus Games | Unity
🔥6
ART DOGS
Мы оформляем Steam-страницы для инди-проектов. Помогаем с капсулой, визуалом и упаковкой, чтобы игра выглядела профессионально с первого взгляда.
Что делаем:
— Полный комплект капсул для магазина и библиотеки Steam;
— Оформление фона страницы;
— Разработка логотипов;
— Геймплейные трейлеры;
— Короткие видео (Shorts, Reels, TikTok);
— Текстовое описание, гифки, скриншоты для страницы;
— Ачивки и трейд-карточки;
— Консультации по стилю, геймплею, позиционированию и оформлению;
— Тестирование проектов;
— Любое промо по договорённости;
Формат работы:
Можем выполнить задачи сдельно (по договору) или стать частью команды в формате внутренней студии.
📁 Канал с работами: https://t.me/ART_DOGS_STEAM_DESIGN
📁 Канал с отзывами: https://t.me/OTZIVARTDOGS
Мы оформляем Steam-страницы для инди-проектов. Помогаем с капсулой, визуалом и упаковкой, чтобы игра выглядела профессионально с первого взгляда.
Что делаем:
— Полный комплект капсул для магазина и библиотеки Steam;
— Оформление фона страницы;
— Разработка логотипов;
— Геймплейные трейлеры;
— Короткие видео (Shorts, Reels, TikTok);
— Текстовое описание, гифки, скриншоты для страницы;
— Ачивки и трейд-карточки;
— Консультации по стилю, геймплею, позиционированию и оформлению;
— Тестирование проектов;
— Любое промо по договорённости;
Формат работы:
Можем выполнить задачи сдельно (по договору) или стать частью команды в формате внутренней студии.
📁 Канал с работами: https://t.me/ART_DOGS_STEAM_DESIGN
📁 Канал с отзывами: https://t.me/OTZIVARTDOGS
❤8👍2🔥2
⚡️ Два подхода к организации кода в Unity
Сохрани, чтобы не наступить на грабли новичка и не запутаться в собственном проекте.
✅ Плюсы разделения скриптов:
🔹 Переиспользуемость кода
PlayerMovement, EnemyAI, Inventory — каждый скрипт делает одно дело. Можно брать готовый Movement и использовать в разных объектах.
🔹 Проще тестировать и исправлять
Нашел баг в прыжке? Открываешь только PlayerJump.cs. Не нужно копаться в 1000+ строках монолита.
🔹 Чистая архитектура
Легче расширять: добавил новый скрипт — новая механика готова. Не ломаешь существующий код.
❌ Минусы чрезмерного разделения:
🔸 Сложность управления
10+ скриптов на одном объекте? Придется настраивать связи между ними через GetComponent<> или события.
🔸 Потеря производительности
Частые вызовы GetComponent<> и межскриптовые события могут тормозить, особенно на мобильных устройствах.
🔸 "Ад зависимостей"
Скрипт А зависит от Б, Б от В, В от А... Запутал сам себя.
💡 Золотая середина:
1️⃣ Разделяй по ответственности
Движение → отдельный скрипт
Стрельба → отдельный скрипт
Здоровье → отдельный скрипт
2️⃣ Но не дроби без нужды
Не создавай 10 скриптов для 10 кнопок. Логика UI может жить в одном скрипте.
3️⃣ Используй компонентный подход Unity
Это его философия! Каждый скрипт — компонент с конкретной задачей.
📌 Вывод: разделяй логично, но не фанатично. 3-5 скриптов лучше 15 и лучше 1 монстра на 2000 строк.
💬 А как ты организуешь код? Пиши в комментах!
🔔 Подпишись — еще больше про архитектуру, C# и юнити-лайфхаки.
👉Akrus Games | Unity
Сохрани, чтобы не наступить на грабли новичка и не запутаться в собственном проекте.
✅ Плюсы разделения скриптов:
🔹 Переиспользуемость кода
PlayerMovement, EnemyAI, Inventory — каждый скрипт делает одно дело. Можно брать готовый Movement и использовать в разных объектах.
🔹 Проще тестировать и исправлять
Нашел баг в прыжке? Открываешь только PlayerJump.cs. Не нужно копаться в 1000+ строках монолита.
🔹 Чистая архитектура
Легче расширять: добавил новый скрипт — новая механика готова. Не ломаешь существующий код.
❌ Минусы чрезмерного разделения:
🔸 Сложность управления
10+ скриптов на одном объекте? Придется настраивать связи между ними через GetComponent<> или события.
🔸 Потеря производительности
Частые вызовы GetComponent<> и межскриптовые события могут тормозить, особенно на мобильных устройствах.
🔸 "Ад зависимостей"
Скрипт А зависит от Б, Б от В, В от А... Запутал сам себя.
💡 Золотая середина:
1️⃣ Разделяй по ответственности
Движение → отдельный скрипт
Стрельба → отдельный скрипт
Здоровье → отдельный скрипт
2️⃣ Но не дроби без нужды
Не создавай 10 скриптов для 10 кнопок. Логика UI может жить в одном скрипте.
3️⃣ Используй компонентный подход Unity
Это его философия! Каждый скрипт — компонент с конкретной задачей.
📌 Вывод: разделяй логично, но не фанатично. 3-5 скриптов лучше 15 и лучше 1 монстра на 2000 строк.
💬 А как ты организуешь код? Пиши в комментах!
🔔 Подпишись — еще больше про архитектуру, C# и юнити-лайфхаки.
👉Akrus Games | Unity
🔥10❤1👍1
⚡️ Unity: Интерфейсы в C# — сила контрактов
Интерфейс — это контракт, который гарантирует, что класс умеет делать определённые действия. Неважно, кто его подписал — игрок, враг или бочка. Главное — они все могут выполнить условия контракта.
В интерфейсах в c# не принято делать реализацию функций, свойств, только объявление.
🔥 Зачем это в играх?
Допустим, у тебя есть меч, который может бить врагов и ломать бочки. Без интерфейсов — это ад из
Можно наследовать от любого количества интерфейсов, в отличии от наследования от классов.
Если мы хотим сделать приватное свойство для реализующего интерфейс класса, мы можем не указывать set в свойстве интерфейса
🎯 Реальный пример: взаимодействие с объектами
💡 Два главных плюса:
🔸 Гибкость — добавляй новые разрушаемые объекты без изменения кода меча
🔸 Чистота — избавляешься от гигантских цепочек проверок через GetComponent
🚀 Где ещё использовать?
•
•
•
💬 Используешь интерфейсы в своих проектах? Делися в комментах!
🔔 Подпишись — ещё больше C# фишек для геймдева
Пост помог написать @Nokskiy
👉Akrus Games | Unity
Интерфейс — это контракт, который гарантирует, что класс умеет делать определённые действия. Неважно, кто его подписал — игрок, враг или бочка. Главное — они все могут выполнить условия контракта.
В интерфейсах в c# не принято делать реализацию функций, свойств, только объявление.
🔥 Зачем это в играх?
Допустим, у тебя есть меч, который может бить врагов и ломать бочки. Без интерфейсов — это ад из
if (collider.GetComponent<Enemy>() != null)... С интерфейсами — чисто и гибко.Можно наследовать от любого количества интерфейсов, в отличии от наследования от классов.
Если мы хотим сделать приватное свойство для реализующего интерфейс класса, мы можем не указывать set в свойстве интерфейса
🎯 Реальный пример: взаимодействие с объектами
public class Bullet : MonoBehaviour
{
private const int _damage = 10;
private void CheckHit()
{
//проверка столкновений с IHealth
hitObj.TakeDamage(_damage);
}
}
public class Player : MonoBehaviour, IHealth
{
// Реализация свойства
public int Health { get; private set; }
// Прочие поля
// Прочии свойства
// Прочии функции
// Реализация функции
public void TakeDamage(int damage) =>
Health -= damage;
}
public interface IHealth
{
// Обьявление свойства Health
int Health { get; }
// Обьявление функции TakeDamage
void TakeDamage(int damage);
}
💡 Два главных плюса:
🔸 Гибкость — добавляй новые разрушаемые объекты без изменения кода меча
🔸 Чистота — избавляешься от гигантских цепочек проверок через GetComponent
🚀 Где ещё использовать?
•
IInteractable для взаимодействия с NPC, дверями, предметами•
ICollectable для сбора монет, аптечек, боеприпасов•
ISaveable для системы сохранений💬 Используешь интерфейсы в своих проектах? Делися в комментах!
🔔 Подпишись — ещё больше C# фишек для геймдева
Пост помог написать @Nokskiy
👉Akrus Games | Unity
🔥7❤6👍1
⚡️ 5 C# фишек, которые прокачают твой Unity-код
Сохрани — используешь каждый день, если хочешь писать чисто и современно.
1️⃣ ?? и ??=
📌 ?? — дефолт при null, ??= — инициализация, если объект ещё не создан.
В Unity:
• Подходит для ленивой инициализации компонентов
• Отлично работает с GetComponent() и кастомными системами DI
2️⃣ switch expression
📌 Читается лучше, чем громоздкий switch { case }, особенно в UI-слоях и инспекторных тулзах.
В Unity:
• Используй в кастомных инспекторах, отображении состояний, локализации
3️⃣ Интерполяция строк $""
📌 Быстрее и безопаснее, чем +. Упрощает логи на этапе разработки.
В Unity:
• Используй для логирования, UI-отладчика, вывода инфы в EditorWindow
4️⃣ using var (C# 8+)
📌 Безопасное использование ресурсов — автоматически закроется, даже при исключении.
В Unity:
• Полезно при работе с файлами, AssetBundle, StreamingAssets
• Работает только в .NET 4.x / Unity с C# 8+
5️⃣ readonly struct и in параметры (бонус)
📌 Меньше копий, больше производительности. Актуально в ECS и при передаче больших структур.
💬 Какие из этих ты уже используешь в Unity?
🔔 Подписывайся — будет ещё про Span<T>, LINQ и новые C# фичи в Unity
👉Akrus Games | 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
🔥7👍2❤1
Forwarded from REPUBLIC78
Открыта регистрация на участие в 9-ом сезоне федеральной программы развития молодежного предпринимательства "Я В ДЕЛЕ" в Санкт-Петербурге.
Наша команда основала проект Republic для того чтобы помочь командам в сфере креативных индустрий развить свой продукт.
💬 Из основного, что мы предоставляем всем желающим:
🤩 Для кого?
⌚️ Таймлайн
➡️ Для участия в конкурсе хватит идеи проекта, так что ждем всех желающих. Оставляйте заявку в форме
❗️ РЕГИСТРАЦИЯ ДО 20 МАРТА.
По всем вопросам пишите: @Oleg_Leyfman
Наша команда основала проект Republic для того чтобы помочь командам в сфере креативных индустрий развить свой продукт.
🟢 Предпринимательский курс для разработчиков игр, состоящий из 8 блоков.🟢 Практика выступления перед экспертами в бизнесе.🟢 Личный наставник, который будет вам помогать.🟢 Призовой фонд "Я В ДЕЛЕ" — 1 000 000 рублей.🟢 Летний интенсив по работе с издательствами.🟢 Шоу-кейсы на региональном уровне.
🟢 Для студентов от 18 лет проживающих в Петербурге/ЛО.🟢 Для тех, кто ищет команду или нет проекта.🟢 Для инди-команд с техно-демкой или полноценным проектом.
🟢 21 марта — Открытие🟢 Апрель — Хакатон (аккредитация проекта) и шоу-кейсы.🟢 Май — финальная защита перед жюри и закрытие 9 сезона.🟢 Июнь-Август — Летний интенсив по работе с издательствами.
По всем вопросам пишите: @Oleg_Leyfman
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤2