Akrus Games | Unity
Сегодня вечером составим список тем, которые вы написали, поэтому успейте зайти в наш чат и написать тему https://t.me/chatAkrus001. Давайте сделаем 60-65 участников
Давайте 60 участников и делаю голосование, чтобы побольше людей было!
❤4🔥1 1
Выбираем тему для поста
Anonymous Poll
8%
Освещение
38%
Мультиплеер
6%
Визуал
10%
Оптимизация и производительность
10%
Архитектура
9%
ООП
6%
Полезные ресурсы и книги
8%
SOLID
5%
Паттерны проектирования
🔥4❤2 1
Akrus Games | Unity
Выбираем тему для поста
Спасибо вам большое, что набрали 100 голосов, в ближайшее время подготовлю для вас супер пост по мультиплееру❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥3 3
Что вам больше нравится?
Anonymous Poll
41%
Photon
31%
Mirror
13%
Unity Netcode for GameObjects
16%
Свой вариант в комментариях
❤3 2 2
✅ Raycast в Unity: основа взаимодействий
Что это?
Воображаемый луч, который проверяет столкновения с объектами. Как лазерная указка!
Зачем?
• Проверять попадания пуль/лучей
• Определять, видит ли враг игрока
• Измерять дистанции (например, для ИИ)
• Работать с 2D (Physics2D.Raycast) и 3D (Physics.Raycast)
Как работает?
1. Задаешь стартовую точку и направление
2. Указываешь максимальную длину луча
3. Получаешь данные о первом столкнувшемся объекте
Пример 3D:
Пример 2D:
Важно!
• Не забывай про теги и слои (LayerMask) для фильтрации объектов
• Для визуализации в редакторе:
• Используй
💡 Применяй для: оружия, путей ИИ, взаимодействий с окружением.
Практикуйся! Чем чаще используешь — тем интуитивнее становится.
#Unity #Unity3D #GameDev #Raycast #Gamedevelopment
Что это?
Воображаемый луч, который проверяет столкновения с объектами. Как лазерная указка!
Зачем?
• Проверять попадания пуль/лучей
• Определять, видит ли враг игрока
• Измерять дистанции (например, для ИИ)
• Работать с 2D (Physics2D.Raycast) и 3D (Physics.Raycast)
Как работает?
1. Задаешь стартовую точку и направление
2. Указываешь максимальную длину луча
3. Получаешь данные о первом столкнувшемся объекте
Пример 3D:
RaycastHit hit;
if (Physics.Raycast(transform.position, transform.forward, out hit, 20f))
{
// Если луч попал в объект:
Debug.Log("Объект: " + hit.collider.name);
Destroy(hit.collider.gameObject);
}
Пример 2D:
RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.right, 15f);
if (hit.collider != null)
{
Debug.Log("Попал в 2D объект: " + hit.collider.name);
}
Важно!
• Не забывай про теги и слои (LayerMask) для фильтрации объектов
• Для визуализации в редакторе:
Debug.DrawRay(startPos, direction * length, Color.red) • Используй
RaycastAll для множественных попаданий 💡 Применяй для: оружия, путей ИИ, взаимодействий с окружением.
Практикуйся! Чем чаще используешь — тем интуитивнее становится.
#Unity #Unity3D #GameDev #Raycast #Gamedevelopment
❤10 6 2
Что же такое пост обработка в Unity?
Пост обработка - это добавление визуальных эффектов в игру, например свечение или размытие.
Как использовать?
1. Добавь
2. Создай профиль (Profile) в компоненте.
3. На главной камере добавь
4. Выбери слой Volume в настройках камеры.
5. Добавляй эффекты в профиль и настраивай параметры.
Какие бывают эффекты?
- Bloom: Свечение вокруг ярких объектов.
- Depth of Field: Размытие фона (как в фотоаппарате).
- Motion Blur: Размытие при быстром движении.
- Vignette: Затемнение краёв экрана.
- Color Grading: Настройка цветов и контраста.
- Ambient Occlusion: Реалистичные тени в углах.
- Chromatic Aberration: Цветные блики у контрастных краёв.
Используй постобработку, чтобы графика выглядела профессионально! 💥
#Unity #gamedev #постобработка
Пост обработка - это добавление визуальных эффектов в игру, например свечение или размытие.
Как использовать?
1. Добавь
Post-process Volume на сцену. 2. Создай профиль (Profile) в компоненте.
3. На главной камере добавь
Post-process Layer. 4. Выбери слой Volume в настройках камеры.
5. Добавляй эффекты в профиль и настраивай параметры.
Какие бывают эффекты?
- Bloom: Свечение вокруг ярких объектов.
- Depth of Field: Размытие фона (как в фотоаппарате).
- Motion Blur: Размытие при быстром движении.
- Vignette: Затемнение краёв экрана.
- Color Grading: Настройка цветов и контраста.
- Ambient Occlusion: Реалистичные тени в углах.
- Chromatic Aberration: Цветные блики у контрастных краёв.
Используй постобработку, чтобы графика выглядела профессионально! 💥
#Unity #gamedev #постобработка
❤4🔥1🤯1
🧩 Мультиплеер на Photon PUN 2: Код
Хочешь делать мультиплеер, но нет нормальных гайдов? Здесь основы кода!
🔥 Базовая настройка за 2 шага:
1. Скачай PUN 2 в Unity Asset Store
2. В главном меню вызови подключение:
(Добавь скрипт на пустой объект в сцене)
---
🔹 1. 📡 PhotonView - Сердце синхронизации
• Объекты с
•
Код (синхронизация переменной):
---
🔹 2. 📨 RPC (Remote Procedure Call)
• Вызов методов на всех клиентах/конкретном игроке
Код (выстрел):
---
🔹 3. 👑 Master Client - Хозяин комнаты
• Главный клиент (первый вошедший)
• Решает: начало игры, спавн боссов
Код (старт игры):
---
🎯 Итог:
PUN 2 дает готовые инструменты:
→
→
→
Пишешь логику → PUN обрабатывает сеть!
#
Хочешь делать мультиплеер, но нет нормальных гайдов? Здесь основы кода!
🔥 Базовая настройка за 2 шага:
1. Скачай PUN 2 в Unity Asset Store
2. В главном меню вызови подключение:
using Photon.Pun;
void Start() {
PhotonNetwork.ConnectUsingSettings();
}
(Добавь скрипт на пустой объект в сцене)
---
🔹 1. 📡 PhotonView - Сердце синхронизации
• Объекты с
PhotonView видны всем игрокам (пули, стены) •
Observed Components: компоненты для синхронизации (Transform, Rigidbody) Код (синхронизация переменной):
public class PlayerHealth : MonoBehaviour, IPunObservable {
public int health;
public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info) {
if (stream.IsWriting) // Твой игрок → отправка
stream.SendNext(health);
else // Чужой игрок → прием
health = (int)stream.ReceiveNext();
}
} ---
🔹 2. 📨 RPC (Remote Procedure Call)
• Вызов методов на всех клиентах/конкретном игроке
Код (выстрел):
[PunRPC]
void RPC_Shoot(Vector3 pos, Vector3 dir) {
Instantiate(bulletPrefab, pos, Quaternion.LookRotation(dir));
}
void ShootLocally() {
photonView.RPC("RPC_Shoot", RpcTarget.All, gunPosition.position, gunPosition.forward);
}
---
🔹 3. 👑 Master Client - Хозяин комнаты
• Главный клиент (первый вошедший)
• Решает: начало игры, спавн боссов
Код (старт игры):
if (PhotonNetwork.IsMasterClient && allPlayersReady) {
photonView.RPC("RPC_StartGame", RpcTarget.All);
} ---
🎯 Итог:
PUN 2 дает готовые инструменты:
→
PhotonView: синхронизация объектов →
RPC: сетевое взаимодействие →
MasterClient: контроль комнаты Пишешь логику → PUN обрабатывает сеть!
#
Unity #GameDev #Multiplayer #Photon #PUN2 #NetworkCode❤4🔥2😁2 2
✅ ScriptableObjects: Данные без сцен
Что это?
Классы-контейнеры для хранения данных и логики, не привязанных к GameObject. Как "ресурсы" в проекте.
Зачем?
• Хранение настроек (оружие, враги, уровни)
• Создание системы событий (GameEvents)
• Реализация архитектуры на основе данных
• Упрощение балансировки игры
Как создать?
1. Создай класс-наследник
2. ПКМ в Project View → Create → Items/Weapon
3. Настраивай параметры в инспекторе
Как использовать?
Важно!
• Идеально для конфигов и событий
• Не для динамических объектов
• Для runtime изменений нужен паттерн Memento
💡 Применяй: настройки игрока, система диалогов, глобальные ивенты.
#Unity #CSharp #ScriptableObjects #GameDev
Что это?
Классы-контейнеры для хранения данных и логики, не привязанных к GameObject. Как "ресурсы" в проекте.
Зачем?
• Хранение настроек (оружие, враги, уровни)
• Создание системы событий (GameEvents)
• Реализация архитектуры на основе данных
• Упрощение балансировки игры
Как создать?
1. Создай класс-наследник
ScriptableObject: [CreateAssetMenu(fileName = "NewWeapon", menuName = "Items/Weapon")]
public class WeaponSO : ScriptableObject
{
public string weaponName;
public int damage;
public Sprite icon;
}
2. ПКМ в Project View → Create → Items/Weapon
3. Настраивай параметры в инспекторе
Как использовать?
public WeaponSO currentWeapon;
void Start()
{
Debug.Log($"Урон: {currentWeapon.damage}");
}
Важно!
• Идеально для конфигов и событий
• Не для динамических объектов
• Для runtime изменений нужен паттерн Memento
💡 Применяй: настройки игрока, система диалогов, глобальные ивенты.
#Unity #CSharp #ScriptableObjects #GameDev
🔥2❤1😁1 1
✅ Coroutines: Асинхронные операции
Что это?
Функции, выполняющиеся с задержками между кадрами. Не блокируют основной поток.
Зачем?
• Плавные анимации
• Таймеры и задержки
• Постепенная загрузка контента
• Работа с WWW/UnityWebRequest
Как использовать?
Важные нюансы:
• Всегда объявляй как
•
•
• Останавливай через
💡 Не используй для физики! Только для визуала и таймеров.
#Unity #Coroutines #CSharp #GameDev
Что это?
Функции, выполняющиеся с задержками между кадрами. Не блокируют основной поток.
Зачем?
• Плавные анимации
• Таймеры и задержки
• Постепенная загрузка контента
• Работа с WWW/UnityWebRequest
Как использовать?
IEnumerator Fade()
{
float alpha = 1f;
while (alpha > 0)
{
alpha -= Time.deltaTime * 0.5f;
GetComponent<Renderer>().material.color = new Color(1, 1, 1, alpha);
yield return null; // Ждём следующий кадр
}
}
// Запуск:
StartCoroutine(Fade());
Важные нюансы:
• Всегда объявляй как
IEnumerator •
yield return new WaitForSeconds(2f) - пауза •
yield return new WaitUntil(() => condition) - ожидание условия • Останавливай через
StopCoroutine() 💡 Не используй для физики! Только для визуала и таймеров.
#Unity #Coroutines #CSharp #GameDev
🔥5 2 1
✅ OnTrigger vs OnCollision: В чём разница?
Когда что использовать?
• Объекты проходят "сквозь" друг друга
• Нужно детектировать пересечение (зоны, предметы)
• Обязательно: isTrigger = true на коллайдере
• Объекты физически взаимодействуют (отталкиваются)
• Нужна реалистичная физика (падение, толчки)
• isTrigger = false
Пример триггера:
Пример коллизии:
💡 Для 2D используй
#Unity #GameDev #Physics #CSharp
Когда что использовать?
OnTriggerEnter(): • Объекты проходят "сквозь" друг друга
• Нужно детектировать пересечение (зоны, предметы)
• Обязательно: isTrigger = true на коллайдере
OnCollisionEnter(): • Объекты физически взаимодействуют (отталкиваются)
• Нужна реалистичная физика (падение, толчки)
• isTrigger = false
Пример триггера:
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Coin"))
{
Destroy(other.gameObject);
coinsCount++;
}
}
Пример коллизии:
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.CompareTag("Enemy"))
{
TakeDamage(10);
}
}
💡 Для 2D используй
OnTriggerEnter2D и OnCollisionEnter2D! #Unity #GameDev #Physics #CSharp
❤4🔥1 1
✅ PlayerPrefs: Сохранение настроек
Что это?
Система для простого сохранения данных между запусками игры.
Что хранить?
• Настройки громкости
• Лучший счёт
• Прогресс уровней
• Язык интерфейса
Как работает?
Ограничения:
• Только базовые типы (int, float, string)
• Максимум 1 МБ данных
• Не для сложных структур (используй JSON + FileIO)
• Легко редактируется игроком
💡 Всегда проверяй ключи через
#Unity #CSharp #PlayerPrefs #GameDev
Что это?
Система для простого сохранения данных между запусками игры.
Что хранить?
• Настройки громкости
• Лучший счёт
• Прогресс уровней
• Язык интерфейса
Как работает?
// Запись:
PlayerPrefs.SetInt("HighScore", 100);
PlayerPrefs.SetFloat("Volume", 0.85f);
PlayerPrefs.SetString("PlayerName", "Nick");
PlayerPrefs.Save(); // Не забывай!
// Чтение:
int score = PlayerPrefs.GetInt("HighScore", 0); // 0 - значение по умолчанию
Ограничения:
• Только базовые типы (int, float, string)
• Максимум 1 МБ данных
• Не для сложных структур (используй JSON + FileIO)
• Легко редактируется игроком
💡 Всегда проверяй ключи через
HasKey() перед чтением! #Unity #CSharp #PlayerPrefs #GameDev
❤5🔥2 1
Сколько делать постов в день?
Anonymous Poll
39%
3
16%
2
35%
1
10%
Свой вариант в комментариях (не больше 3 в день)
✅ Mathf.Lerp: Плавные переходы
Что это?
Линейная интерполяция между двумя значениями. Основа плавного движения.
Зачем?
• Плавное перемещение объектов
• Изменение цвета/прозрачности
• Регулировка громкости звука
• Анимация UI элементов
Как работает?
Практический пример:
Советы:
• Для нелинейной интерполяции используй Mathf.SmoothStep
• LerpUnclamped игнорирует ограничения 0-1
• Всегда умножайте скорость на Time.deltaTime!
💡 Применяй для: камеры следящей за игроком, анимации здоровья, плавных переходов.
#Unity #Mathf #Lerp #GameDev
Что это?
Линейная интерполяция между двумя значениями. Основа плавного движения.
Зачем?
• Плавное перемещение объектов
• Изменение цвета/прозрачности
• Регулировка громкости звука
• Анимация UI элементов
Как работает?
float start = 0f;
float target = 10f;
float current = Mathf.Lerp(start, target, 0.5f); // = 5f (50% между 0 и 10)
Практический пример:
public Transform target;
public float speed = 0.1f;
void Update()
{
// Плавное перемещение к цели:
transform.position = Vector3.Lerp(transform.position, target.position, speed * Time.deltaTime);
// Плавное изменение цвета:
Color currentColor = Color.Lerp(GetComponent<Renderer>().material.color, Color.red, 0.02f);
GetComponent<Renderer>().material.color = currentColor;
}
Советы:
• Для нелинейной интерполяции используй Mathf.SmoothStep
• LerpUnclamped игнорирует ограничения 0-1
• Всегда умножайте скорость на Time.deltaTime!
💡 Применяй для: камеры следящей за игроком, анимации здоровья, плавных переходов.
#Unity #Mathf #Lerp #GameDev
❤6🔥3 2 1
✅ Object Pooling: Режем лаги при спавне
Что это?
Паттерн: переиспользование объектов вместо Instantiate/Destroy.
Зачем?
• Убрать тормоза при частом спавне (пули, враги)
• Снизить нагрузку GC
• Предотвратить фрагментацию памяти
Как реализовать?
Использование:
Важно!
• Рестарт состояния при возврате в пул
• Динамически расширяй пул при нехватке
• Для частиц используй ParticleSystem.Stop(true)
#Unity #Optimization #GameDev
Что это?
Паттерн: переиспользование объектов вместо Instantiate/Destroy.
Зачем?
• Убрать тормоза при частом спавне (пули, враги)
• Снизить нагрузку GC
• Предотвратить фрагментацию памяти
Как реализовать?
public class BulletPool : MonoBehaviour
{
[SerializeField] GameObject bulletPrefab;
[SerializeField] int poolSize = 20;
private Queue<GameObject> pool = new Queue<GameObject>();
void Start()
{
for (int i = 0; i < poolSize; i++)
{
GameObject bullet = Instantiate(bulletPrefab);
bullet.SetActive(false);
pool.Enqueue(bullet);
}
}
public GameObject GetBullet()
{
if (pool.Count > 0)
{
GameObject bullet = pool.Dequeue();
bullet.SetActive(true);
return bullet;
}
return Instantiate(bulletPrefab); // Fallback
}
public void ReturnBullet(GameObject bullet)
{
bullet.SetActive(false);
pool.Enqueue(bullet);
}
}
Использование:
void Shoot()
{
GameObject bullet = pool.GetBullet();
bullet.transform.position = firePoint.position;
bullet.GetComponent<Rigidbody>().velocity = transform.forward * 50f;
}
// В пуле: void OnCollisionEnter() => pool.ReturnBullet(gameObject);
Важно!
• Рестарт состояния при возврате в пул
• Динамически расширяй пул при нехватке
• Для частиц используй ParticleSystem.Stop(true)
#Unity #Optimization #GameDev
❤6 3🔥2😁1 1
🤯Розыгрыш 500 звёзд!🤯
Длительность до 10 августа😏
Победителей 3👍
〰〰〰〰〰
👤 Участников: 82
🏅 Победители: @NotXlebushek, @VOZHOD, @Aailitaa
Длительность до 10 августа😏
Победителей 3👍
〰〰〰〰〰
👤 Участников: 82
🏅 Победители: @NotXlebushek, @VOZHOD, @Aailitaa
Akrus Games | Unity
🤯Розыгрыш 500 звёзд!🤯 Длительность до 10 августа😏 Победителей 3👍 〰〰〰〰〰 👤 Участников: 82 🏅 Победители: @NotXlebushek, @VOZHOD, @Aailitaa
Участвуем чуваки! 🤑
Это все официально ! Скоро будут итоги !
Условия быть подписанным:
https://t.me/MorPoGameDev
https://t.me/AkrusUnity
Это все официально ! Скоро будут итоги !
Условия быть подписанным:
https://t.me/MorPoGameDev
https://t.me/AkrusUnity
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥3
▎✅ NavMesh в Unity: Искусственный Интеллект и Навигация
▎Что это?
Система для создания навигационных сетей, позволяющая персонажам перемещаться по сцене, избегая препятствий.
▎Зачем?
• Реализовывать движение NPC и врагов
• Управлять маршрутизацией и поведением ИИ
• Улучшать взаимодействие с окружением
▎Как использовать?
1. Создай NavMesh на сцене (Window > AI > Navigation)
2. Установи объекты, которые будут препятствиями (Navigation Static)
3. Запекай NavMesh для создания путей
4. Используй NavMeshAgent для управления движением персонажа
▎Пример кода:
NavMeshAgent agent;
void Start()
{
agent = GetComponent<NavMeshAgent>();
agent.SetDestination(target.position); // Установить цель
}
▎Важно!
• Настраивай параметры NavMeshAgent (скорость, радиус) для точности
• Используй NavMesh Obstacles для динамических объектов
• Проверяй пути в режиме Play для оптимизации
💡 Используй NavMesh для создания умных и реалистичных NPC в игре!
#Unity #NavMesh #AI #GameDev
▎Что это?
Система для создания навигационных сетей, позволяющая персонажам перемещаться по сцене, избегая препятствий.
▎Зачем?
• Реализовывать движение NPC и врагов
• Управлять маршрутизацией и поведением ИИ
• Улучшать взаимодействие с окружением
▎Как использовать?
1. Создай NavMesh на сцене (Window > AI > Navigation)
2. Установи объекты, которые будут препятствиями (Navigation Static)
3. Запекай NavMesh для создания путей
4. Используй NavMeshAgent для управления движением персонажа
▎Пример кода:
NavMeshAgent agent;
void Start()
{
agent = GetComponent<NavMeshAgent>();
agent.SetDestination(target.position); // Установить цель
}
▎Важно!
• Настраивай параметры NavMeshAgent (скорость, радиус) для точности
• Используй NavMesh Obstacles для динамических объектов
• Проверяй пути в режиме Play для оптимизации
💡 Используй NavMesh для создания умных и реалистичных NPC в игре!
#Unity #NavMesh #AI #GameDev
❤4🤯2
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)
Практика:
Основные инструменты:
• Кисть (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. Разрушаемые тайлы:
2. Авто-коллайдеры:
• Добавь Tilemap Collider 2D
• Выбери Used By Composite
• Добавь Composite Collider 2D (настрой форму в Rigidbody 2D)
3. Слои для сортировки:
• Настрой Sorting Layer в Tilemap Renderer
• Используй Order in Layer для переднего/заднего плана
Пост создан в вашем стиле: минимум теории, максимум практики! 🚀
Что это?
Система для быстрого построения 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🔥1 1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8 3 2 2
Akrus Games | Unity
🤯Розыгрыш 500 звёзд!🤯 Длительность до 10 августа😏 Победителей 3👍 〰〰〰〰〰 👤 Участников: 82 🏅 Победители: @NotXlebushek, @VOZHOD, @Aailitaa
Не упустите возможность принять участие! 🌟
Подводим итоги в ближайшее время! 📊
Подводим итоги в ближайшее время! 📊