2016-05-23 4 views
0

В моем проекте у меня есть gameCamera, который используется для разметки вещей внутри моего уровня и uiCamera, который отображает ui-элементы. Я пытаюсь сделать снимок экрана, который состоит только из элементов уровня, а не из ui.Как я могу скрыть определенные элементы при съемке снимка

Моя попытка состояла в том, чтобы скрыть работу uiCamera, но она также ненадолго скрывает ui для пользователя, и это выглядит не очень красиво. Это был код:

// hide the camera 
this->getUiCamera()->setVisible(false); 

utils::captureScreen([](bool captureBool, std::string path) { 
    // do something to make UI visible again, left this out because its not really relevant 
}, "level_screenshot.png"); 

Я также подделаны вокруг с renderTexture, но это не сработало хорошо, вероятно, из-за эффекта параллакса я использую в уровне.

Есть ли способ сделать снимок экрана, скрывая uiCamera? Можно ли сделать снимок экрана только самой игры, возможно, используя renderTexture?

Моей Кокосовая версия 3,9

ответ

0

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

+0

Спасибо за ваш ответ. Я попробовал что-то подобное в моем примере только, что я скрывал камеру вместо узлов, но результат тот же, что я предполагаю. Однако это не выглядит хорошо, потому что пользовательский интерфейс скрывается в течение нескольких секунд, и пользователь может его заметить. Я не могу предоставить решение либо потому, что мы немного изменили ситуацию, поэтому нам больше не нужно снимать скриншоты. – Gigala

Смежные вопросы