Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Light2D

繼承: Node2D < CanvasItem < Node < Object

被繼承: DirectionalLight2D, PointLight2D

在 2D 環境中投射光線。

說明

在 2D 環境中投射光線。光線由顏色、能量值、模式(見常數)以及其他各種參數(與範圍和陰影有關)來定義。

教學

屬性

BlendMode

blend_mode

0

Color

color

Color(1, 1, 1, 1)

bool

editor_only

false

bool

enabled

true

float

energy

1.0

int

range_item_cull_mask

1

int

range_layer_max

0

int

range_layer_min

0

int

range_z_max

1024

int

range_z_min

-1024

Color

shadow_color

Color(0, 0, 0, 0)

bool

shadow_enabled

false

ShadowFilter

shadow_filter

0

float

shadow_filter_smooth

0.0

int

shadow_item_cull_mask

1

方法

float

get_height() const

void

set_height(height: float)


列舉

enum ShadowFilter: 🔗

ShadowFilter SHADOW_FILTER_NONE = 0

不對陰影貼圖套用篩選。提供較硬的陰影邊緣,算繪速度最快。見 shadow_filter

ShadowFilter SHADOW_FILTER_PCF5 = 1

對陰影貼圖使用百分比接近篩選(5 個樣本)。與硬陰影算繪相比較慢。見 shadow_filter

ShadowFilter SHADOW_FILTER_PCF13 = 2

對陰影貼圖使用百分比接近篩選(13 個樣本)。最慢的陰影篩選模式,應謹慎使用。見 shadow_filter


enum BlendMode: 🔗

BlendMode BLEND_MODE_ADD = 0

將 Light2D 對應的圖元值與其下方的圖元值相加。這是燈的常見行為。

BlendMode BLEND_MODE_SUB = 1

將 Light2D 對應的圖元值減去其下方的圖元值,產生反光效果。

BlendMode BLEND_MODE_MIX = 2

通過線性插值將 Light2D 對應的圖元值與其下方的圖元值混合。


屬性說明

BlendMode blend_mode = 0 🔗

The Light2D's blend mode.


Color color = Color(1, 1, 1, 1) 🔗

該 Light2D 的顏色 Color


bool editor_only = false 🔗

  • void set_editor_only(value: bool)

  • bool is_editor_only()

如果為 true,Light2D 將只在編輯場景時出現。


bool enabled = true 🔗

  • void set_enabled(value: bool)

  • bool is_enabled()

如果為 true,Light2D 會發光。


float energy = 1.0 🔗

  • void set_energy(value: float)

  • float get_energy()

Light2D 的能量值。該值越大,光線就越強。


int range_item_cull_mask = 1 🔗

  • void set_item_cull_mask(value: int)

  • int get_item_cull_mask()

層遮罩。CanvasItem.light_mask 與之配對的對象才會被該 Light2D 影響。另見 shadow_item_cull_mask,影響的是哪些物件能夠投射陰影。

注意:DirectionalLight2D 會忽略 range_item_cull_mask,始終對 2D 節點進行照明,無論其 CanvasItem.light_mask 的取值。


int range_layer_max = 0 🔗

  • void set_layer_range_max(value: int)

  • int get_layer_range_max()

受 Light2D 影響的對象的最大層數值。


int range_layer_min = 0 🔗

  • void set_layer_range_min(value: int)

  • int get_layer_range_min()

受 Light2D 影響的對象的最小層數值。


int range_z_max = 1024 🔗

  • void set_z_range_max(value: int)

  • int get_z_range_max()

受 Light2D 影響的物體的最大 z 值。


int range_z_min = -1024 🔗

  • void set_z_range_min(value: int)

  • int get_z_range_min()

受 Light2D 影響的物體的最小 z 值。


Color shadow_color = Color(0, 0, 0, 0) 🔗

  • void set_shadow_color(value: Color)

  • Color get_shadow_color()

該 Light2D 投下的影子的顏色 Color


bool shadow_enabled = false 🔗

  • void set_shadow_enabled(value: bool)

  • bool is_shadow_enabled()

如果為 true,則該 Light2D 將投下陰影。


ShadowFilter shadow_filter = 0 🔗

Shadow filter type.


float shadow_filter_smooth = 0.0 🔗

  • void set_shadow_smooth(value: float)

  • float get_shadow_smooth()

陰影的平滑值。更高的值將導致更柔和的陰影,代價是在陰影算繪中可能出現可見的條紋。只有在 shadow_filterSHADOW_FILTER_PCF5SHADOW_FILTER_PCF13 時,shadow_filter_smooth 才有效果。


int shadow_item_cull_mask = 1 🔗

  • void set_item_shadow_cull_mask(value: int)

  • int get_item_shadow_cull_mask()

陰影遮罩。與 LightOccluder2D 一起使用以投射陰影。只有配對 CanvasItem.light_mask 的遮擋物才會投射陰影。另見 range_item_cull_mask,它影響哪些物件可以接收光。


方法說明

float get_height() const 🔗

返回該燈光的高度,用於 2D 法線對應。見 PointLight2D.heightDirectionalLight2D.height


void set_height(height: float) 🔗

設定該燈光的高度,用於 2D 法線對應。見 PointLight2D.heightDirectionalLight2D.height