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

Сотрудничество/реклама/помощь @Akrus001
Download Telegram
Мы объединились и создали лучшую папку каналов по геймдеву "The Gamedev"!

Это место, где собраны самые полезные, активные и вдохновляющие каналы индустрии, где каждый разработчик найдёт для себя что-то действительно ценное:

🧑‍💻 Помощь и практические советы по разработке игр

🆓 Бесплатные раздачи ассетов и промокоды

📣 Актуальные новости геймдева

📱 Советы по заработку на разных игровых площадках

📱 Авторские каналы по геймдизайну

📸 Личные блоги разработчиков


Подключайтесь к папке The GameDev и станьте частью сильного комьюнити!

👉https://t.me/addlist/Ca1yrpya6iwxYzky
6🔥3
⚡️ Патруль врага в 2D платформере

Когда враг ходит туда‑сюда между двумя точками — базовая механика любого платформера.

Сохраняй, пригодится в каждом втором проекте! 👇

Компоненты: 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)

Старый добрый способ, который все знают. Идеален для быстрого прототипа.

// Движение
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
🔥116
ИИ
Если бы не было чатагпт, не было таких цен на оперативную память, скорость работы программирования не возросла, не было бы этого канала.
Большинство из вас использует ИИ. Я в том числе.
Однако у ИИ есть проблема — он любит фантазировать, очень много фантазировать. Чтобы этого избежать, нужна правильная структура запроса.
Вот вам полезный промт, который убирает лишнюю "фантазию" ИИ:
Прежде чем дать мне ответ, оцени его
неопределённость. Если она больше, чем 0.1 — задавай
мне уточняющие вопросы до тех пор, пока
неопределённость будет 0.1 или меньше


Чтобы составить свой промт, надо:
1. Объяснить что ты делаешь
2. Что ты уже сделал
3. Объяснить, что должен сделать ИИ
4. Добавить примеры по возможности.

Используя эти 4 пункта и промт, можно достать максимум из ИИ
8🔥1
Присылайте свои работы в комментарии!👊
Лучшие выложу здесь!


Присылайте лучше видео. Хороший компрессор https://tools.rotato.app/compress, если не грузит используйте https://github.com/codeforreal1/compressO

Для новеньких поясняю: по сути это бесплатная реклама вашей игры и канала, только если у вас реально крутая игра)


#работыПодписчиков

🎧Akrus Games | Unity
5🔥2🎄1
This media is not supported in your browser
VIEW IN TELEGRAM
Игра подписчика @Lenya418
С января я делал Roguelike игру и сейчас могу поделиться прогрессом

Сейчас в игре:
•100+ скриптов
•10+ уникальных оружий
•20+ уникальных пуль для них
•15+ уникальных эффектов которые можно комбинировать между собой
•5+ бонусов
•Система генерации комнат
•Механика бомб
•Система волн с разными паттернами

Канал: https://t.me/StarGamesOne
Присылайте свои игры сюда
Akrus Games | Unity
👍131🎄1
Игра подписчика @pingalinux
Моя игра марбл судоку💎
Выпустила 2 недели назад и радуюсь
Уже более 3к скачиваний и несколько сотен активных игроков в день
В игре множество режимов, а также есть ачивки, лидерборд и ивенты🐈
Сейчас тружусь над уведомлениями

Канал: @LumaPlayUG
Игра: Плей маркет игры
Присылайте свои игры сюда
Akrus Games | Unity
🔥73👍2
Возможно, у кого-то есть старый аккаунт Google Play Разработчика (любого года).

Есть возможность хорошо заработать на этом.

Закрытые за неактив аккаунты тоже принимаются(помогу бесплатно восстановить)

По любым вопросам в ЛС @Ilya01s.
🔥5
Media is too big
VIEW IN TELEGRAM
Игра подписчика @blackdragon3129
Мой проект: 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
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
🔥101👍1
⚡️ Unity: Интерфейсы в C# — сила контрактов

Интерфейс — это контракт, который гарантирует, что класс умеет делать определённые действия. Неважно, кто его подписал — игрок, враг или бочка. Главное — они все могут выполнить условия контракта.
В интерфейсах в 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
🔥76👍1