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

Сотрудничество/реклама/помощь @Akrus001
Download Telegram
⚡️ Unity: шпаргалка по Rigidbody для новичков

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😱2211
😒
Please open Telegram to view this post
VIEW IN TELEGRAM
95😁41
⚡️ 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
🔥10631
Так, маи чуваки. Мои запасы мемов кончаются.

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


@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