Properties - kuimoani/defold GitHub Wiki

Properties

이 메뉴얼은 Defold에 μ‘΄μž¬ν•˜λŠ” ν”„λ‘œνΌν‹°λ“€μ˜ μ’…λ₯˜μ™€ 이 ν”„λ‘œνΌν‹°λ₯Ό μ–΄λ–»κ²Œ μ‚¬μš©ν•˜κ³  μ—λ‹ˆλ©”μ΄μ…˜ μ²˜λ¦¬ν•˜λŠ”μ§€ μ„€λͺ…ν•©λ‹ˆλ‹€.

Property types

Defoldμ—μ„œλŠ” μ—¬λŸ¬ 개의 ν”„λ‘œνΌν‹° μ„ΈνŠΈκ°€ μžˆμŠ΅λ‹ˆλ‹€.

  • μ‹œμŠ€ν…œμ΄ μ •μ˜ν•œ κ²Œμž„ 였브젝트 트랜슀폼 (μœ„μΉ˜, νšŒμ „, μŠ€μΌ€μΌ) 그리고 μ»΄ν¬λ„ŒνŠΈλ³„ νŠΉμ • ν”„λ‘œνΌν‹°(예λ₯Ό λ“€μ–΄, μŠ€ν”„λΌμ΄νŠΈμ˜ ν”½μ…€ μ‚¬μ΄μ¦ˆλ‚˜ 좩돌 였브젝트의 μ§ˆλŸ‰κ°’ λ“±)
  • Lua μŠ€ν¬λ¦½νŠΈμ— μ •μ˜λœ 슀크립트 μ»΄ν¬λ„ŒνŠΈμ˜ ν”„λ‘œνΌν‹° (μžμ„Έν•œ 것은 [Script properties](Script properties) λ¬Έμ„œ μ°Έκ³ )
  • GUI λ…Έλ“œ ν”„λ‘œνΌν‹°
  • μ‰μ΄λ”λ‚˜ 메터리얼 νŒŒμΌμ— μ •μ˜λœ 쉐이더 μƒμˆ˜ (μžμ„Έν•œ 것은 Material λ¬Έμ„œ μ°Έκ³ )

ν”„λ‘œνΌν‹°κ°€ 어디에 μžˆλŠ”μ§€μ— 따라 λ³΄ν†΅μ˜ ν•¨μˆ˜ ν˜Ήμ€ νŠΉμ • ν•¨μˆ˜λ₯Ό 톡해 μ•‘μ„ΈμŠ€ ν•  μˆ˜μžˆμŠ΅λ‹ˆλ‹€. λ§Žμ€ ν”„λ‘œνΌν‹°λ“€μ€ μžλ™μœΌλ‘œ μ—λ‹ˆλ©”μ΄μ…˜λ  수 μžˆμŠ΅λ‹ˆλ‹€. λ‚΄μž₯ μ‹œμŠ€ν…œμ„ ν†΅ν•œ μ• λ‹ˆλ©”μ΄μ…˜ ν”„λ‘œνΌν‹°λŠ” 직접 ν”„λ‘œνΌν‹°λ₯Ό λ‹€λ£¨λŠ” 것(update() ν•¨μˆ˜ λ‚΄μ—μ„œ) 보닀 μ„±λŠ₯κ³Ό νŽΈλ¦¬ν•¨μ„ 이유둜 κ°•λ ₯히 ꢌμž₯ν•©λ‹ˆλ‹€.

λ˜ν•œ vector3, vector4, quaternion ν˜•μ‹μ˜ 볡합 ν”„λ‘œνΌν‹°λŠ” ν•˜μœ„ μ»΄ν¬λ„ŒνŠΈ(x,y,z,w)λ₯Ό λ…ΈμΆœν•˜λŠ”λ° 점(dot)을 μ΄μš©ν•΄ μ΄λ¦„μ˜ 접미사에 λΆ™μ—¬ κ°œλ³„μ μœΌλ‘œ μ»΄ν¬λ„ŒνŠΈμ— μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, κ²Œμž„ 였브젝트 μœ„μΉ˜μ˜ x μ»΄ν¬λ„ŒνŠΈλ₯Ό μˆ˜μ •ν•˜λ €λ©΄ μ•„λž˜μ™€ 같이 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

-- "game_object"의 x μ’Œν‘œλ₯Ό 10으둜 μ…‹νŒ…
go.set("game_object", "position.x", 10)

go.get(), go.set(), go.animate() ν•¨μˆ˜λŠ” 첫번째 μΈμžμ™€ λ‘λ²ˆμ§Έμ˜ ν”„λ‘œνΌν‹° μ‹λ³„μžλ‘œ 레퍼런슀λ₯Ό μ–»κ²Œ λ©λ‹ˆλ‹€. 이 λ ˆνΌλŸ°μŠ€λŠ” κ²Œμž„ μ˜€λΈŒμ λ“œλ‚˜ μ»΄ν¬λ„ŒνŠΈλ₯Ό μ‹λ³„ν•˜λ©° λ¬Έμžμ—΄μ΄λ‚˜ ν•΄μ‰¬λ‚˜ URL이 될 수 μžˆμŠ΅λ‹ˆλ‹€. URL은 [Message passing](Message passing) λ¬Έμ„œμ— μžμ„Ένžˆ μ„€λͺ…λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. ν”„λ‘œνΌν‹° μ‹λ³„μžλŠ” ν”„λ‘œνΌν‹°μ— 이름을 μ§€μ •ν•˜λŠ” λ¬Έμžμ—΄ ν˜Ήμ€ ν•΄μ‰¬κ°’μž…λ‹ˆλ‹€.

-- sprite μ»΄ν¬λ„ŒνŠΈμ˜ x-scale 값을 λ³€κ²½
local url = msg.url("#sprite")
local prop = hash("scale.x")
go.set(url, prop, 2.0)

GUI λ…Έλ“œμ˜ 경우, λ…Έλ“œ μ‹λ³„μžλŠ” νŠΉμ • ν”„λ‘œνΌν‹° ν•¨μˆ˜λ‘œ μ œκ³΅λ©λ‹ˆλ‹€.

-- Get the color of the button
local node = gui.get_node("button")
local color = gui.get_color(node)

System defined game object and component properties

λͺ¨λ“  κ²Œμž„ μ˜€λΈŒμ νŠΈμ™€ λͺ‡λͺ‡ μ»΄ν¬λ„ŒνŠΈ νƒ€μž…μ€ λŸ°νƒ€μž„μ‹œ 읽고 λ‹€λ£° 수 μžˆλŠ” ν”„λ‘œνΌν‹°λ₯Ό κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€. 이 값은 go.get()둜 읽고 go.set()으둜 μ“Έ 수 있으며 ν”„λ‘œνΌν‹° κ°’μ˜ νƒ€μž…μ— λ”°λΌμ„œ go.animate()으둜 값을 μ—λ‹ˆλ©”μ΄μ…˜ 처리 ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λͺ‡λͺ‡ ν”„λ‘œνΌν‹°λŠ” 읽기 μ „μš©μž…λ‹ˆλ‹€.

get go.get()으둜 읽을 수 있음

get+set go.get()으둜 읽고 go.set()으둜 μ“Έ 수 있음. μˆ«μžν˜• 값은 go.animate() 으둜 μ• λ‹ˆλ©”μ΄μ…˜ 처리 κ°€λŠ₯

κ²Œμž„ 였브젝트의 ν”„λ‘œνΌν‹°λ₯Ό 읽고 μ“Έ 수 μžˆλŠ” go.get_position(), go.set_position(), go.get_rotation(), go.set_rotation() λ“±λ“±μ˜ λ ˆκ±°μ‹œ ν•¨μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

GAME OBJECT PROPERTIES

position κ²Œμž„ 였브젝트의 둜컬 μ’Œν‘œκ°’ vector3 get+set
rotation κ²Œμž„ 였브젝트의 둜컬 νšŒμ „κ°’ (μΏΌν„°λ‹ˆμ˜¨) quaternion get+set
euler κ²Œμž„ 였브젝트의 둜컬 νšŒμ „κ°’ (였일러 각) vector3 get+set
scale κ²Œμž„ 였브젝트의 둜컬 균일(uniform) μŠ€μΌ€μΌκ°’ (1이면 100%(원본)μŠ€μΌ€μΌ) number get+set

SPRITE COMPONENT PROPERTIES

size μŠ€ν”„λΌμ΄νŠΈμ˜ 크기가 μ•„λ‹Œ, μ•„ν‹€λΌμŠ€ μ†ŒμŠ€μ—μ„œ κ°€μ Έμ˜¨ 크기 vector3 get
scale μŠ€ν”„λΌμ΄νŠΈμ˜ 비균일(Non uniform) μŠ€μΌ€μΌκ°’. vectorλ₯Ό μ‚¬μš©ν•˜μ—¬ 각 μΆ•(axis) λ§ˆλ‹€ λ‹€λ₯Έ λΉ„μœ¨μ„ μ„€μ •ν•  수 있음. x와 y좕을 두 배둜 늘리렀면 vmath.vector3(2.0, 2.0, 0) λ₯Ό μ‚¬μš©ν•˜λ©΄ 됨 vector3 get+set

COLLISION OBJECT COMPONENT PROPERTIES

mass 좩돌 였브젝트의 μ§ˆλŸ‰ number get
linear_velocity 좩돌 였브젝트의 ν˜„μž¬ μ„ ν˜• 속도 vector3 get
angular_velocity 좩돌 였브젝트의 ν˜„μž¬ 각 속도 vector3 get
linear_damping 좩돌 였브젝트의 μ„ ν˜• μ œλ™κ°’ vector3 get+set
angular_damping 좩돌 였브젝트의 각 μ œλ™κ°’ vector3 get+set

SPINE MODEL COMPONENT PROPERTIES

animation ν˜„μž¬ μ• λ‹ˆλ©”μ΄μ…˜ hash get
skin ν˜„μž¬ 반영된 λͺ¨λΈμ˜ μŠ€ν‚¨(μ—λ‹ˆλ©”μ΄μ…˜ 될 수 μ—†μŒ!) hash get+set
cursor μ• λ‹ˆλ©”μ΄μ…˜ μž¬μƒ μ»€μ„œμ˜ ν˜„μž¬ μœ„μΉ˜(0~1 사이) number get+set
playback_rate μ• λ‹ˆλ©”μ΄μ…˜ μž¬μƒ 속도. κΈ°λ³Έ μ• λ‹ˆλ©”μ΄μ…˜ μ†λ„μ˜ 배수(multiplier) number get+set

MODEL (3D) COMPONENT PROPERTIES

animation ν˜„μž¬ μ• λ‹ˆλ©”μ΄μ…˜ hash get
cursor μ• λ‹ˆλ©”μ΄μ…˜ μž¬μƒ μ»€μ„œμ˜ ν˜„μž¬ μœ„μΉ˜(0~1 사이) number get+set
playback_rate μ• λ‹ˆλ©”μ΄μ…˜ μž¬μƒ 속도. κΈ°λ³Έ μ• λ‹ˆλ©”μ΄μ…˜ μ†λ„μ˜ 배수(multiplier) number get+set

GUI node properties

GUI λ…Έλ“œ λ˜ν•œ ν”„λ‘œνΌν‹°λ₯Ό κ°€μ§€κ³  μžˆμ§€λ§Œ, νŠΉλ³„ν•œ getter, setter ν•¨μˆ˜λ‘œ 읽고 μ“Έ 수 μžˆμŠ΅λ‹ˆλ‹€. 각 ν”„λ‘œνΌν‹°λŠ” get-κ³Ό set- ν•¨μˆ˜ ν˜•νƒœλ‘œ μ‘΄μž¬ν•˜λ©° μ• λ‹ˆλ©”μ΄μ…˜μ„ λ§Œλ“€ λ•Œ ν”„λ‘œνΌν‹°μ— λŒ€ν•œ 참쑰둜 μ‚¬μš©ν•  수 μžˆλ„λ‘ 미리 μ •μ˜λœ μƒμˆ˜κ°€ μ œκ³΅λ©λ‹ˆλ‹€. 별도 ν”„λ‘œνΌν‹°λ₯Ό μ°Έμ‘°ν•˜λ €λ©΄ ν”„λ‘œνΌν‹°μ˜ λ¬Έμžμ—΄ μ΄λ¦„μ΄λ‚˜ λ¬Έμžμ—΄ μ΄λ¦„μ˜ 해쉬값을 μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

  • "position" (λ˜λŠ” gui.PROP_POSITION)
  • "rotation" (λ˜λŠ” gui.PROP_ROTATION)
  • "scale" (λ˜λŠ” gui.PROP_SCALE)
  • "color" (λ˜λŠ” gui.PROP_COLOR)
  • "outline" (λ˜λŠ” gui.PROP_OUTLINE)
  • "shadow" (λ˜λŠ” gui.PROP_SHADOW)
  • "size" (λ˜λŠ” gui.PROP_SIZE)
  • "fill_angle" (λ˜λŠ” gui.PROP_FILL_ANGLE)
  • "inner_radius" (λ˜λŠ” gui.PROP_INNER_RADIUS)
  • "slice9" (λ˜λŠ” gui.PROP_SLICE9)

λͺ¨λ“  색상 값은 RGBA 값에 ν•΄λ‹Ήν•˜λŠ” vector4둜 인코딩 λ©λ‹ˆλ‹€.

x - red color y - green color z - blue color w - alpha

GUI NODE PROPERTIES

color λ…Έλ“œμ˜ 색상 vector4 gui.get_color(), gui.set_color()
outline λ…Έλ“œμ˜ μ™Έκ³½μ„  색 vector4 gui.get_outline(), gui.set_outline()
position λ…Έλ“œμ˜ μœ„μΉ˜ vector3 gui.get_position(), gui.set_position()
rotation λ…Έλ“œμ˜ νšŒμ „κ°’ (였일러각-각각의 좕을 κΈ°μ€€μœΌλ‘œ νšŒμ „ν•˜λŠ” 각도) vector3 gui.get_rotation(), gui.set_rotation()
scale λ…Έλ“œμ˜ μŠ€μΌ€μΌ(각각의 좕을 κΈ°μ€€μœΌλ‘œ μŠ€μΌ€μΌλ¨) vector3 gui.get_scale(), gui.set_scale()
shadow λ…Έλ“œμ˜ 그림자 색상 vector4 gui.get_shadow(), gui.set_shadow()
size λ…Έλ“œμ˜ μŠ€μΌ€μΌλ˜μ§€ μ•Šμ€ μ‚¬μ΄μ¦ˆ(unscaled size) vector3 gui.get_size(), gui.set_size()
fill_angle pie λ…Έλ“œμ— 색상을 μ±„μš°κΈ° μœ„ν•œ λ°˜μ‹œκ³„ λ°©ν–₯의 각도 number gui.get_fill_angle(), gui.set_fill_angle()
inner_radius pie λ…Έλ“œμ˜ λ‚΄λΆ€ λ°˜μ§€λ¦„ number gui.get_inner_radius(), gui.set_inner_radius()
slice9 slice9 λ…Έλ“œμ˜ κ°€μž₯자리 거리(edge distance) vector4 -