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

Сотрудничество/реклама/помощь @Akrus001
Download Telegram
Так, маи чуваки. Мои запасы мемов кончаются.

Поэтому пришлите свои мемы в комменты!!
!🎉🎉🎉


@kittysharky жги🎧
Please open Telegram to view this post
VIEW IN TELEGRAM
😁72😱2
Присылайте свои работы в комментарии!👊
Лучшие выложу здесь!

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

🎧Akrus Games | Unity
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥53🎄2
Игра подписчика @ZARKI01

The Unknown Parameter / Неизвестный Параметр

Жанр: Atmospheric survival-horror от первого лица.

Сеттинг: Луна. Вы космонавт, отправленный на поиски пропавшей научной экспедиции.

Что ждёт внутри: Найти можно лишь их трупы... и «это», что за ними охотилось. Забрать образцы и бежать к кораблю под аккомпанемент панических сообщений с луны. Атмосфера одиночества, паники и безысходности в духе классических космических ужасов.

Движок: Unity

Пишу на C#, активно учусь и прототипирую. В планах небольшой, но концентрированный и пугающий опыт.

Следите за развитием! Буду делиться скриншотами, гифками и болью геймдева.

Этот проект я буду делать постепенно, так как ещё пока осваиваю Юнити, и поэтому разработка может длиться от нескольких месяцев.

Тгк - https://t.me/minikraft2010fnaf

#геймдев #индиразработка #хоррор #unity #godotengine #indiegames #indiedev
🔥43😱1
Рисунок подписчика @Gtima_Orion

А я пожелаю всем хорошей недели!
8🔥6🎄3
Сколько вы заработали на геймдеве за этот месяц?🤔
Anonymous Poll
72%
0 руб 💧
8%
от 100 до 500 руб 🤟
2%
от 500 до 2000 руб🎧
18%
больше 2000 руб 💰
63🔥2
⚡️ Unity: шпаргалка по библиотекам в C#

Сохрани эту шпаргалку! Библиотеки — это как суперспособности для твоего кода. Не пиши велосипеды, используй готовые и проверенные решения.

1️⃣ LINQ (Language Integrated Query)

🎯 Для чего: Упрощает работу с коллекциями (массивы, списки). Фильтрация, сортировка, поиск — в одну строку.

💡 Простой пример:
// Найти всех врагов с здоровьем > 50
var strongEnemies = enemiesList.Where(e => e.health > 50);

// Получить список только имён
var names = enemiesList.Select(e => e.name);

📌 using System.Linq; — не забудь эту директиву!

2️⃣ Newtonsoft.Json (JSON.NET)

🎯 Для чего: Самый популярный инструмент для работы с JSON. Сохранение данных настроек, загрузка конфигов с сервера.

💡 Простой пример:
// Сериализация объекта в JSON-строку
string json = JsonConvert.SerializeObject(playerData);

// Обратно из строки в объект
PlayerData loadedData = JsonConvert.DeserializeObject<PlayerData>(json);

📌 Ставь через Package Manager (NuGet) или из Asset Store.

Итог: Освой LINQ — будешь быстро управлять данными. Подключи Newtonsoft.Json — легко работать с сохранениями и API.

📌 Сохрани, чтобы не забыть синтаксис!
💬 Какие библиотеки используешь ты? Делись в комментариях!
🔔 Подпишись — каждый день полезности по C# и Unity!

👉Akrus Games | Unity
8🔥5🎄21
😭
Please open Telegram to view this post
VIEW IN TELEGRAM
1174🤯1
⚡️ Unity: шпаргалка по Collider

Сохрани, чтобы быстро освежить, какой коллайдер и когда использовать. Без воды — только суть.

1️⃣ Примитивные коллайдеры (Box, Sphere, Capsule)

🎯 Идеально для 90% объектов!
Box Collider — стены, ящики, платформы.
Sphere Collider — шары, камни, предметы.
Capsule Collider — персонажи, вертикальные объекты.

💡 Совет: Ставь Is Trigger = true, если объект должен быть сквозным (монетки, зона диалога).

2️⃣ Mesh Collider vs Primitive

Mesh Collider — точное повторение сложной 3D-модели. Тяжелый! Используй только для статичных объектов (например, скала сложной формы).
Primitive Collider — легкий, быстрый. Всегда выбирай его для движущихся объектов.

📌 Важно: В Mesh Collider галочка Convex позволяет сталкиваться с другими Mesh Collider.

3️⃣ 2D коллайдеры (Box Collider 2D, Circle Collider 2D)

• Работают только с другими 2D коллайдерами!
• Нужен Rigidbody 2D для физики.
• Для триггера используй Is Trigger.

💡 Запомни: 2D и 3D коллайдеры никогда не взаимодействуют.

4️⃣ Важные настройки

Material — определяет физические свойства (трение, упругость).
Is Trigger — объект пропускает другие объекты, но генерирует события OnTriggerEnter.
Rigidbody — без него объект будет статичным и не будет реагировать на физическое воздействие.

🔥 Главное правило: Используй самые простые коллайдеры, которые достаточно точно описывают форму объекта. Производительность скажет спасибо!

📌 Сохрани шпаргалку!
💬 Чаще всего используешь Box или Sphere?

👉Akrus Games | Unity
🔥134🎄31
⚡️ Unity: шпаргалка по чистому коду

Сохраняй себе — эти правила сделают твой код читаемым, поддерживаемым и профессиональным.

📝 Именование — это всё

Классы, Методы — с большой буквы: PlayerMovement, CalculateDamage()
переменные, поля — с маленькой буквы: health, isGrounded
CONSTANTS — через подчёркивание: MAX_SPEED
Не используй сокращения: spd , speed

🎯 Принцип единственной ответственности (SRP)

Один класс = одна задача.
PlayerInput → читает ввод.
PlayerMovement → двигает.
PlayerHealth → отвечает за здоровье.

🚫 Избегай магических чисел

Вместо if (distance < 10) пиши:
private float _attackRange = 10f;
if (distance < _attackRange)

🔌 Используй [SerializeField] и приватные поля

[SerializeField] private float _jumpForce;

Так ты скрываешь логику, но оставляешь настройку в Инспекторе.

⚡️ Быстрая инициализация через [SerializeField]

Забудь про public GameObject bullet; и ручное перетаскивание. Помечай поле как [SerializeField] private GameObject _bulletPrefab; и назначай префаб прямо в инспекторе. Это безопаснее и быстрее.

🔄 Кэшируй частые вызовы

Вместо GetComponent<>() в Update:
private Rigidbody _rb;
void Start() { _rb = GetComponent<Rigidbody>(); }

🎮 События (Events) — для связи между скриптами

Система событий делает код независимым.
public static event System.Action OnPlayerDeath;
// Где-то в другом скрипте:
GameManager.OnPlayerDeath += HandlePlayerDeath;

💎 Краткость = профессионализм

Читаемый код > умный код.

💬 Какой главный принцип чистого кода используешь ты?

🔔 Подпишись — больше шпаргалок по C# и Unity уже скоро!

👉Akrus Games | Unity
10🔥6🎄31
@mncrzz_dev написал свой собственный движок на C#.
Первый релиз был сегодня. Даже на раннем этапе реализовано несколько функций стандартных движков. Все работает быстро и четко.
Что реализовано:
1. Создание 3д кубов
2. Передвижение объектов
3. Настройка размера, цвета, позиции через инспектор(там он называется Info)
4. Иерархия, что-то вроде консоли и инспектор.


Я считаю в будущем это будет достойная замена.

Как скачать:
загрузить этот файл. это сдк C#
Скачать следующий файл.

Канал разработчика @breadlabs_dev
🔥7😁432🎄1
Tiny3D.zip
8.3 MB
🔥42🎄2
"Напугайте линуксоида меньше, чем пятью словам"

Я:
7😱4😁21
О, нашел прикольный сайт.
Превращает текст в рукописный.
Думаю будет полезно если в свою локацию в игре захотите добавить записку или письмо.

👉 Забираем здесь
Советую НЕ включать впн, когда заходите на сайт👍
Люди, которые делают домашку с гпт, вы знаете что делать😏
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥102😱2
Unity исполнилось 20 лет!🥳

Поэтому пройдет офицальный джем с 7 по 10 ноября.

🔗 Ссылка

Призы:
Первое место:
Показано в прямом эфире Unity
Лицензии Unity Pro на 1 год (до 5 лицензий на команду)
Эксклюзивная сумка Unity Swag с кепкой Unity, посвящённой 20-летию бренда

Второе место:
Показано в прямом эфире Unity
Лицензии Unity Pro на 1 год (до 5 лицензий на команду)

Третье место:
Показано в прямом эфире Unity
Лицензии Unity Pro на 1 год (до 5 лицензий на команду)

Важное примечание: «Самое креативное использование юбилейных материалов» — это ЕДИНСТВЕННАЯ категория голосования с соответствующими призами.
9🤯3🔥11
Изменяемое окно игры в Unity

Как настроить?
В сборках под ПК (Windows/Mac/Linux) это делается в настройках плеера.

Пошагово:
1. Открой File → Build Settings
2. Выбери платформу (PC)
3. Нажми Player Settings
4. В разделе Resolution and Presentation:
- Default Is Full Screen — сними галочку
- Fullscreen Mode — выбери "Windowed"
- Resizable Window — отметь галочку (доступно для Windows/Mac)

Важные нюансы:
• Размер окна при старте задаётся в полях Default Screen Width/Height
• Игрок может менять размер перетаскиванием краёв окна
• В коде можно отслеживать изменение размера:

void Update()
{
if (Screen.width != lastWidth || Screen.height != lastHeight)
{
// Пересчитать интерфейс или камеру
UpdateLayout();
lastWidth = Screen.width;
lastHeight = Screen.height;
}
}


Что проверить:
- Интерфейс (UI) должен адаптироваться под разные разрешения
- Камера может требовать перенастройки при изменении пропорций
- Для Windows убедись, что в Target Platform выбрана версия с DX11/OpenGL

💡 Используй для: удобства тестирования, игр с оконным режимом, инструментов разработки.

Советую прочитать пост про настройку Canvas

#Unity #GameDev #Сборка #Unity2D #Unity3D
🔥94😱21
⚙️ Unity: основы ECS

Сохрани, если хочешь выжать максимум производительности из Unity! ECS — это подход, где данные и логика разделены. Идеально для тысяч объектов на сцене.

1️⃣ Из чего состоит ECS?

Entity — просто ID, контейнер для данных. Не GameObject!
Component — структура с данными (позиция, здоровье). Не MonoBehaviour!
System — класс с логикой, которая работает над подходящими компонентами.

2️⃣ Как это работает вместе?

Система MovementSystem автоматически находит все Entity, у которых есть компоненты Position и Velocity, и обновляет их.

3️⃣ Пример кода:

// Компонент - ТОЛЬКО данные
public struct Position : IComponentData
{
public float3 Value;
}

public struct Velocity : IComponentData
{
public float3 Value;
}

// Система - ТОЛЬКО логика
public partial class MovementSystem : SystemBase
{
protected override void OnUpdate()
{
float deltaTime = Time.DeltaTime;

Entities
.ForEach((ref Position pos, in Velocity vel) =>
{
pos.Value += vel.Value * deltaTime;
}).ScheduleParallel();
}
}


💥 Главный плюс: Невероятная производительность за счет кеш-дружественности и многопоточности.

🚀 С чего начать?
Установи пакеты Entities, Hybrid Renderer через Package Manager. Используй ConvertToEntity на GameObject для постепенного перехода.

ECS + Jobs System = Мощь для массовки, пуль и сложных симуляций.

💬 Планируешь использовать ECS в своем проекте?
🔔 Подпишись — впереди разбор DOTS, Jobs System и Burst Compiler!

👉Akrus Games | Unity
🔥93🎄11
🚀 Unity ECS: Part 2 — Пишем первую систему

Сохраняй и пробуй! Сегодня разберем как создать работающую ECS-систему с нуля. Без воды — только код и практика.

1️⃣ Создаём компоненты данных

// Компонент для хранения здоровья
public struct Health : IComponentData
{
public float Current;
public float Max;
}

// Компонент для урона
public struct Damage : IComponentData
{
public float Value;
}


2️⃣ Пишем систему обработки урона

public partial class DamageSystem : SystemBase
{
protected override void OnUpdate()
{
float deltaTime = Time.DeltaTime;

Entities
.ForEach((ref Health health, in Damage damage) =>
{
// Уменьшаем здоровье с учётом времени
health.Current -= damage.Value * deltaTime;

// Не даём упасть ниже нуля
if (health.Current < 0)
health.Current = 0;

}).ScheduleParallel();
}
}


3️⃣ Система удаления мёртвых объектов

public partial class DeathSystem : SystemBase
{
private EndSimulationEntityCommandBufferSystem _ecbSystem;

protected override void OnCreate()
{
_ecbSystem = World.GetExistingSystem<EndSimulationEntityCommandBufferSystem>();
}

protected override void OnUpdate()
{
var ecb = _ecbSystem.CreateCommandBuffer();

Entities
.WithNone<DestroyTag>()
.ForEach((Entity entity, in Health health) =>
{
if (health.Current <= 0)
{
ecb.AddComponent<DestroyTag>(entity);
}
}).Run();
}
}

public struct DestroyTag : IComponentData {}


⚡️ Что важно понять:
• Системы работают автоматически каждый кадр
ScheduleParallel() — запускает в несколько потоков
• EntityCommandBuffer — для безопасного изменения Entities

🎯 Практический совет:
Начни с малого — создай систему вращения кубов. Потом добавь движение. Постепенно освоишь все концепции!

💬 Получилось запустить первую систему?
🔔 В следующем посте разберем JobSystem и Burst Compiler для максимальной производительности!

👉Akrus Games | Unity
🔥1043🎄11
Сегодня день рождения у бывшего второго админа канала @egor_uryvaev971. 🎉🎉🎉🎉🎉

Он внес большой вклад в канал: придумал образовательные посты, набрал 270 подписчиков.
Потом он перестал делать посты, ушел на фриланс. С тех пор он не админ.

НО, все же он внес вклад больше чем я.

Желаю Егору счастья, здоровья и успехов💃💃
Поздравьте
его в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
13🔥43