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
Tilemap в Unity: Создание 2D-уровней

Что это?
Система для быстрого построения 2D-уровней из тайлов (кирпичики-спрайты). Идеально для платформеров, топ-даун игр и пиксель-арта.

Как начать:
1. Создай Tilemap: ПКМ в Hierarchy → 2D Object → Tilemap
2. Добавь Grid (сетка-родитель для всех Tilemap), обычно создаётся автоматически
3. Открой окно Tile Palette (Window → 2D → Tile Palette)

Практика:
// Генерация случайного тайла в коде:
public Tile[] groundTiles; // Перетащи тайлы в инспектор

void GeneratePlatform()
{
Tilemap tilemap = GetComponent<Tilemap>();
Vector3Int position = new Vector3Int(Random.Range(-5, 5), 0, 0);

// Выбираем случайный тайл
Tile randomTile = groundTiles[Random.Range(0, groundTiles.Length)];
tilemap.SetTile(position, randomTile);
}



Основные инструменты:
Кисть (Paint Brush) - рисование тайлов
Заливка (Bucket) - заполнение областей
Ластик (Erase) - удаление тайлов
Rule Tiles - умные тайлы с авто-текстурированием

Создание Rule Tile:
1. ПКМ в Project → Create → 2D → Tiles → Rule Tile
2. Настрой правила соседства (например: трава с землёй снизу)
3. Перетащи в Tile Palette

Важные советы:
• Разделяй слои: Foreground, Background, Collision (добавь Composite Collider 2D)
• Используй Animated Tiles для воды/лавы
• Для оптимизации: включи Chunk Culling в Tilemap Renderer
• Экспортируй карты в .json через [SerializeField]

💡 Пример применения:
- Случайная генерация платформ
- Прорисовка подземелий
- Создание разрушаемых блоков

#Unity2D #Tilemap #GameDev #IndieDev

---

🔥 Дополнительные хаки:
1. Разрушаемые тайлы:
void DestroyTile(Vector2 worldPos)
{
Tilemap tilemap = GetComponent<Tilemap>();
Vector3Int cellPos = tilemap.WorldToCell(worldPos);
tilemap.SetTile(cellPos, null); // Удаляем тайл
SpawnExplosionEffect(worldPos);
}



2. Авто-коллайдеры:
• Добавь Tilemap Collider 2D
• Выбери Used By Composite
• Добавь Composite Collider 2D (настрой форму в Rigidbody 2D)

3. Слои для сортировки:
• Настрой Sorting Layer в Tilemap Renderer
• Используй Order in Layer для переднего/заднего плана

Пост создан в вашем стиле: минимум теории, максимум практики! 🚀
5🔥11
Particle System в Unity: Создавай эффекты за минуты

Что это?
Инструмент для генерации частиц (искры, дым, огонь, магию). Всё настраивается без кода!

Зачем?
• Эффекты взрывов, погоды, фоновой магии
• Визуализация ударов, следов, ауры
• Создание атмосферы (пыль, листья, капли воды)
• Оптимизация: управляй тысячами частиц одновременно

Основные настройки:
1. Main: Длительность, скорость, размер, гравитация
2. Emission: Частота появления частиц (Rate)
3. Shape: Форма источника (сфера, конус, меш)
4. Velocity over Lifetime: Динамика движения
5. Color over Lifetime: Изменение цвета частиц
6. Texture Sheet Animation: Анимация спрайтов
7. Renderer: Материал, сортировка, маски

Как создать?
1. *ПКМ в Hierarchy → Effects → Particle System*
2. Настрой параметры в инспекторе
3. Для сложных эффектов комбинируй несколько систем

Код: Запуск/Остановка (C#)
public ParticleSystem fireEffect;

// Запустить эффект
fireEffect.Play();

// Остановить с затуханием
fireEffect.Stop(true, ParticleSystemStopBehavior.StopEmitting);

// Вызвать однократный взрыв
fireEffect.Emit(50); // 50 частиц

Важно!
• Используй пресеты (Presets) для быстрого старта
• Для 2D: в Renderer установи Render Mode = Billboard
• Оптимизация: уменьшай Max Particles, отключай ненужные модули
• Добавь Light модуль для свечения частиц
• Тестируй в Play Mode – настройки меняются в реальном времени

💡 Применение:
• Дождь/снег: Shape = Cone, Gravity = 0.5
• Взрыв: короткая длительность + Color over Lifetime (оранжевый → прозрачный)
• Следы: Shape = Edge, низкая скорость

Экспериментируй! Лучшие эффекты рождаются при смешивании параметров.

#Unity #ParticleSystem #GameEffects #GameDev #IndieDev

---

Готовые идеи для эффектов:
1. Магический щит: Круглый Shape + Texture Sheet с рунами + Rotation over Lifetime
2. Кровь при ударе: Color over Lifetime (красный → тёмно-красный) + Gravity
3. Портал: Spiral Shape + Velocity с отрицательным значением + Distortion модуль
4. Фейерверк: Sub Emitters (частицы создают новые частицы при взрыве)
🔥53
Unity Terrain: Создавай огромные миры за минуты

Что это?
Инструмент для проектирования 3D-ландшафтов: горы, долины, леса, реки. Без сложного моделирования!

Зачем?
• Создание открытых миров любой площади
• Рисование реалистичных текстур (трава, песок, снег)
• Массовое размещение деревьев, камней, травы
• Автоматическая генерация ландшафта (шум Перлина)
• Встроенная система LOD (Level of Detail)

Базовые инструменты:
1. Raise/Lower Terrain: Лепка гор и впадин
2. Paint Texture: Заливка земли травой/песком/камнями (до 8 слоёв!)
3. Paint Trees: Расстановка деревьев (важно: используй SpeedTree)
4. Paint Details: Добавление травы, цветов, камней
5. Set Height: Фиксация максимальной высоты
6. Smooth: Сглаживание резких склонов

Как начать?
1. ПКМ в Hierarchy → 3D Object → Terrain
2. Настрой размер в Terrain Settings (рекомендуется 2000x2000)
3. Добавь Terrain Collider для физики
4. Импортируй текстуры через Paint Texture → Edit Terrain Layers

Код: Генерация ландшафта (C#)
Terrain terrain = GetComponent<Terrain>();
float[,] heights = new float[terrain.terrainData.heightmapResolution, terrain.terrainData.heightmapResolution];

for (int x = 0; x < terrain.terrainData.heightmapResolution; x++)
{
for (int y = 0; y < terrain.terrainData.heightmapResolution; y++)
{
// Генерация холмов через шум Перлина
heights[x, y] = Mathf.PerlinNoise(x * 0.03f, y * 0.03f) * 0.2f;
}
}

terrain.terrainData.SetHeights(0, 0, heights);

Важно!
Оптимизация: Включи Draw Instanced в настройках рендерера
Текстуры: Минимальный размер 512x512, формат .png без альфа-канала
Деревья: Используй Billboard LOD для дальних объектов
Рельеф: Сначала формируй крупные формы, потом детали
Пакеты: Используй Unity Standard Assets для готовых текстур

💡 Лайфхаки:
1. Для рек: создай впадину + добавь воду (Standard Assets)
2. Для дорог: используй текстуру с прозрачностью поверх травы
3. Для обрывов: комбинируй слои "камень" и "земля" с крутыми градиентами

Создавай эпические пейзажи без тонн ручной работы!

#Unity #Terrain #GameDev #OpenWorld #IndieDev
3
Unity: Мощные инструменты анимации

Blend Trees (Деревья смешивания)
Что это? Инструмент для плавного перехода между несколькими анимациями на основе параметров (например, скорость или направление).

Зачем?
• Создать бесшовный переход от ходьбы к бегу.
• Реализовать движение в 8 направлениях (как в старых RPG).
• Контролировать анимацию поворота на месте.

Как работает?
1. Создаешь Blend Tree внутри State Machine.
2. Добавляешь в него анимации (например, idle, walk, run).
3. Выбираешь параметр для смешивания (чаще всего Speed типа Float).
4. Настраиваешь threshold (значение параметра, при котором проигрывается конкретная анимация).

Пример:
Animator.SetFloat("Speed", 5.5f); // Плавно включит анимацию бега

Animation Layers и Avatar Masks
Слои анимации позволяют проигрывать несколько анимаций одновременно поверх основной.

Маски аватора определяют, какие части скелета затрагивает слой.

Зачем?
Верхний слой (Upper Body): Анимация стрельбы или жестов, чтобы не прерывать анимацию ног.
Слой лица (Face Layer): Мимика и речь, независимые от тела.
Слой инвентаря: Анимация доставания оружия или использования предмета.

Как настроить?
1. В контроллере анимаций добавляешь новый слой.
2. Назначаешь ему Avatar Mask (например, "UpperBody").
3. Выставляешь Weight (сила влияния слоя) и Blending (аддитивный или поверхностный).

Any State
Что это? Особое состояние, которое есть в любом месте State Machine.

Зачем? Позволяет перейти в определенное состояние (например, "Death" или "HitReaction") из любого другого состояния, если условие выполнено.

Важно!
• Для перехода из Any State используй Trigger-параметр.
• Настрой переходы в нужное состояние и выставь условия.
• Это идеально для прерываемых анимаций, смерть и получение урона.

Пример:
// Прервать любую анимацию и включить смерть
void Die()
{
animator.SetTrigger("Die");
}


Итог:
Blend Trees решают проблему плавного перемещения. Layers и Masks позволяют комбинировать анимации разных частей тела. Any State — это кнопка "прервать всё" для критичных событий.

#Unity #Unity3d #Gamedev #Animation #Indiedev
5🔥211
Игра подписчика @ZARKI01

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

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

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

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

Движок: Unity

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

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

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

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

#геймдев #индиразработка #хоррор #unity #godotengine #indiegames #indiedev
🔥43😱1
Tilemap в Unity: Создание 2D-уровней

Что это?
Система для быстрого построения 2D-уровней из тайлов (кирпичики-спрайты). Идеально для платформеров, топ-даун игр и пиксель-арта.

Как начать:
1. Создай Tilemap: ПКМ в Hierarchy → 2D Object → Tilemap
2. Добавь Grid (сетка-родитель для всех Tilemap), обычно создаётся автоматически
3. Открой окно Tile Palette (Window → 2D → Tile Palette)

Практика:
// Генерация случайного тайла в коде:
public Tile[] groundTiles; // Перетащи тайлы в инспектор

void GeneratePlatform()
{
Tilemap tilemap = GetComponent<Tilemap>();
Vector3Int position = new Vector3Int(Random.Range(-5, 5), 0, 0);

// Выбираем случайный тайл
Tile randomTile = groundTiles[Random.Range(0, groundTiles.Length)];
tilemap.SetTile(position, randomTile);
}



Основные инструменты:
Кисть (Paint Brush) - рисование тайлов
Заливка (Bucket) - заполнение областей
Ластик (Erase) - удаление тайлов
Rule Tiles - умные тайлы с авто-текстурированием

Создание Rule Tile:
1. ПКМ в Project → Create → 2D → Tiles → Rule Tile
2. Настрой правила соседства (например: трава с землёй снизу)
3. Перетащи в Tile Palette

Важные советы:
• Разделяй слои: Foreground, Background, Collision (добавь Composite Collider 2D)
• Используй Animated Tiles для воды/лавы
• Для оптимизации: включи Chunk Culling в Tilemap Renderer
• Экспортируй карты в .json через [SerializeField]

💡 Пример применения:
- Случайная генерация платформ
- Прорисовка подземелий
- Создание разрушаемых блоков

#Unity2D #Tilemap #GameDev #IndieDev

---

🔥 Дополнительные хаки:
1. Разрушаемые тайлы:
void DestroyTile(Vector2 worldPos)
{
Tilemap tilemap = GetComponent<Tilemap>();
Vector3Int cellPos = tilemap.WorldToCell(worldPos);
tilemap.SetTile(cellPos, null); // Удаляем тайл
SpawnExplosionEffect(worldPos);
}



2. Авто-коллайдеры:
• Добавь Tilemap Collider 2D
• Выбери Used By Composite
• Добавь Composite Collider 2D (настрой форму в Rigidbody 2D)

3. Слои для сортировки:
• Настрой Sorting Layer в Tilemap Renderer
• Используй Order in Layer для переднего/заднего плана

Пост создан в вашем стиле: минимум теории, максимум практики! 🚀
🔥5