Подошли в игре к моменту когда надо бы сделать главное меню. И вообще несколько разделов. Как это лучше всего сделать?
1. Одно приложение в котором меняем сцену + view пересоздаётся.
2. В рамках одной сцены прибиваем всё содержимое и грузим новое.
3. Меню делать на Native UI платформы а игру оставить на Urho (но тогда вопрос с менеджментом сцен остаётся)
4. Ваш вариант.
GLoom
Чем тебя Urho-вский UI не устраивает?
Тут кто-то где-то выкладывал ещё один UI, который прикручивается в Urho
1-2. Ты хочешь меню прям в 3D делать?
3. Это как подразумевается? Я в своё время сделал меню в игре на Native UI, благодаря чему потом разработка загнулась, когда пытался переделать на нормальное меню :(
Про сцены - у меня будет сцена боя, сцена прокачки и одевания персонажей, сцена с глобальной картой и т.п.
Можно и на урховском попробовать сделать. Я, собственно, прошу поделиться собственным опытом.
Я бы делал ui прокачки на xamarin forms например. MVVM рулит в плане гибкости и скорости разработки. Вариантов масса, вот и думаю.
Если у тебя всё под мобильные устройства, то ui Xamarin-а хороший вариант. Но вроде он не шибко красивый для игр.
Я могу поделиться только опытом под винды на родном урховском UI. Удобно, я шаблонами и динамикой делал большие и сложные интерфейсы, тут уже где-то показывал.
MVVM - это кто?
Если Urho UI позволяет работать с тачскрином, я бы брал его.
MVVM - model view viewmodel. Это как MVC только вместо controller - viewmodel.
А со сценами как быть? Держать несколько сцен и переключать их?
GLoom
> model view viewmodel
это C# и/или Хамарин?
> А со сценами как быть? Держать несколько сцен и переключать их?
UI Урхи к сцене не привязан, нет надобности что-то делать со сценами. Просто на момент меню тебе надо остановить игру. После меню "отпустить" обратно.
В смысле, для показа UI в Урхе тебе не надо создавать что-то(сцену) дополнительно ещё.
Я бы хотел чтоб фоном меню была другая сцена. А в меню прокачки - персонаж крутился сбоку, то есть ещё одна сцена.
GLoom
> Я бы хотел чтоб фоном меню была другая сцена. А в меню прокачки - персонаж крутился сбоку, то есть ещё одна сцена.
Тогда надо ещё две сцены (+ два ViewPort) сделать и переключаться между ними.
У тебя будет рендерер
Renderer* renderer = GetSubsystem<Renderer>();
Тебе его надо будет просто переключать между ViewPort-ами:
Примерно так:
switch(dwScene) { case 0x0: renderer->SetViewport( 0, Game_.viewport_); break; case 0x1: renderer->SetViewport( 0, Menu_.viewport_); break; case 0x2: renderer->SetViewport( 0, Person_.viewport_); break; }
GLoom
> MVVM рулит в плане гибкости и скорости разработки
Насчет скорости еще может быть, но гибкости чет я сомневаюсь.
А так родной UI urho, вполне самодостаточен.
View3D и SetViewport в помощь
У меня встречный вопрос, возможно ли в урхошарпе, на мобилке прикрутить AdSence AdMob или др. вида рекламу, есть у кого опыт по этой теме?
Zamir
> AdSence
По политике Гугла лет пять назад нельзя было вставлять AdSence в приложения, только в вебсайты. Но тогда гуглплея толком не было... так что не знаю, как сейчас
Zamir
До этой части пока не дошли :(
Отлично, попробую с ViewPorts.
Получилось с ViewPort'ами, работает нормально. Правда в UrhoSharp баг нашёлся, но пока сделал workaround.
Единственное что UI общий и приходиться делать разные root nodes и прятать/показывать.
>приходиться делать разные root nodes и прятать/показывать.
есть же ViewMask для камер
Viewmask так же работает с обработкой кликов?
Тема в архиве.