ruggaraxe ruggaraxe

Jusper, Отлично пишите! :)

Jusper Jusper

Я вам еще не закончил писать обратную связь по боевке, есть много вещей которые немного смутили, но они поправимы. Завтра, если перестанут дергать - чиркану. Спасибо за демку!

Jusper Jusper

ruggaraxe,

Да, в этом плане все ок. Логично, что графен на старой машине, если не упарываться, не взлетит. Но я рад, что это было не 5 фпс, как даже в некоторых АА (типа Pillars of Eternity в некоторых схватках...

Jusper Jusper

ruggaraxe,

Подкреплю ее к публикации.

ruggaraxe ruggaraxe

Jusper, вот ссылка на анкету (я затупил со ссылкой с топике, сорри)
https://docs.google.com/forms/d/e/1FAIpQLSd_Wn53lJFrnfGpWI2IX...

ruggaraxe ruggaraxe

Jusper, честно говоря, да на 800х600 даже не проверяли... :) сорри. Ориентировались на FullHD и выше. Хотя над интерфейсом конечно же надо еще хорошенько поработать.
Тултипы постараемся сделать обязательно к следующей версии...

Jusper Jusper

GenElCon,

4x стратегия, понятно.

GenElCon GenElCon

Jusper,

Наверное. В прошлом они сделали Endless Legend - посмотри и сразу станет ясно в какую сторону они работают.

Jusper Jusper

GenElCon,

Я не очень понял по трейлеру геймплей. Это что-то типа цивы? Или это RTS?

GenElCon GenElCon

Humankind от разработчиков Endless Legends (и Space, но тут важно именно Legends).
А также согревающие сердца олдов трейлеры Port Royal 4 и Knights of Honor.

Jusper Jusper

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

Jusper Jusper

Первое, оно же самое тяжелое - UI. Я конечно, понимаю, что 800x600 совсем уже не в моде (завтра проверю на нормальной широформатной машине). Заблюренный текст я еще прочитать могу, но вот конкретно размер его крайне мал...

...
Jusper Jusper

ruggaraxe, я поиграл на старом маке 2012 года (Macbook Pro, Intel HD 4000), рад что с учетом довольно нагруженной по свету и теням картинке игруля не лагает как последняя сволочь (лагает конечно, но очень терпимо...

Jusper Jusper

Вот тут можно посмотреть игровой процесс. Видно, что в Новиграде просаживается FPS.

Jusper Jusper

С учетом тотального количества наигранных на свиче часов, думаю, что именно Switch станет для меня платформой, где я пройду Ведьмака.

Jusper Jusper

alexprey, это первое. Второе это постэффект, которыЙ засвечивает весь песок.

alexprey alexprey

Jusper,

Да, по мне так перебор с интенсивностью освещения

alexprey alexprey

Jusper, в игре используется таже моделька для юнита, только вид сверху)

Jusper Jusper

Пацаны, я опоздал.

Слэш Полигон в эфире.

Логотип проекта 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 я считаю закрытым. Все свободны, можете идти :)

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

Справка