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

Сотрудничество/реклама/помощь @Akrus001
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Работа подписчика @dagonn55.

Gold for Retirement — это хардкорный платформер, который бросит вам вызов и заставит проявить все свои навыки!
Вам предстоит отправиться в захватывающее приключение, где каждая золотая монета — это шаг к вашей беззаботной старости. Посетите десятки уровней, наполненных сложными испытаниями и опасными ловушками. Наслаждайтесь стильной пиксельной графикой, которая перенесёт вас в атмосферу классических платформеров, и погрузитесь в атмосферу игры благодаря потрясающему саундтреку.
Но главная фишка — это уникальный механизм полётов! Ваш рыцарь оснащён специальным устройством, встроенным в шлем, которое позволяет парить, планировать и преодолевать самые сложные препятствия.


Релиз уже 20 августа 2025 года!

Добавить в вишлист можно тут:
Steam - https://store.steampowered.com/app/3513800/Gold_for_Retirement/
VK play - https://store.steampowered.com/app/3648250/Gold_for_Retirement_Demo/

ТГ - t.me/dagonn555
Ютуб + Трейлер - https://youtu.be/sAlBCOJTxLs?si=4B3dft6iAzvngOBE
4🔥21
Unity Animator: Any State — гибкие переходы

Что это?
Состояние, из которого можно перейти в другое состояние *в любой момент*, независимо от текущей анимации.

Зачем?
• Реагировать на критические события мгновенно (смерть, получение урона)
• Прерывать любую анимацию (например, атаку — если игрока отбросило)
• Упрощать логику переходов между несвязанными состояниями

Как настроить?
1. В окне Animator Controller правой кнопкой → Create StateAny State
2. Создай переход из Any State в целевое состояние (например, "Death")
3. Добавь условие перехода (Bool, Trigger и т.д.)
4. В коде активируй параметр при событии:
animator.SetTrigger("Die"); // Прервёт ЛЮБУЮ анимацию

Важные нюансы:
⚠️ Приоритет: Если к Any State привязано несколько переходов, выполнится первый *валидный*.
Order Matters: Измени порядок переходов в списке (верхний = выше приоритет).
Exit Time не работает: Переход мгновенный, тайминг игнорируется.

Пример:
// При получении смертельного урона:
public void TakeDamage(int damage) {
health -= damage;
if (health <= 0) {
animator.SetTrigger("Die"); // Сработает из ЛЮБОГО состояния
}
}

💡 Где использовать:
• Смерть/возрождение
• Стан/оглушение
• Резкая смена действия (телепорт, трансформация)

Используй Any State для критических событий — сделай игру отзывчивой!
#Unity #gamedev #Animator #Unity3D
🔥8
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15
🎥 Cinemachine: Профессиональные камеры в Unity

Что это?
Система для создания кинематографичных камер. Настраивай поведение камер без тонн кода!

Зачем?
• Плавное слежение за игроком/объектом
• Автоматические переходы между камерами
• Эффектные ракурсы в кат-сценах
• Умное избегание препятствий
• Реакция на события (тряска, зум)

Базовый пример:
1. Установи Cinemachine через Package Manager
2. Создай Virtual Camera: Cinemachine > Create 2D Camera
3. Настрой:
- Follow Target: укажи игрока
- Look At Target: выбери объект фокуса
- Body/Lens: регулируй отступы и FOV

Типы камер:
- FreeLook: Камера-шарнир (подходит для 3D-персонажей)
- StateDriven: Автопереключение камер по анимациям
- Dolly Track: Движение по рельсам для кат-сцен
- MixerCamera: Совмещение нескольких ракурсов

Лайфхак для следящей камеры:
// Добавить тряску при выстреле:
public void ShakeCamera() {
CinemachineImpulseSource impulse = GetComponent<CinemachineImpulseSource>();
impulse.GenerateImpulse();
}

Важно:
• Настрой Noise Profiles для органичных движений
• Используй Confiner для ограничения камеры коллайдером
• Регулируй Damping для резкости/плавности поворотов

💡 Замени стандартные камеры на Cinemachine — это уровень PRO!
#Unity #Cinemachine #GameDev #Gamedevelopment
5
Forwarded from Dimatit Games 🚨
This media is not supported in your browser
VIEW IN TELEGRAM
Dimatit jam

Геймджем будет проходить с 15 по 18 августа.

💰Призовой фонд 4500+* рублей:
🥇 1 место — 2 000 ₽
🥈 2 место — 1 250 ₽
🥉 3 место — 750 ₽
🍺4 место — 500 ₽
Бонус:
📱 5 место – любая игра в стим до 50₽


*можно увеличить призовой фонд! Или написать в лс: @bodr5

Голосование будет проходит по следующим критериям:
🍒 Геймплей
🍒 Визуал
🍒 Соответствие теме
🍒 Общее впечатление

БОНУСНЫЕ ИСПЫТАНИЯ:

Дополнительные условия (каждое = +1 балл):

Обучение встроено в геймплей
Дневник разработчика
У игры есть финал

Результаты будут объявлены в канале организатора: Dimatit Games. 23.08.2025

Огранизатор: @bodr5

Подробнее читайте на странице джема:
https://itch.io/jam/3000-dimatit-jam

Dimatit Games
Please open Telegram to view this post
VIEW IN TELEGRAM
6🎄22
😂
Please open Telegram to view this post
VIEW IN TELEGRAM
62
This media is not supported in your browser
VIEW IN TELEGRAM
🕹️ New Input System: Кроссплатформенное управление

Что это?
Новая система ввода от Unity. Управляй игроком с клавиатуры, мыши, тача или геймпада через единый интерфейс.

Зачем переходить?
• Поддержка любых устройств "из коробки"
• Четкое разделение действий (Actions) и устройств (Devices)
• Проще ремаппинг (смена клавиш)
• Мощная система событий и состояний
• Визуальная отладка через Input Debugger

Как начать?
1. Установи пакет Input System через Package Manager
2. Создай Input Actions Asset (ПКМ в Project View → Create → Input Actions)
3. Настрой Actions (например: "Move", "Jump", "Shoot")
4. Привяжи устройства к Actions (WASD/Стрелки/Стик геймпада → "Move")
5. Добавь компонент Player Input на игрока

Пример кода (чтение ввода):
public class Movement : MonoBehaviour
{
private InputActions controls;

void Awake()
{
controls = new InputActions();
controls.Player.Move.performed += ctx => Move(ctx.ReadValue<Vector2>());
}

void Move(Vector2 direction)
{
// Перемещаем объект (напр., Rigidbody.velocity = direction * speed)
Debug.Log("Движение: " + direction);
}

void OnEnable() => controls.Enable();
void OnDisable() => controls.Disable();
}

Важно!
• Используй Input Action Assets вместо старых Input.GetKey()
• Для UI используй Input System UI Input Module
• Настрой Control Schemes для разных устройств (PC, Mobile, Gamepad)
• Тестируй ремаппинг через Rebinding UI

💡 Применение:
- Плавное переключение между геймпадом и мышью
- Кастомизация управления в настройках игры
- Мобильные джойстики за 5 минут

Переходи на New Input System — пиши универсальный код!
#Unity #GameDev #InputSystem #Gamedevelopment
7
🥲
Please open Telegram to view this post
VIEW IN TELEGRAM
😁52
Поздравляю с днём рождением тебя, Телеграм!
Ты помог мне найти много знакомых, помог создать канал, где я набрал любимых папищиков.
Помог пообщаться с людьми в разных чатах и узнать много нового!
Спасибо Дуров, за то что создал телеграм!
5
Unity: Addressables — умная загрузка ассетов

Что это?
Система для динамической загрузки ресурсов (модели, текстуры, сцены) без захламления памяти. Как "умный склад" для ваших ассетов!

Зачем?
• Уменьшает размер начальной сборки игры
• Загружает контент по требованию (например, уровни)
• Обновляет ассеты без перевыпуска приложения
• Упрощает работу с большими проектами
• Подходит для всех платформ (PC, мобильные, WebGL)

Как начать?
1. Включи в Package Manager: Window > Asset Management > Addressables
2. Пометь ассет как Addressable:
- Выбери ресурс (префаб, текстуру)
- В инспекторе нажми "Addressable" + задай уникальный ключ
3. Загрузи в коде:

using UnityEngine.AddressableAssets;

// Загрузка префаба
Addressables.LoadAssetAsync<GameObject>("Ключ_Ассета").Completed +=
(handle) =>
{
Instantiate(handle.Result);
};

// Выгрузка (обязательно!)
Addressables.Release(handle);

Важно!
• Всегда выгружай ненужные ассеты через Release()
• Группируй ассеты в Addressables Groups (например: "UI", "Уровни")
• Используй Analyze Tool для поиска ошибок зависимостей
• Для сцен: Addressables.LoadSceneAsync("Scene_Key")

💡 Применяй для: DLC, загрузки HD-текстур, управления памятью в мобильных играх.
Тестируй в Play Mode с профилем "Use Existing Build".

#Unity #Addressables #GameDev #Optimization
🔥41
Если админ говорит что напишет пост, то он его напишет! Не надо напоминать ему это каждый год!
8
Я создал канал, где буду писать про разработку игр.
Кому интересно вот ссылка https://t.me/AkrusDnevnik
Посты там красиво оформляться не будут
🤯43🔥1
gpt не хватает🤓
Please open Telegram to view this post
VIEW IN TELEGRAM
8
⚡️Собрал ТОП-5 самых полезных горячих клавиш в Visual Studio, которыми пользуюсь сам.

Сохрани — экономит куча времени:

1️⃣ Alt + ↑ / ↓

💡Передвигает строку (или выделенные строки) вверх/вниз! Можно быстро менять порядок кода без копипаста.

2️⃣ Ctrl + K, D

💡 Выравнивает весь код в файле! (Форматирование). Прощай, ручное выравнивание!

3️⃣ Ctrl + K, C

💡Комментирует все выделенные строки. Полезно для тестов или дебага.

4️⃣ Ctrl + K, U

💡Раскомментирует все выделенные строки. Включить код обратно.

5️⃣ Ctrl + R, R

💡 Переименование переменной, метода или класса везде, где оно используется! Безопасный рефакторинг.


🔔 Подпишись, чтобы не пропустить!

👉Akrus Games | Unity
Please open Telegram to view this post
VIEW IN TELEGRAM
92😁22
главное брать не из вопроса👍
Please open Telegram to view this post
VIEW IN TELEGRAM
😁62
Unity: Sprite Mode Multiple - Разрезаем спрайт-листы!

Зачем это?
Когда импортируешь изображение со множеством спрайтов (анимации, тайлы) — выбери Multiple! Иначе весь лист считается одним большим спрайтом.

Как разрезать?
1. Выбери текстуру в Project окне.
2. В Inspector найди Texture Type -> Sprite (2D and UI).
3. Важно! Поставь Sprite Mode в Multiple.
4. Нажми Sprite Editor (откроется новое окно).

В Sprite Editor:
Авто-резка: Нажми Slice -> Выбери тип (Grid по ячейкам, Automatic по прозрачности).
Ручная резка: Выдели спрайты мышью, поправь границы.
Подтверди: Нажми Apply (в правом верхнем углу).

Готово! Теперь в Project окне разверни текстуру — увидишь все отдельные спрайты.

Зачем так делать?
• Создавать анимации из кадров.
• Использовать тайлы для построения уровней (Tilemap).
• Работать с отдельными элементами UI или объектов.

💡 Совет: Всегда проверяй Sprite Mode при импорте спрайт-листов! Одна настройка — и работа с анимациями/тайлами становится в разы проще.
#Unity #Unity2D #GameDev #Sprites #Gamedevelopment
🔥6
Media is too big
VIEW IN TELEGRAM
🔥 РОЗЫГРЫШ ИСХОДНИКА UNITY: MINECRAFT SANDBOX! 🔥
Привет геймдев-энтузиасты! 🎮 У нас горячий подарок для тех, кто хочет заглянуть под капот крутого проекта: разыгрываем полный исходник Minecraft Sandbox на Unity!

🤩 Что внутри?
🟢 Готовый sandbox

🟢Адаптивный UI в стиле Minecraft

🟢Оптимизированный код на C#

💎 Ассеты + настройки сцен

🎆 Игра полностью адаптирована под яндекс игры, подключена реклама
Ссылка

Идеально для:
🟣 Новичков в Unity (разбор рабочих механик!)
🟣 Портфолио (добавьте крутой проект!)

👑 Как выиграть:

Подписаться на Akrus Games ❤️

Нажать кнопку "Участвовать"

⚠️ Сроки:
До 20 августа 2025! Победителя выберем рандомом, результат закрепим тут.
Победитель один!

#розыгрыш #unity3d #gamedev #исходники #minecraft #кликер #AkrusGames #программирование
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥3😁1🎄111
Unity ECS & Jobs System: революция производительности

Что это?
Архитектура, где данные хранятся отдельно от логики (Data-Oriented Design). Позволяет обрабатывать десятки тысяч объектов без падения FPS.

Зачем?
- Массовые симуляции (орды врагов, частицы, песочницы)
- Полное использование многоядерных процессоров
- Предсказуемое управление памятью (Zero GC Allocations)

Базовые понятия:
- Entity — не объект, а легковесный ID.
- ComponentData — чистые данные (struct, без методов).
- System — логика, которая работает с массивами компонентов.

Пример (спавн кубов):
// Компонент (данные)
public struct RotationSpeed : IComponentData
{
public float RadiansPerSecond;
}

// Система (логика)
public class RotationSystem : SystemBase
{
protected override void OnUpdate()
{
float deltaTime = Time.DeltaTime;
Entities
.ForEach((ref Rotatable rotatable, in RotationSpeed speed) =>
{
rotatable.Value = math.mul(
math.normalize(rotatable.Value),
quaternion.AxisAngle(math.up(), speed.RadiansPerSecond * deltaTime)
);
}).ScheduleParallel();
}
}

Важно!
- Требуется пакет Entities и Unity.Burst
- Это полный разрыв с MonoBehaviour и ООП
- Идеально для VR/AR с strict performance требованиями

💡 Начинай с гибридного подхода: MonoBehaviour -> преобразование в Entity через ConvertToEntity.

#Unity #ECS #Performance #Optimization #JobSystem
🔥3
Shader Graph: создание материалов без кода

Что это?
Визуальный редактор для написания шейдеров. Собираешь нодами, как в редакторе материалов.

Зачем?
- Быстрая итерация: видишь результат в реальном времени
- Не нужно знать HLSL/GLSL на продвинутом уровне
- Создание сложных эффектов (свечение, прокрутка текстур)

Как создать эффект прокрутки текстуры:
1. Создай Texture2D ноду, подключи текстуру.
2. Создай Time ноду для анимированного параметра.
3. Создай Tiling And Offset ноду.
4. Соедини: Time -> Multiply (на скорость) -> Fraction -> в Offset порт Tiling And Offset.
5. Подключи Tiling And Offset к Base Color материала.

Сильные стороны:
- Vertex Displacement (трава, волны на воде)
- Custom Lighting Models (стилизованная графика)
- Procedural Patterns (генерируемые узоры)

Важно!
- Для мобильных платформ используй низкую точность (Half)
- Для UI шейдеров ставь Blend Mode на Alpha

💡 Комбинируй с Scriptable Render Pipeline (URP/HDRP) для полной мощности.

#Unity #ShaderGraph #Shaders #Graphics #URP
🔥8