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

Сотрудничество/реклама/помощь @Akrus001
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Игра подписчика @viseweb
Drone Battles!

В игре вы управляете дроном, который должен остановить вторжение существ из параллельных миров, стремящихся захватить нашу вселенную.

В игре представлено множество уникальных дронов с разнообразным вооружением. Испытайте всех дронов, уничтожай врагов и эпических боссов, добывайте детали для улучшения и становитесь еще сильнее!

Игра уже доступна для регистрации в Google Play. Если вас заинтересовала игра, переходите по ссылке в маркет и жми кнопку регестрации, чтобы не пропустить её выход в релиз и сыграть одним из первых: https://play.google.com/store/apps/details?id=com.SuperAmazingStudio.DroneBattles

Группа студии: @SuperAmazingStudioRu
Канал: @SuperAmazingStudioRu
Присылайте свои игры сюда
Akrus Games | Unity
🔥843
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Загрузка сцен в Unity: красиво и без фризов

Стандартный SceneManager.LoadScene вызывает фриз — не годится для нормального проекта.
Сделаем правильно: с экраном загрузки, прогрессом и без тормозов.

Пока сцена грузится, крутим анимацию и показываем проценты.
1. Создай пустые объекты Menu и Load, меню и экран загрузки соответственно.
2. Прикрепи к ним необходимый UI


Кнопка должна запускать LoadScene()
using System.Collections;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class Play : MonoBehaviour
{
[Header("UI Elements")]
[SerializeField] private Slider progressSlider;
[SerializeField] private TextMeshProUGUI progressText;
[SerializeField] private GameObject start;
[SerializeField] private GameObject load;

// Обновляет слайдер и текст прогресса
void UpdateProgressUI(float progress)
{
progressSlider.value = progress;
progressText.text = $"{progress * 100:F0}%";
}

// Вызывается при нажатии кнопки "Играть"
public void LoadScene()
{
start.SetActive(false);
load.SetActive(true);
StartCoroutine(LoadAsync(1));
}

// Асинхронная загрузка сцены с отображением прогресса
IEnumerator LoadAsync(int sceneName)
{
AsyncOperation operation = SceneManager.LoadSceneAsync(sceneName);
operation.allowSceneActivation = false; // не переключаемся сразу

// Ждём, пока загрузка не достигнет 90%
while (operation.progress < 0.9f)
{
float progress = Mathf.Clamp01(operation.progress / 0.9f);
UpdateProgressUI(progress);
yield return null;
}

// Достигли 90% — показываем 100% и делаем паузу
UpdateProgressUI(1f);
yield return new WaitForSeconds(0.5f); // можно заменить на ожидание нажатия

// Разрешаем переход на новую сцену
operation.allowSceneActivation = true;
}
}


💡 Хитрость: operation.progress идёт до 0.9, а последние 10% — активация сцены.
Поэтому масштабируем progress / 0.9f и уже на 1.0 переводим.


💬 Как загружаешь сцены ты? Асинхронно или всё ещё грузишь синхронно и терпишь фризы?

🔔 Подписывайся — дальше разберём ECS.

Если, что про ECS я помню

👉Akrus Games | Unity
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥63
🙃

Возрождение вечерних мемов 🎉
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17🤯43👍3😁21
Forwarded from NOBICE (Random Beast 🏆)
Розыгрыш 5 подарков 🤪

Условия розыгрыша - подписка на каналы:

NOBICE
AkrusGames
UnStar Studio
SuperAmazingStudio
SuperAmazingStudioRu
LumaPlay


Итоги будут 28 числа 🗓
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6😱22👎1
Глупи гугл не может запомнить😠

Участвуйте в розыгрыше
Please open Telegram to view this post
VIEW IN TELEGRAM
9😁6🔥3
Доброе утро, разработчики!
Всем удачной рабочей недели! 🎉
Please open Telegram to view this post
VIEW IN TELEGRAM
16🔥32
Спасибо❤️

Завтра будет пост🤪
Please open Telegram to view this post
VIEW IN TELEGRAM
126🔥4
6 дней в неделю на основной работе. Дома — жена и маленькая дочка. А по вечерам я открываю Unity и делаю тактическую стратегию

Геймджемы, проекты в стол, а через полгода — диплом геймдизайнера. Опыт есть. Выпущенной игры — нет. Классика жанра, знакомо? Решил наконец это исправить💪

📝Месяц работы. Система строительства, производство ресурсов, чеканка монет, управление игровым временем. Весь код с нуля, без готовых решений. Визуально пока кубики — но если прищуриться, уже почти видно игру😁
Иногда сижу до трёх ночи и сплю четыре часа. Потом прихожу на работу, смотрю на монитор и понимаю — так я не доживу до релиза. Одёргиваю себя, отдыхаю с семьёй и ищу баланс🌈

Веду канал, где всё это в реальном времени: решения, ошибки, прогресс и честные мысли о том, каково это — пилить игру, когда свободного времени почти нет.

➡️Следи за процессом в Telegram @littlegamedev — а совсем скоро будет и видеоформат на YouTube👈
Please open Telegram to view this post
VIEW IN TELEGRAM
207👍2🔥1
Вчера каналу исполнилось 1 год🎉

За этот год:
🟢Мы набрали 2000 подписчиков
🟢Админы написали 914 постов
🟢Я потратил ~1500 рублей(тратил только на геймджем)
🟢Я заработал хорошая попытка, налоговая служба
🟢Было проведено 4 розыгрыша
🟢И создано ~4 папки каналов


Спасибо, что вы со мной!

👍 - лайк, если вы в канале уже год
Please open Telegram to view this post
VIEW IN TELEGRAM
121👍91
Forwarded from NOBICE (Random Beast 🏆)
🎉 Розыгрыш завершен!

🏆 Победители:
1. @sozdal_chipsi
2. @Aleksandr_Kostylevich
3. @Fylht009
4. @tikakalia
5. @hentaibeatsproduction

🔍 Проверить результаты
12🤯1
🔡🔡🔡🔡🔡🔣
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4😱41
Что-то тг не заблокировали, хотя у меня сломались пару прокси.
Это были как обычно новости "могут заблокировать". А могут и не заблокировать🤷‍♂️🤷‍♂️🤷‍♂️

А что у вас произошло после "блокировки" тг? Напишите в комментариях!

Сегодня первое апреля, значит канал будет называть "акукуруз | Нет unity"
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥3👍1
Channel name was changed to «Акукуруз | Нет unity»
Channel photo updated
Соискателей в 11,4 раза больше, чем вакансий. 🪑
Если посмотреть только IT, то там цифра 22,9 раза
Причина: много IT-специалистов и мало IT-вакансий, но много заводских предложений. С высокими зарплатами🤡
Идите на завод!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👎7🤯54🔥2😱2👍11
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Подсветка объектов при наведении

Хочешь, чтобы игрок видел, на что можно кликнуть? Базовый, но важный приём.

Через Outline (красиво и профессионально)

Либо берём готовый ассет Quick Outline из Asset Store (бесплатный).

Ставим на объект скрипт, который включает/выключает компонент Outline при Raycast-попадании.

Скрипт OutCube для объекта:
using UnityEngine;

// Этот класс отвечает за управление подсветкой (Outline) объекта
public class OutCube : MonoBehaviour
{
// Ссылка на компонент Outline, который создает подсветку вокруг объекта
public Outline _outline;

private void Start()
{
// Проверяем, есть ли у нас компонент Outline (не равен ли null)
if (_outline != null)
{
// Отключаем подсветку при старте игры, чтобы объект не светился сразу
_outline.enabled = false;
}
}

// Этот метод включает или выключает подсветку объекта
// state - параметр, который получает метод: true = включить, false = выключить
public void ToggleOutline(bool state)
{
if (_outline != null)
{
_outline.enabled = state;
}
}
}


Скрипт MouseOut для наведения мыши(необязательный, только для примера)
using UnityEngine;

public class MouseOut : MonoBehaviour
{
// Хранит информацию о последнем подсвеченном объекте
private OutCube _currentCube;

void Update()
{
// Создаем луч из камеры через позицию мыши на экране
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

// Рисуем желтый луч в сцене для визуализации (видно только в режиме Scene)
Debug.DrawRay(ray.origin, ray.direction * 100f, Color.yellow);

// Physics.Raycast - пускаем луч и проверяем, во что он попал
if (Physics.Raycast(ray, out RaycastHit hit))
{
// Рисуем зеленый луч до точки попадания
Debug.DrawRay(ray.origin, ray.direction * hit.distance, Color.green);

// Пытаемся получить компонент OutCube с объекта, в который попал луч
OutCube cube = hit.collider.GetComponent<OutCube>();

// Проверяем: если на объекте есть компонент OutCube И это не тот же куб, на который мы уже смотрели
if (cube != null && cube != _currentCube)
{
// ?. - это безопасный вызов: если _currentCube не null, то вызываем метод
_currentCube?.ToggleOutline(false);

_currentCube = cube;

// Включаем подсветку у нового куба
_currentCube.ToggleOutline(true);
}
// Если луч попал в объект без компонента OutCube, но у нас был запомнен предыдущий куб
else if (cube == null && _currentCube != null)
{
// Выключаем подсветку у предыдущего куба
_currentCube.ToggleOutline(false);

// Забываем про предыдущий куб (теперь ни на что не наведены)
_currentCube = null;
}
}
// Если луч вообще ни во что не попал, но у нас был запомнен подсвеченный куб
else if (_currentCube != null)
{
// Выключаем подсветку у последнего куба
_currentCube.ToggleOutline(false);

// Забываем про него
_currentCube = null;
}
}
}


Что важно:
- Outline эффект работает поверх всего и не ломает текстуры.
- Можно настроить цвет (красный для врагов, зелёный для союзников).
- Не требует замены материала — значит, работает с любыми шейдерами.

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

💬 А ты как делаешь подсветку? Юзаешь ассеты или костылишь вручную?
🔔 Подпишись, дальше будет много про шейдеры, эффекты и оптимизацию в инди-разработке.

👉 Akrus Games | Unity
8👍4🔥3😁2🤯1🎄1
Продолжение темы: нейросеть для поиска работы на Hh ❤️

ИИ мониторит вакансии, анализирует шансы и рассылает отклики. Результаты поступают в Telegram-бота.

Автор написал программу для знакомой, но выложил код в открытый доступ на GitHub.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥63👍2👎1
Хотите ли вы все также видеть обучающие посты? Или они уже потеряли актуальность?
Anonymous Poll
83%
Хочу видеть обучающие посты
17%
Не хочу видеть обучающие посты
62🔥1