Mariya Mariya

Dreaman, Спасибо! =)

Dreaman Dreaman

Mariya, законченный вариант реально классно выглядит! Молодец :)

Mariya Mariya

Всем привет!
Сегодня хочу показать законченный вариант домика Сырны.

alexprey alexprey

StarPlosion: Битва с пиратами за планету

Wings' might Wings' might

Всем привет)
Добавил на этой неделе начальное окно, новую валюту и достижения:

alexprey alexprey

shadeborn, может быть они нашли способ как обойти полноценный запуск этих сервисов при запуске игры? Если так, то почему бы и не использовать единый клиент?) В любом случае, чем дальше все идет, там это все больше становится похоже на эту шутку

...
shadeborn shadeborn

Это всё круто, но...зачем? Ок есть Стим. Хорошо, теперь еще и ЕГС есть. Благо, комп не зашкварен Оригином...но у людей и он стоит. И для работы игр внутри этих сервисов нужны, собсно, эти сервисы. Так поверх этих сервисов нужно накатить еще один...

Devion Devion

согласен, есть кейсы которые без них вообще не делаются, не знать или избегать их определенно неправильно

Так точно, либо любое изменение в объекте на стороне редактора.

alexprey alexprey

Devion, только рад за дополнение, Спасибо)

хм, а вот это интересно, не пробовал никогда такой кейс.

Devion Devion

лёш, ты же не против если я дополню? )

скриптаблы, для понимания могут храниться на уровне ассета и на уровне сцены.

Mariya Mariya

Всем привет!
Начали работу над мебелью в домик Сырны, и первым сделали чайный столик с чайным сервизом. А так же продолжаем работу над анимациями.

Wings' might Wings' might

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

alexprey alexprey

А мне кажется это такой особый хитрый ход, хотя с другой стороны как разработчики успеют к этому подготовиться получше 🤔

Dreaman Dreaman

Всем привет!
Для проекта "Mental State" разработано новое устройство, которое уже полностью функционирует внутри игрового мира. Оно носит название "Репульсивер". Совместно с очередными большими воротами это устройство образует новую головоломку...

...
Mariya Mariya

Всем привет!
На этой неделе мы научили Сырну летать!

Tartal Tartal

alexprey, кастомизации - создание внешности персонажа? Я всегда любил это, но не думаю, что это будет к месту в мясном шутере)
EfimovMax, да, есть немного)

Tartal Tartal

Jusper, точно не помню, уже как полгода точно) Я вроде в Дискорде немного обсуждал эту тему. Пока немножко попробовал движок - мне очень нравится. Ну, в конце концов, он идеально подходит под жанры, с которыми я хочу работать...

alexprey alexprey

Первая тема крутая очень!

Логотип проекта Unity

Прочие способы воздействия

AssetDatabase

В любой момент создания редакторов вам может понадобиться необходимость использовать ресурсы из проекта. При том - любой ресурс, а не конкретно те, что лежат в папке "/Resources/". Да и мало того, может понадобиться возможность их сохранять.
Для таких целей в Unity предусмотрен класс AssetDatabase. Его возможности довольно-таки широки, и, возможно, стоят даже отдельной статьи, объясняющей разные фичи/баги.

Handles

Вы можете рисовать в сцене и мало того, пользоваться своими манипуляторами, которые позволят визуально редактировать ваш объект (например, именно так устроены стандартные инструменты позиционирования/поворота/масштабирования).
Так, например, CustomEditor поддерживает метод OnSceneGUI, который позволяет рисовать такие штуковины (например при помощи класса Handles).
По этой теме, я опять же считаю, что должна существовать некоторая отдельная статья. Это очень большая тема, о которой можно рассказать значительно больше одной страницы.

InitializeOnLoad

Часто возникают ситуации, когда нам нужно запустить какой-либо скрипт сразу при изменении кода, или при старте редактора, то есть в тот момент, когда сборка только что была загружена.

Для этих целей нам пригодится атрибут [InitializeOnLoad], которым мы можем пометить любой статический класс, и в этом случае его статический конструктор запустится именно так, как я и написал выше.

Editor: MyEditorInit.cs
[InitializeOnLoad]
public static class MyEditorInit
{
    static MyEditorInit() 
    {
        //Здесь наш код
    }
}

Данный метод в основном применяется в таких ситуациях, как, например, автогенерация кода или подписка на делегаты, о некоторых из которых речь пойдет ниже.

По делегатам

update:
Часто бывает, что в редакторе требуется заюзать апдейт, но сделать это просто неоткуда. В таком случае вам поможет делегат EditorApplication.update. И подписываемся мы на него через описанный выше способ.

Editor: MyEditorInit.cs
[InitializeOnLoad]
public static class MyEditorInit
{
    static MyEditorInit() 
    {
        EditorApplication.update += Update;
    }
    
    static void Update() 
    {
        //Код апдейта
    }
}

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

hierarchyWindowItemOnGUI:
Нельзя обойти стороной делегат EditorApplication.hierarchyWindowItemOnGUI, позволяющий дорисовать объекты в иерархии.
Например, в проекте заказчика я использовал его для быстрого создания объектов:

Прочие способы воздействия — Unity — DevTribe: Разработка игр

Подписка этого делегата должна осуществляться на метод с параметрами, как здесь:

static void HierarchyWindowItemOnGui(int instanceId, Rect selectionRect)

windowChanged
Порой необходимо отследить моменты, когда в иерархии или папке проекта что-то поменялось.
Для этого есть два чудесных делегата - EditorApplication.hierarchyWindowChanged и EditorApplication.projectWindowChanged.

sceneView
Для того, чтобы раскрашивать сцену при помощи методов класса Handles можно создавать методы, не привязанные к конкретным объектам и окнам. Делается это при помощи делегата SceneView.onSceneGUIDelegate

Это, конечно, не все делегаты - вы их еще море найдете. Я написал лишь те, которые юзаются чаще остальных.

Unsupported

Вы никогда не увидите этого класса в документации Unity, но тем не менее он содержит очень много полезных методов. Однако, будьте осторожны - ведь методы могут измениться с новой версией движка.

На этом базовый курс по написанию редакторов для Unity я считаю закрытым. Все свободны, можете идти :)

Здесь еще никто не оставил комментарий