跳到主要内容

Camera

继承

Spatial

简要描述

摄像机节点,从角度显示。

描述

相机是一个特殊节点,显示从其当前位置可见的内容。

成员

类型属性名默认值
intcull_mask1048575
boolcurrentfalse
intdoppler_tracking0
Environmentenvironment
floatfar100.0
floatfov70.0
Vector2frustum_offsetVector2( 0, 0 )
floath_offset0.0
intkeep_aspect1
floatnear0.05
intprojection0
floatsize1.0
floatv_offset0.0

方法

返回值类型方法名称
voidclear_current(enable_next: bool = true)
RIDget_camera_rid() const
Transformget_camera_transform() const
boolget_cull_mask_bit(layer: int) const
Arrayget_frustum() const
boolis_position_behind(world_point: Vector3) const
voidmake_current()
Vector3project_local_ray_normal(screen_point: Vector2) const
Vector3project_position(screen_point: Vector2, z_depth: float) const
Vector3project_ray_normal(screen_point: Vector2) const
Vector3project_ray_origin(screen_point: Vector2) const
voidset_cull_mask_bit(layer: int, enable: bool)
voidset_frustum(size: float, offset: Vector2, z_near: float, z_far: float)
voidset_orthogonal(size: float, z_near: float, z_far: float)
voidset_perspective(fov: float, z_near: float, z_far: float)
Vector2unproject_position(world_point: Vector3) const

枚举

enum Projection:

  • **PROJECTION_PERSPECTIVE = 0**

透视投影。

  • **PROJECTION_ORTHOGONAL = 1**

正交投影,也称为正交投影。

  • **PROJECTION_FRUSTUM = 2**

视锥投影。


enum KeepAspect:

  • **KEEP_WIDTH = 0**

保留水平长宽比;

  • **KEEP_HEIGHT = 1**

保留垂直长宽比;


enum DopplerTracking:

  • **DOPPLER_TRACKING_DISABLED = 0**

禁用[=]多普勒效果[/url]模拟(默认)。

  • **DOPPLER_TRACKING_IDLE_STEP = 1**

通过跟踪在_process中更改的对象的位置来模拟[=]多普勒效应[/url]

  • **DOPPLER_TRACKING_PHYSICS_STEP = 2**

通过跟踪在_physics_process中更改的对象的位置,模拟[=]多普勒效应[/url]


常量

成员说明

  • int cull_mask
Default1048575
setterset_cull_mask(value)
getterget_cull_mask
  • bool current
Defaultfalse
setterset_current(value)
getteris_current
  • int doppler_tracking
Default0
setterset_doppler_tracking(value)
getterget_doppler_tracking
  • Environment environment
setterset_environment(value)
getterget_environment
  • float far
Default100.0
setterset_zfar(value)
getterget_zfar
  • float fov
Default70.0
setterset_fov(value)
getterget_fov
  • Vector2 frustum_offset
DefaultVector2( 0, 0 )
setterset_frustum_offset(value)
getterget_frustum_offset
  • float h_offset
Default0.0
setterset_h_offset(value)
getterget_h_offset
  • int keep_aspect
Default1
setterset_keep_aspect_mode(value)
getterget_keep_aspect_mode
  • float near
Default0.05
setterset_znear(value)
getterget_znear
  • int projection
Default0
setterset_projection(value)
getterget_projection
  • float size
Default1.0
setterset_size(value)
getterget_size
  • float v_offset
Default0.0
setterset_v_offset(value)
getterget_v_offset

方法说明

  • clear_current clear_current(enable_next: bool = true)

如果这是当前相机,请将其从当前相机中移除。


  • get_camera_rid get_camera_rid() const

VisualServer返回摄像机的RID。


  • get_camera_transform get_camera_transform() const

获取相机变换。


  • get_cull_mask_bit get_cull_mask_bit(layer: int) const

如果启用了cull_mask中的给定layer,则返回true,否则返回false


  • get_frustum get_frustum() const

[Space]数组的形式按以下顺序返回相机的视锥平面,它们是[平面]的数组:近,远,左,上,右,下。


  • is_position_behind is_position_behind(world_point: Vector3) const

如果给定位置在摄像机后面,则返回true

注意:返回false的位置可能仍在相机视野之外。


  • make_current make_current()

使此摄像机成为[视口]的当前摄像机(请参阅类说明)。


  • project_local_ray_normal project_local_ray_normal(screen_point: Vector2) const

从沿着相机指向的屏幕点位置返回法线向量。


  • project_position project_position(screen_point: Vector2, z_depth: float) const

返回世界空间中的3D点,该点映射到平面上[视口]矩形中给定的2D坐标,该平面是距摄像机的场景中给定z_depth的距离。


  • project_ray_normal project_ray_normal(screen_point: Vector2) const

返回世界空间中的法线向量,该向量是通过摄像机投影在[视口]矩形上投影一个点的结果。


  • project_ray_origin project_ray_origin(screen_point: Vector2) const

返回世界空间中的3D位置,这是通过相机投影在[视口]矩形上投影一个点的结果。


  • set_cull_mask_bit set_cull_mask_bit(layer: int, enable: bool)

[成员cull_mask]中启用或禁用给定的layer


  • set_frustum set_frustum(size: float, offset: Vector2, z_near: float, z_far: float)

通过指定sizeoffset以及z_near和`,将相机投影设置为平截头体模式(请参见PROJECTION_FRUSTUM)。


  • set_orthogonal set_orthogonal(size: float, z_near: float, z_far: float)

通过指定世界上的size以及z_nearz_far剪辑平面,将相机投影设置为正交模式(请参见PROJECTION_ORTHOGONAL


  • set_perspective set_perspective(fov: float, z_near: float, z_far: float)

通过指定以角度为单位的fov(视场)角度,以及z_near和` z_far,将相机投影设置为透视模式(请参见PROJECTION_PERSPECTIVE


  • unproject_position unproject_position(world_point: Vector3) const

返回[视口]矩形中的2D坐标,该坐标映射到世界空间中的给定3D点。