Files
godot-docs-l10n/classes/zh_Hans/class_visualinstance3d.rst
Rémi Verschelde c3f2364c10 Sync classref with 4.6 branch
Lots of translations invalidated (fuzzied) as we just synced Weblate.
2025-12-19 16:39:51 +01:00

227 lines
13 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:github_url: hide
.. _class_VisualInstance3D:
VisualInstance3D
================
**继承:** :ref:`Node3D<class_Node3D>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
**派生:** :ref:`Decal<class_Decal>`, :ref:`FogVolume<class_FogVolume>`, :ref:`GeometryInstance3D<class_GeometryInstance3D>`, :ref:`GPUParticlesAttractor3D<class_GPUParticlesAttractor3D>`, :ref:`GPUParticlesCollision3D<class_GPUParticlesCollision3D>`, :ref:`Light3D<class_Light3D>`, :ref:`LightmapGI<class_LightmapGI>`, :ref:`OccluderInstance3D<class_OccluderInstance3D>`, :ref:`OpenXRVisibilityMask<class_OpenXRVisibilityMask>`, :ref:`ReflectionProbe<class_ReflectionProbe>`, :ref:`RootMotionView<class_RootMotionView>`, :ref:`VisibleOnScreenNotifier3D<class_VisibleOnScreenNotifier3D>`, :ref:`VoxelGI<class_VoxelGI>`
所有可视 3D 节点的父节点。
.. rst-class:: classref-introduction-group
描述
----
**VisualInstance3D** 可用于将资源连接到视觉表示。所有的可视化 3D 节点都继承自 **VisualInstance3D**\ 。一般来说,你不应该直接访问 **VisualInstance3D** 的属性,因为它们是由继承自 **VisualInstance3D** 的节点访问和管理的。\ **VisualInstance3D**:ref:`RenderingServer<class_RenderingServer>` 实例的节点表示。
.. rst-class:: classref-reftable-group
属性
----
.. table::
:widths: auto
+---------------------------+-----------------------------------------------------------------------------------------+-------+
| :ref:`int<class_int>` | :ref:`layers<class_VisualInstance3D_property_layers>` | ``1`` |
+---------------------------+-----------------------------------------------------------------------------------------+-------+
| :ref:`float<class_float>` | :ref:`sorting_offset<class_VisualInstance3D_property_sorting_offset>` | |
+---------------------------+-----------------------------------------------------------------------------------------+-------+
| :ref:`bool<class_bool>` | :ref:`sorting_use_aabb_center<class_VisualInstance3D_property_sorting_use_aabb_center>` | |
+---------------------------+-----------------------------------------------------------------------------------------+-------+
.. rst-class:: classref-reftable-group
方法
----
.. table::
:widths: auto
+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`AABB<class_AABB>` | :ref:`_get_aabb<class_VisualInstance3D_private_method__get_aabb>`\ (\ ) |virtual| |const| |
+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`AABB<class_AABB>` | :ref:`get_aabb<class_VisualInstance3D_method_get_aabb>`\ (\ ) |const| |
+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_RID>` | :ref:`get_base<class_VisualInstance3D_method_get_base>`\ (\ ) |const| |
+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_RID>` | :ref:`get_instance<class_VisualInstance3D_method_get_instance>`\ (\ ) |const| |
+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`get_layer_mask_value<class_VisualInstance3D_method_get_layer_mask_value>`\ (\ layer_number\: :ref:`int<class_int>`\ ) |const| |
+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_base<class_VisualInstance3D_method_set_base>`\ (\ base\: :ref:`RID<class_RID>`\ ) |
+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_layer_mask_value<class_VisualInstance3D_method_set_layer_mask_value>`\ (\ layer_number\: :ref:`int<class_int>`, value\: :ref:`bool<class_bool>`\ ) |
+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
属性说明
--------
.. _class_VisualInstance3D_property_layers:
.. rst-class:: classref-property
:ref:`int<class_int>` **layers** = ``1`` :ref:`🔗<class_VisualInstance3D_property_layers>`
.. rst-class:: classref-property-setget
- |void| **set_layer_mask**\ (\ value\: :ref:`int<class_int>`\ )
- :ref:`int<class_int>` **get_layer_mask**\ (\ )
绘制该 **VisualInstance3D** 的渲染层。
\ :ref:`Camera3D<class_Camera3D>` 的剔除掩码包含该 **VisualInstance3D** 所设置的任何渲染层时,该对象才在该相机中可见。
对于 :ref:`Light3D<class_Light3D>`\ ,可以用于控制指定的灯光能够影响哪些 **VisualInstance3D**\ 。对于 :ref:`GPUParticles3D<class_GPUParticles3D>`\ ,可以用于控制哪些粒子受到吸引器的影响。对于 :ref:`Decal<class_Decal>`\ ,可以用于控制哪些 **VisualInstance3D** 受到指定贴花的影响。
要在脚本中更加方便地调整 :ref:`layers<class_VisualInstance3D_property_layers>`\ ,请使用 :ref:`get_layer_mask_value()<class_VisualInstance3D_method_get_layer_mask_value>`:ref:`set_layer_mask_value()<class_VisualInstance3D_method_set_layer_mask_value>`\ 。
\ **注意:**\ :ref:`VoxelGI<class_VoxelGI>`\ 、SDFGI、\ :ref:`LightmapGI<class_LightmapGI>` 在确定全局光照影响时始终会考虑所有渲染层。如果不希望这样,请将网格的 :ref:`GeometryInstance3D.gi_mode<class_GeometryInstance3D_property_gi_mode>` 设置为 :ref:`GeometryInstance3D.GI_MODE_DISABLED<class_GeometryInstance3D_constant_GI_MODE_DISABLED>`\ ,将灯光的 :ref:`Light3D.light_bake_mode<class_Light3D_property_light_bake_mode>` 设置为 :ref:`Light3D.BAKE_DISABLED<class_Light3D_constant_BAKE_DISABLED>`\ ,这样就能从全局光照中剔除。
.. rst-class:: classref-item-separator
----
.. _class_VisualInstance3D_property_sorting_offset:
.. rst-class:: classref-property
:ref:`float<class_float>` **sorting_offset** :ref:`🔗<class_VisualInstance3D_property_sorting_offset>`
.. rst-class:: classref-property-setget
- |void| **set_sorting_offset**\ (\ value\: :ref:`float<class_float>`\ )
- :ref:`float<class_float>` **get_sorting_offset**\ (\ )
按深度排序时该 **VisualInstance3D** 的深度将调整的量。使用与引擎相同的单位(通常是米)。将其调整为更高的值,将使 **VisualInstance3D** 可靠地绘制在位于同一位置的其他 **VisualInstance3D** 之上。为确保它始终绘制在它周围的其他对象之上(不位于同一位置),请将值设置为大于该 **VisualInstance3D** 与附近其他 **VisualInstance3D** 之间的距离值。
.. rst-class:: classref-item-separator
----
.. _class_VisualInstance3D_property_sorting_use_aabb_center:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **sorting_use_aabb_center** :ref:`🔗<class_VisualInstance3D_property_sorting_use_aabb_center>`
.. rst-class:: classref-property-setget
- |void| **set_sorting_use_aabb_center**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **is_sorting_use_aabb_center**\ (\ )
如果为 ``true``\ ,则该对象会根据其 :ref:`AABB<class_AABB>` 中心点排序。否则会根据其全局位置排序。
对 3D 模型而言,根据 :ref:`AABB<class_AABB>` 的中心点排序一般更为精确。使用 :ref:`GPUParticles3D<class_GPUParticles3D>` 和 :ref:`CPUParticles3D<class_CPUParticles3D>` 时,根据位置排序能够更好地控制绘制顺序。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
方法说明
--------
.. _class_VisualInstance3D_private_method__get_aabb:
.. rst-class:: classref-method
:ref:`AABB<class_AABB>` **_get_aabb**\ (\ ) |virtual| |const| :ref:`🔗<class_VisualInstance3D_private_method__get_aabb>`
.. container:: contribute
There is currently no description for this method. Please help us by `contributing one <https://contributing.godotengine.org/en/latest/documentation/class_reference.html>`__!
.. rst-class:: classref-item-separator
----
.. _class_VisualInstance3D_method_get_aabb:
.. rst-class:: classref-method
:ref:`AABB<class_AABB>` **get_aabb**\ (\ ) |const| :ref:`🔗<class_VisualInstance3D_method_get_aabb>`
返回此 **VisualInstance3D** 的 :ref:`AABB<class_AABB>`\ (也叫边界框)。
.. rst-class:: classref-item-separator
----
.. _class_VisualInstance3D_method_get_base:
.. rst-class:: classref-method
:ref:`RID<class_RID>` **get_base**\ (\ ) |const| :ref:`🔗<class_VisualInstance3D_method_get_base>`
返回与此 **VisualInstance3D** 相关联的资源的 RID。例如如果该节点是 :ref:`MeshInstance3D<class_MeshInstance3D>`\ ,则会返回相关联的 :ref:`Mesh<class_Mesh>` 的 RID。
.. rst-class:: classref-item-separator
----
.. _class_VisualInstance3D_method_get_instance:
.. rst-class:: classref-method
:ref:`RID<class_RID>` **get_instance**\ (\ ) |const| :ref:`🔗<class_VisualInstance3D_method_get_instance>`
返回这个实例的 RID。这个 RID 与 :ref:`RenderingServer.instance_create()<class_RenderingServer_method_instance_create>` 返回的 RID 相同。如果你想为这个 **VisualInstance3D** 直接调用 :ref:`RenderingServer<class_RenderingServer>` 函数,就需要这个 RID。
.. rst-class:: classref-item-separator
----
.. _class_VisualInstance3D_method_get_layer_mask_value:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **get_layer_mask_value**\ (\ layer_number\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_VisualInstance3D_method_get_layer_mask_value>`
返回是否启用了 :ref:`layers<class_VisualInstance3D_property_layers>` 的指定层,该层由一个介于 1 和 20 之间的 ``layer_number`` 指定。
.. rst-class:: classref-item-separator
----
.. _class_VisualInstance3D_method_set_base:
.. rst-class:: classref-method
|void| **set_base**\ (\ base\: :ref:`RID<class_RID>`\ ) :ref:`🔗<class_VisualInstance3D_method_set_base>`
设置由该 **VisualInstance3D** 实例化的资源,这将改变引擎在底层对该 **VisualInstance3D** 的处理方式。相当于 :ref:`RenderingServer.instance_set_base()<class_RenderingServer_method_instance_set_base>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_VisualInstance3D_method_set_layer_mask_value:
.. rst-class:: classref-method
|void| **set_layer_mask_value**\ (\ layer_number\: :ref:`int<class_int>`, value\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_VisualInstance3D_method_set_layer_mask_value>`
基于 ``value``\ ,启用或禁用 :ref:`layers<class_VisualInstance3D_property_layers>` 中的指定层,该层由一个介于 1 和 20 之间的给定 ``layer_number`` 指定。
.. |virtual| replace:: :abbr:`virtual (本方法通常需要用户覆盖才能生效。)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (本方法无副作用,不会修改该实例的任何成员变量。)`
.. |vararg| replace:: :abbr:`vararg (本方法除了能接受在此处描述的参数外,还能够继续接受任意数量的参数。)`
.. |constructor| replace:: :abbr:`constructor (本方法用于构造某个类型。)`
.. |static| replace:: :abbr:`static (调用本方法无需实例,可直接使用类名进行调用。)`
.. |operator| replace:: :abbr:`operator (本方法描述的是使用本类型作为左操作数的有效运算符。)`
.. |bitfield| replace:: :abbr:`BitField (这个值是由下列位标志构成位掩码的整数。)`
.. |void| replace:: :abbr:`void (无返回值。)`