Plastic
this.app должен быть доступен из плейканвасных скриптов, возможно ты вызываешь это откуда-то ещё
8Observer8
> > либо пишет название своей конторы, и потом оно отображается на модели.
> Этот момент мне непонятен. Правильно ли я представляю, грубо говоря, есть 3D
> модель с текстурой, допустим кубик. Есть поле ввода куда вводится текст и
> кнопка . Пользователь вводит текст, нажимает кнопку, и этот текст отображается
> на одной из сторон кубика. Примерно такой пример нужен для начала?
-да, подскажите, если можно, как реализовать создание текстуры из введенного пользователем текста?
ну или, если есть инструмент как 3d-редакторах, "3D Text", который из текстовой строки делает трёхмерную надпись выбранным шрифтом...? такое тоже бы покатило, я думаю.
Plastic
> да, подскажите, если можно, как реализовать создание текстуры из введенного
> пользователем текста?
Мне кажется, что на этом моменте уже уместно попросить вас самостоятельно изучить вопрос :) Потому что это уже относится к веб API, но никак не к PlayCanvas.
Да и примеры же есть официальные - https://playcanvas.com/project/362231/overview/tutorial-canvas-text (возможно там скрипты 1.0, но они не сильно отличаются от 2.0)
Да, спасибо, почти получилось(вывод текста в текстуру).
Теперь ещё добавить поле для его ввода, и будет норм ))
Воот, наткнулся на следующую проблемку:
Создал "2D Screen", внутри Text Element, но походу, без загруженного шрифта он не отображает текст.
А шрифт через Asset -> Upload никакой не добавляет в редактор. Несколько перепробовал, ничего не добавляется в ассеты ((
И соответсно не дает ничего выбрать в Text Element -> Font.
Где я не прав? Вроде по примеру + справке всё делаю.
Так, я правильно понимаю, в PC нет встроенного элемента интерфейса для ввода текста? (как в Юньке)
То-есть или колхозить с помощью Input Events поверх Text Element(я правильно понял?), и опять же, отображение редактирования скриптовать ручками,
или вообще с нуля ваять на JS+CSS+HTML+JQuery(в примере "Монополия" такое юзается) ?
Подскажите, как проще? Встроенных средств точно нету?
Plastic
> колхозить с помощью Input Events поверх Text Element
В вебе любой ввод текста НЕ в стандартный HTMLный input - это уже колхоз.
Plastic
> ли вообще с нуля ваять на JS+CSS+HTML+JQuery
Если этого хватает, то да. Другое дело, если у вас нестандартное поле ввода внутри 3D сцены. Допустим, текстовое поле ввода повёрнутое под углом с перспективой.
Как на Unity UI в World Space
Так как онлайн-редактор PC работает сейчас только через Proxy, то возможность запускать с форума приложения из онлайн-редактора PC в iframe перестала работать без Proxy: https://gamedev.ru/projects/forum/?id=189797&page=22#m326
Набросок из оффлайн-редактора Unity для персоналки:
8Observer8
> Другое дело, если у вас нестандартное поле ввода внутри 3D сцены.
Но у него же там веб-приложение, не? А это значит, что будут не только десктопы с клавиатурой, а еще и планшеты и смартфоны, для которых замучаешься делать вызов экранной клавиатуры, а потом поддерживать это.
Да и использовать Юнити для этого - бешеный оверхед, вы что :)
8Observer8
> Так как онлайн-редактор PC работает сейчас только через Proxy
GLITCHMAN
> Но у него же там веб-приложение, не?
Необычное веб-приложение, а 3D WebGL приложение. Чем BJS UI хуже HTMLовского? Use the Babylon GUI
GLITCHMAN
> Да и использовать Юнити для этого - бешеный оверхед, вы что :)
А я и не писал, что ему нужно использовать Unity вместо PC, он же не занимается разработкой нативных 3D приложений для платшетов и сматрфонов, а делает сайт с WebGL контентом.
GLITCHMAN
Я выше специально осторожно написал "если". Бывает же, что люди пишут, например, свою 3D кнопку на OpenGL ES для мобильных. Программа на OpenGL ES и WebGL - почти одно и тоже. Опять же это просто как вариант. В движке тоже может быть своё UI, как в BJS, например.
*На Юньке тоже пробовал собирать аналогичный проект. Там с интерфейсом проблем нету, но тяжелое, и для мобильного вэба вообще не катит пока что.
Да, получилось у меня примотать небольшой html+css+js интерфейс. с полем ввода. теперь проблема - передать значение которое там ввели, в модель.
Пробовал вариант с запеканием текста в текстуру через канвас - всё норм, но пока не вызываешь повторно функцию запекания из другого скрипта собсно с самим текстом - сыпятся ошибки.
Теперь попробовал вариант с добавлением в 3д-модель элемента Entity - Element(Text), +добавил к нему скрипт ui.js в котором вводится текст. осталась задача банальнейшая - передать этот введенный текст в этот самый Element.
Не работает. Не хватает мне пока познаний в яваскрипте джаваскрипте и PC, всё-таки.
Сцена выглядит так: Scene -> stand_1_07 -> Text1
Scene = Entity,
stand_1_07 - Model,
Text1 - Entity со скриптом ui.js и Element(Text), который и надо менять.
Сейчас у меня в ui.js прописано так:
this.entity.element.text = val; // val - введенный пользователем текст.
ничего.
при этом
this.entity.rotate(90,90,90); поворачивает текст на 90 градусов.
В идеале, конечно бы узнать как заюзать доступ к модели из любого места (никак не привыкну ещё к этим богомерзким this в яваджаваскрипте, и чтобы отпала необходимость привязки скрипта к модели к которой надо обращаться через this).
сейчас у меня работает this.entity.rotate(90,90,90); только из корня ui.js, когда засовываю в функцию - ругается на entity.
Plastic
> Там с интерфейсом проблем нету, но тяжелое, и для мобильного вэба вообще не
> катит пока что.
Да, в документации написано, что Unity WebGL не поддерживает мобильные устройства:
Mobile devices are not supported by Unity WebGL.
Plastic
> яваскрипте
Потому что джаваскрипт!
Тема в архиве.