Готова ли Игра?
246 subscribers
130 photos
20 videos
9 files
31 links
Download Telegram
ShowIfAttribute.cs
5.1 KB
Атрибут условного отображения

У меня очень часто случается потребность скрыть или показать поле в зависимости от значений другого. Например, если _hasSecondaryFire == true я отображаю поле _secondaryFireCooldown и наоборот

Делаю подгон для вас!
Реализация данного атрибута с поддержкой пяти типов данных

(Boolean, Enum, Integer, Float, String)

и шести типов сравнений

(Equals, NotEquals, GreaterThan, LessThan, GreaterOrEquals, LessOrEquals)

А так же поддержка множественного условия! (я нигде не видел подобной реализации, так что считайте эксклюзив)

(And, Or)

Как использовать:

    public class Character : MonoBehaviour
{
[SerializeField] private int _level = 1;
[SerializeField] private float _health = 100f;
[SerializeField] private bool _isAlive = true;
[SerializeField] private CharacterClass _characterClass;

// Простое сравнение на равенство
[ShowIf(nameof(_isAlive), true)]
[SerializeField] private float _healthRegenRate;

// Использование оператора сравнения
[ShowIf(nameof(_health), CompareOperator.LessThan, 50f)]
[SerializeField] private bool _isLowHealth;

// Сложное условие с AND
[ShowIf(
nameof(_level), CompareOperator.GreaterOrEquals, 10,
nameof(_health), CompareOperator.GreaterThan, 30f
)]
[SerializeField] private bool _canUseSpecialAbility;

// Сложное условие с OR
[ShowIf(
nameof(_health), CompareOperator.LessThan, 20f,
Condition.Or,
nameof(_isAlive), false
)]
[SerializeField] private float _respawnTimer;

// Комбинация условий
[ShowIf(
nameof(_level), CompareOperator.GreaterOrEquals, 20,
nameof(_characterClass), CharacterClass.Mage,
Condition.Or,
nameof(_health), CompareOperator.LessThan, 30f
)]
[SerializeField] private bool _showEmergencyTeleport;
}


public enum CharacterClass
{
Warrior,
Mage,
Rogue
}


CompareOperator.Equals и Condition.And можно не указывать и пропускать, но советую так не делать, для большей читабельности

#Фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
7321
Готова ли Игра? pinned «👾 Обо мне 👾 Меня зовут - Артем. Мне 22 года. 5 лет назад я начал изучать Unity, а сейчас работаю в Дубаях! Здесь я делюсь своим опытом и помогаю новичкам (и не только) освоиться в этой сфере. Все-таки, за пять лет я успел трижды бросить универ и пройти путь…»
Таймер

Вчера была достаточно сложная фишка, поэтому понижаем градус)

Удобный и простой класс для создания таймера и позможности подписаться на него (а так же поставить на паузу, и получить оставшееся и максимальное время работы)

Кто-то скажет: есть же Invoke(). Вот только, в него можно передать метод только по имени (или через nameof) и нельзя остановить. В общем, он менее удобный

using UnityEngine;

public class Timer
{
public event System.Action TimerComplete;

public float Duration { get; private set; }
public float RemainingTime { get; private set; }
public bool IsRunning { get; private set; }

public Timer(float duration)
{
Duration = duration;
RemainingTime = duration;
}

public void Restart()
{
IsRunning = true;
RemainingTime = Duration;
}

public void Start()
{
IsRunning = true;
}

public void Stop()
{
IsRunning = false;
}

public void Update()
{
if (IsRunning == false) return;

RemainingTime -= Time.deltaTime;

if (RemainingTime <= 0)
{
IsRunning = false;
RemainingTime = Duration;
TimerComplete?.Invoke();
}
}
}


Пример использования:

var timer = new Timer(5f);
timer.OnTimerComplete += () => Debug.Log("Время вышло!");
timer.Start();


#Фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
953
Как я докатился до жизни такой часть 1

Меня зовут - Артем. Я очень люблю игры! Особенно их создавать)

4 года мне понадобилось, чтобы пройти путь «От идеи до реализации», а точнее от желания начать создавать игры, до работы мечты!

В конце 11 класса передо мной стояла непростая задача - выбрать куда поступать. До этого я очень любил физику и писал много олимпиад по ней, но идти работать по этому направлению не было никакого желания. А хотел я делать игры…

Вот только программировать я особо не умел. Был у меня опыт написания простеньких программ на c++, но не больше «калькулятора».

Но большое желание - лучшая мотивация. За одно лето я изучил азы c# и Unity, но начался универ…

Скоро узнаете, что было дальше! А пока, пишите, как вы пришли к идее делать игры)


Продолжение

#ЖизньArtemiZ
943
🤘Путеводитель для начинающего разработчика игр на Unity

Написал для вас полноценное руководство с полного нуля до первой работы!
Пока писал, даже для себя отметил некоторые полезные вещи, так что рекомендую каждому хотя бы пролистать ее. Заодно поддержите меня)

Так же добавил ее в закреп в навигацию, чтобы не потерять)

Тем, кто напишет под этим постом отзыв о статье, я скину в личку полезный файлик от меня)
Please open Telegram to view this post
VIEW IN TELEGRAM
1842
Готова ли Игра? pinned «🤘Путеводитель для начинающего разработчика игр на Unity Написал для вас полноценное руководство с полного нуля до первой работы! Пока писал, даже для себя отметил некоторые полезные вещи, так что рекомендую каждому хотя бы пролистать ее. Заодно поддержите…»
Media is too big
VIEW IN TELEGRAM
В честь выхода статьи я решил сделать что-то необычное для вас!

Представляю вам внутриигровую консоль! Команды для нее добавляются в 1 строку, а сама консоль легко настраивается в инспекторе!

Всем, кто напишет отзыв о статье в комментариях под прошлым постом - я скину исходники с небольшим гайдом)

Ну, а если никто не напишет - оставлю себе, пригодится!)
1722
Задавайте любые вопросы!

Под этим постом вы можете оставить любой свой вопрос, один из них я подробно разберу в следующую пятницу!

Если вы стесняетесь написать лично, можете оставить анонимный вопрос через специального бота
16321
Подписка
Вы получите доступ к закрытому чату, где вы сможете:

- задать мне любой вопрос и получить развернутый ответ
- получить доступ к демкам моих проектов
- периодически получать плюшки от меня
8321
This media is not supported in your browser
VIEW IN TELEGRAM
Я тут создал закрытый чат для випов)

Прямо сейчас там лежит демка одной игрушки, которую мы сейчас делаем)

А еще вы сможете неограниченно спрашивать меня про всякое!
7221
Как вы оцениваете себя сейчас?

Субъективно, как вы себя ощущаете. В скобках указал ориентировочное время плотного изучения сферы, в том числе практика)
Anonymous Poll
28%
Начинающий (до 6 месяцев)
28%
Junior (1-2 года)
10%
Middle (3-4 года)
8%
Senior (от 5 лет)
26%
Я вообще не разработчик:)
4221
Как я докатился до жизни такой часть 2

Начало истории

Поступил я на направление «Программная инженерия», вроде программирование, но интереса к учебе вообще не было. Такой я человек, мне нужен результат, а теория вгоняет в депрессию:(

Первый раз я отчислился, поступил в другой вуз, взял академ, вернулся и опять отчислился. На все это ушло 3,5 года, а прогресса в плане разработки игр почти не было. Но параллельно я проходил курс Skillbox, а потом Ромы Сакутина.

В итоге, перед зимней сессией я окончательно отчислился с пониманием, что больше не вернусь туда.

Начался период «Возьмите меня куда-нибудь»

На этот момент у меня в портфолио был всего один маленький проект - курсовая Скиллбокса и все:)

А работу искать надо...

🔥 - если ждете продолжения, чтобы я знал, что такие посты стоит иногда писать)

Продолжение

#ЖизньArtemiZ
Please open Telegram to view this post
VIEW IN TELEGRAM
87311
Я наконец-то разобрался в том, что хочу создать с помощью своего канала)

Поэтому представляю вам обновленную систему, в которой вы сможете получить хороший бесплатный материал и возможность поработать со мной лично! (если хотите быстро развиваться в сфере разработки)

В этом канале каждую неделю я буду публиковать:
Быстрые советы и трюки Unity
Проводить ответы на вопросы
Рассказывать о работе и жизни в целом!

Я создал закрыты канал для продвинутых. Если вы хотите научиться разрабатывать игры максимально быстро - вам туда!

В закрытом канале я буду постить фишки для продвинутых (все равно в основном канале не все понимают зачем они нужны)
Периодически писать статьи для улучшения работы в Unity
Помогать вашему карьерному развитию
Писать продвинутые техники разработки

Еще я открыл возможность Личного менторства! Да - дорого, зато я буду созваниваться с вами и лично разберу ваш код и дам совет на любую тему)

Подробнее про подписки можете почитать тут

Через две недели цены на подписки поднимутся, так-как сейчас там не так много информации. Так-что сейчас самое время, чтобы протестить и понять, нравится вам такой формат или нет)
7541
Готова ли Игра? pinned «Я наконец-то разобрался в том, что хочу создать с помощью своего канала) Поэтому представляю вам обновленную систему, в которой вы сможете получить хороший бесплатный материал и возможность поработать со мной лично! (если хотите быстро развиваться в сфере…»
Атрибут MinMaxRange

Создает слайдер с двумя ползунками для определения минимального и максимального значения в инспекторе. Идеально подходит для настройки различных диапазонов (урон, время спавна, скорость и т.д.).

В коде ты сможешь взять рандомное значение в заданном диапазоне

using UnityEngine;

public class EnemySpawner : MonoBehaviour
{
[MinMaxRange(1f, 10f)]
[SerializeField] private MinMaxRange _spawnInterval;

void Start()
{
// Получаем случайное значение из диапазона
float nextSpawnTime = _spawnInterval.RandomValue;
Debug.Log($"Следующий спавн через: {nextSpawnTime} секунд");
}
}


#Фишки
833
Хотите статью про нейросети в разработке игр?
732
Так как в закрытом чате сейчас мало человек, делюсь с вами одним полезным постом оттуда)

🎮 Путь Unity-разработчика: Как построить портфолио, которое реально работает

Многие начинающие разработчики делают одну и ту же ошибку - пытаются сразу создать большую игру. Давайте поговорим, как построить портфолио правильно:

1️⃣ Начните с трех маленьких, но законченных проектов:

Простой 2D платформер (1-2 уровня)
Мини-головоломка
Аркада с простой механикой

Каждый проект должен быть полностью играбельным и отполированным!

2️⃣ Что должно быть в каждом проекте:

Базовое меню
Сохранение прогресса
Звуки и простые эффекты
Хотя бы минимальный UI

3️⃣ Главное правило: лучше три маленьких законченных игры, чем одна большая недоделанная.

🎯 Совет: После каждого проекта публикуйте его на itch.io и добавляйте ссылку в резюме. Работодатели ценят возможность сразу поиграть в ваши работы.

#ВИП
6321
Ответ на вопрос: как сделать динамически меняющиеся статы?

Создал для вас простенькую систему статов для небольших проектов. Достаточно гибкая, если вы захотите дополнить ее)

Суть в том, что вы добавляете в список стат и описываете его (название, начальное значение)

Затем по имени вы сможете к нему обратиться и поменять

Рекомендация: добавьте файл с константами или перечислением статов, чтобы не использовать строки напрямую
7321