Лимиты на перемещение камеры Transform внутри сцены
28 декабря 2015 15:45
29 декабря 2015 10:55
Вроде подходящего лимита предусмотренного движком для данной ситуации нет.Нет, можно только вообще отключить перетаскивание галочкой "Use Panning Mode".
Поведение камеры можно изменить, используя систему сенсоров. После загрузки приложения, например, в load_cb() можно создать сенсорное множество на камере, которое регистрирует колбэк limit_cam_cb - в нем можно поменять позицию камеры непосредственно перед рендерингом:
var m_ctl = require("controls");
var m_scenes = require("scenes");
function limit_cam_cb(cam, id, pulse) {
...
}
function load_cb(data_id, success) {
var elapsed = m_ctl.create_elapsed_sensor();
var cam = m_scenes.get_active_camera();
m_ctl.create_sensor_manifold(cam, "MANIFOLD_NAME", m_ctl.CT_CONTINUOUS,
[elapsed], null, limit_cam_cb);
}
29 декабря 2015 14:55
Поведение камеры можно изменить, используя систему сенсоров. После загрузки приложения, например, в load_cb() можно создать сенсорное множество на камере, которое регистрирует колбэк limit_cam_cb - в нем можно поменять позицию камеры непосредственно перед рендерингом:
А как это будет работать? Когда камера будет покидать определённую область сработает колбек, который вернёт предыдущие координаты камеры, так ?
29 декабря 2015 15:16
А как это будет работать? Когда камера будет покидать определённую область сработает колбек, который вернёт предыдущие координаты камеры, так ?Ну, в данном случае сенсор простой - он вызывает колбэк каждый кадр. В нем можно проверить текущие координаты камеры и подвинуть, если нужно. А так можно задавать и более сложную логику вызова колбэка.
Вообще, для подобных действий больше бы подошёл метод set_render_callback() - просто добавляем колбэк перед рендерингом и делаем в нем - что хотим. Это проще, чем разбираться в системе сенсоров. Но сейчас он в некоторых случаях некорректно работает - нам уже жаловались: https://www.blend4web.com/ru/forums/topic/992/. Этот баг мы пофиксим в январском релизе. А вообще, мы планируем поработать с камерой на предмет API для изменения/наследования поведения камеры определённого типа.