Merge pull request #61753 from timothyqiu/own-world
This commit is contained in:
commit
7272ccb53e
3 changed files with 10 additions and 10 deletions
|
@ -227,7 +227,7 @@
|
||||||
The multisample anti-aliasing mode. A higher number results in smoother edges at the cost of significantly worse performance. A value of 2 or 4 is best unless targeting very high-end systems. See also bilinear scaling 3d [member scaling_3d_mode] for supersampling, which provides higher quality but is much more expensive.
|
The multisample anti-aliasing mode. A higher number results in smoother edges at the cost of significantly worse performance. A value of 2 or 4 is best unless targeting very high-end systems. See also bilinear scaling 3d [member scaling_3d_mode] for supersampling, which provides higher quality but is much more expensive.
|
||||||
</member>
|
</member>
|
||||||
<member name="own_world_3d" type="bool" setter="set_use_own_world_3d" getter="is_using_own_world_3d" default="false">
|
<member name="own_world_3d" type="bool" setter="set_use_own_world_3d" getter="is_using_own_world_3d" default="false">
|
||||||
If [code]true[/code], the viewport will use the [World3D] defined in [member world_3d].
|
If [code]true[/code], the viewport will use a unique copy of the [World3D] defined in [member world_3d].
|
||||||
</member>
|
</member>
|
||||||
<member name="physics_object_picking" type="bool" setter="set_physics_object_picking" getter="get_physics_object_picking" default="false">
|
<member name="physics_object_picking" type="bool" setter="set_physics_object_picking" getter="get_physics_object_picking" default="false">
|
||||||
If [code]true[/code], the objects rendered by viewport become subjects of mouse picking process.
|
If [code]true[/code], the objects rendered by viewport become subjects of mouse picking process.
|
||||||
|
|
|
@ -3458,8 +3458,8 @@ void Viewport::_own_world_3d_changed() {
|
||||||
_update_audio_listener_3d();
|
_update_audio_listener_3d();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Viewport::set_use_own_world_3d(bool p_world_3d) {
|
void Viewport::set_use_own_world_3d(bool p_use_own_world_3d) {
|
||||||
if (p_world_3d == own_world_3d.is_valid()) {
|
if (p_use_own_world_3d == own_world_3d.is_valid()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3467,18 +3467,18 @@ void Viewport::set_use_own_world_3d(bool p_world_3d) {
|
||||||
_propagate_exit_world_3d(this);
|
_propagate_exit_world_3d(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!p_world_3d) {
|
if (p_use_own_world_3d) {
|
||||||
own_world_3d = Ref<World3D>();
|
|
||||||
if (world_3d.is_valid()) {
|
|
||||||
world_3d->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &Viewport::_own_world_3d_changed));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (world_3d.is_valid()) {
|
if (world_3d.is_valid()) {
|
||||||
own_world_3d = world_3d->duplicate();
|
own_world_3d = world_3d->duplicate();
|
||||||
world_3d->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &Viewport::_own_world_3d_changed));
|
world_3d->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &Viewport::_own_world_3d_changed));
|
||||||
} else {
|
} else {
|
||||||
own_world_3d = Ref<World3D>(memnew(World3D));
|
own_world_3d = Ref<World3D>(memnew(World3D));
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
own_world_3d = Ref<World3D>();
|
||||||
|
if (world_3d.is_valid()) {
|
||||||
|
world_3d->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &Viewport::_own_world_3d_changed));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_inside_tree()) {
|
if (is_inside_tree()) {
|
||||||
|
|
|
@ -676,7 +676,7 @@ public:
|
||||||
Ref<World3D> get_world_3d() const;
|
Ref<World3D> get_world_3d() const;
|
||||||
Ref<World3D> find_world_3d() const;
|
Ref<World3D> find_world_3d() const;
|
||||||
void _own_world_3d_changed();
|
void _own_world_3d_changed();
|
||||||
void set_use_own_world_3d(bool p_world_3d);
|
void set_use_own_world_3d(bool p_use_own_world_3d);
|
||||||
bool is_using_own_world_3d() const;
|
bool is_using_own_world_3d() const;
|
||||||
void _propagate_enter_world_3d(Node *p_node);
|
void _propagate_enter_world_3d(Node *p_node);
|
||||||
void _propagate_exit_world_3d(Node *p_node);
|
void _propagate_exit_world_3d(Node *p_node);
|
||||||
|
|
Loading…
Reference in a new issue