mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 16:03:29 +00:00
Fix Camera2D editor override and 2D debug templates.
This commit is contained in:
parent
abbe792575
commit
d9af8e0acc
3 changed files with 9 additions and 4 deletions
|
@ -229,7 +229,9 @@ Error SceneDebugger::_msg_transform_camera_2d(const Array &p_args) {
|
|||
ERR_FAIL_COND_V(p_args.is_empty(), ERR_INVALID_DATA);
|
||||
ERR_FAIL_COND_V(!SceneTree::get_singleton()->get_root()->is_camera_2d_override_enabled(), ERR_BUG);
|
||||
Transform2D transform = p_args[0];
|
||||
SceneTree::get_singleton()->get_root()->get_override_camera_2d()->set_transform(transform);
|
||||
Camera2D *override_camera = SceneTree::get_singleton()->get_root()->get_override_camera_2d();
|
||||
override_camera->set_offset(transform.affine_inverse().get_origin());
|
||||
override_camera->set_zoom(transform.get_scale());
|
||||
RuntimeNodeSelect::get_singleton()->_queue_selection_update();
|
||||
return OK;
|
||||
}
|
||||
|
@ -1622,7 +1624,6 @@ void RuntimeNodeSelect::_select_set_mode(SelectMode p_mode) {
|
|||
void RuntimeNodeSelect::_set_camera_override_enabled(bool p_enabled) {
|
||||
camera_override = p_enabled;
|
||||
|
||||
Window *root = SceneTree::get_singleton()->get_root();
|
||||
if (camera_first_override) {
|
||||
_reset_camera_2d();
|
||||
#ifndef _3D_DISABLED
|
||||
|
@ -1634,6 +1635,7 @@ void RuntimeNodeSelect::_set_camera_override_enabled(bool p_enabled) {
|
|||
_update_view_2d();
|
||||
|
||||
#ifndef _3D_DISABLED
|
||||
Window *root = SceneTree::get_singleton()->get_root();
|
||||
ERR_FAIL_COND(!root->is_camera_3d_override_enabled());
|
||||
Camera3D *override_camera = root->get_override_camera_3d();
|
||||
override_camera->set_transform(_get_cursor_transform());
|
||||
|
@ -2477,6 +2479,7 @@ void RuntimeNodeSelect::_zoom_callback(float p_zoom_factor, Vector2 p_origin, Re
|
|||
}
|
||||
|
||||
void RuntimeNodeSelect::_reset_camera_2d() {
|
||||
camera_first_override = true;
|
||||
Window *root = SceneTree::get_singleton()->get_root();
|
||||
Camera2D *game_camera = root->is_camera_2d_override_enabled() ? root->get_overridden_camera_2d() : root->get_camera_2d();
|
||||
if (game_camera) {
|
||||
|
@ -2500,7 +2503,7 @@ void RuntimeNodeSelect::_update_view_2d() {
|
|||
Camera2D *override_camera = root->get_override_camera_2d();
|
||||
override_camera->set_anchor_mode(Camera2D::ANCHOR_MODE_FIXED_TOP_LEFT);
|
||||
override_camera->set_zoom(Vector2(view_2d_zoom, view_2d_zoom));
|
||||
override_camera->set_position(view_2d_offset);
|
||||
override_camera->set_offset(view_2d_offset);
|
||||
|
||||
_queue_selection_update();
|
||||
}
|
||||
|
|
|
@ -284,6 +284,7 @@ private:
|
|||
RID sel_drag_ci;
|
||||
|
||||
bool camera_override = false;
|
||||
bool camera_first_override = true;
|
||||
|
||||
// Values taken from EditorZoomWidget.
|
||||
const float VIEW_2D_MIN_ZOOM = 1.0 / 128;
|
||||
|
@ -326,7 +327,6 @@ private:
|
|||
const float CAMERA_MIN_FOV_SCALE = 0.1;
|
||||
const float CAMERA_MAX_FOV_SCALE = 2.5;
|
||||
|
||||
bool camera_first_override = true;
|
||||
bool camera_freelook = false;
|
||||
|
||||
real_t camera_fov = 0;
|
||||
|
|
|
@ -5603,5 +5603,7 @@ T *Viewport::CameraOverride<T>::get_overridden_camera() const {
|
|||
// Explicit template instantiation to allow template definitions inside cpp file
|
||||
// and prevent instantiation using other than the desired camera types.
|
||||
template class Viewport::CameraOverride<Camera2D>;
|
||||
#ifndef _3D_DISABLED
|
||||
template class Viewport::CameraOverride<Camera3D>;
|
||||
#endif // _3D_DISABLED
|
||||
#endif // DEBUG_ENABLED
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue