Value Objects

๊ฐœ์š”

IntValue, StringValue์™€ ๊ฐ™์€ Value ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด RemoteEvent์™€ ๊ฐ™์€ ํ†ต์‹  ์ฒ˜๋ฆฌ ์—†์ด๋„ ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„์˜ ๊ฐ’์„ ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด, ๋„คํŠธ์›Œํฌ ํ†ต์‹  ๊ตฌ์กฐ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ์ฝ”๋“œ ๋ณต์žก๋„๋ฅผ ์ค„์ด๋ฉด์„œ ์‰ฝ๊ฒŒ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

์ง€์›๋˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…

๋ฐ์ดํ„ฐ ํƒ€์ž…
์ง€์› ์—ฌ๋ถ€
๋น„๊ณ 

IntValue

O

์ •์ˆ˜๊ฐ’ ์ „์šฉ

NumberValue

O

์ •์ˆ˜ ๋ฐ ์‹ค์ˆ˜ ํฌํ•จ

StringValue

O

BoolValue

O

ObjectValue

X

CFrameValue

X

Vector3Value

X

Color3Value

X

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

Value ์˜ค๋ธŒ์ ํŠธ์˜ ๊ฐ’์„ ์„œ๋ฒ„์—์„œ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ณ„๋„์˜ RemoteEvent๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ํด๋ผ์ด์–ธํŠธ์—์„œ ํ•ด๋‹น ๊ฐ’์„ ์ฝ์„ ์ˆ˜ ์žˆ์–ด, ํ†ต์‹  ๊ตฌ์กฐ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ์ฝ”๋“œ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ชฌ์Šคํ„ฐ์˜ ๋ฐ๋ฏธ์ง€๋‚˜ ์ฒด๋ ฅ, ํ”Œ๋ ˆ์ด์–ด์˜ ์ ์ˆ˜์™€ ๊ฐ™์€ ์ฃผ์š” ๊ฒŒ์ž„ ๋ฐ์ดํ„ฐ๋ฅผ ์Šคํฌ๋ฆฝํŠธ ๋ณ€์ˆ˜๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋Œ€์‹ , ์˜ค๋ธŒ์ ํŠธ ๋‹จ์œ„๋กœ ๊ตฌ์กฐํ™”ํ•˜์—ฌ ๊ด€๋ฆฌํ•จ์œผ๋กœ์จ ๋””๋ฒ„๊น…์ด ์‰ฌ์›Œ์ง€๊ณ , Level Browser๋ฅผ ํ†ตํ•ด ์‹œ๊ฐ์ ์œผ๋กœ ์ƒํƒœ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์–ด ๊ฐœ๋ฐœ ํšจ์œจ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

ํŠนํžˆ ๋””์ž์ด๋„ˆ๋‚˜ ๋น„๊ฐœ๋ฐœ์ž๋„ Studio์˜ ํ”„๋กœํผํ‹ฐ์ฐฝ์—์„œ ์ง์ ‘ ๊ฐ’์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์˜ค๋ธŒ์ ํŠธ ๊ฐ„ ์—ฐ๊ฒฐ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋น„ํ”„๋กœ๊ทธ๋ž˜๋จธ์™€์˜ ํ˜‘์—… ํ™˜๊ฒฝ์—๋„ ์ ํ•ฉํ•œ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

Value ์˜ค๋ธŒ์ ํŠธ์— Changed ์ด๋ฒคํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฉด ๊ฐ’์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งŒ ํ•„์š”ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์–ด, ์ „์ฒด์ ์ธ ๋ฐ์ดํ„ฐ ํ๋ฆ„์˜ ๊ฐ€์‹œ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํฌ๊ฒŒ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

local Monster = script.Parent
local Parameter = Monster:WaitForChild("Parameter")

local HP        = Parameter:WaitForChild("HP")
local Damage    = Parameter:WaitForChild("Damage")
local Defense   = Parameter:WaitForChild("Defense")
local MoveSpeed = Parameter:WaitForChild("MoveSpeed")

local MaxHP     = HP.Value

local function OnChangedHP(newValue) 
    print("[Server OnChangedHP] " .. HP.Value .. " / " .. MaxHP)
end
HP.Changed:Connect(OnChangedHP)

ํด๋ผ์ด์–ธํŠธ์—์„œ๋„ ๊ฐ™์€ Value ์˜ค๋ธŒ์ ํŠธ์— ๋Œ€ํ•œ Change ์ด๋ฒคํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฉด, ๊ฐ’์ด ๋ณ€๊ฒฝ๋  ๋•Œ ํ•„์š”ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์‹คํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

local function OnChangedHP(newValue) 
    RefreshMonsterHpUI()
end
HP.Changed:Connect(OnChangedHP)

ํ™œ์šฉ ์˜ˆ์‹œ

  • ์„œ๋ฒ„์—์„œ HP๊ฐ€ ๋ณ€ํ™”ํ•  ๋•Œ, ํด๋ผ์ด์–ธํŠธ์—์„œ NumberValue ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•˜์—ฌ HpBar UI๋ฅผ ๊ฐฑ์‹ 

  • ์„œ๋ฒ„์—์„œ ์Šคํ‚ฌ ์‚ฌ์šฉ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ, ํด๋ผ์ด์–ธํŠธ์—์„œ BoolValue ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•˜์—ฌ ์Šคํ‚ฌ ์‚ฌ์šฉ ๋ฒ„ํŠผ์„ ๋น„ํ™œ์„ฑํ™” ์ฒ˜๋ฆฌ

  • ์„œ๋ฒ„์—์„œ ํŠน์ • ์˜ค๋ธŒ์ ํŠธ์˜ ํ™œ์„ฑ ์ƒํƒœ๋ฅผ ๋ฐ”๊ฟ€ ๋•Œ, ํด๋ผ์ด์–ธํŠธ์—์„œ BoolValue ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•˜์—ฌ UI ์•„์ด์ฝ˜ ํ‘œ์‹œ

  • ์„œ๋ฒ„์—์„œ ํ”Œ๋ ˆ์ด์–ด ์ƒํƒœ(์˜ˆ: ์Šคํ„ด, ๊ธฐ์ ˆ ๋“ฑ)๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ, ํด๋ผ์ด์–ธํŠธ์—์„œ BoolValue๋‚˜ StringValue ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•˜์—ฌ ํ™”๋ฉด ํšจ๊ณผ ์ ์šฉ

์ฃผ์˜ ์‚ฌํ•ญ

  • ๋กœ๋”ฉ ํƒ€์ด๋ฐ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด Value ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ฐธ์กฐํ•  ๋•Œ๋Š” ํ•ญ์ƒ WaitForChild()๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

  • Value ์˜ค๋ธŒ์ ํŠธ๋Š” ์„œ๋ฒ„์—์„œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ๊ฒฝ์šฐ์—๋งŒ ํด๋ผ์ด์–ธํŠธ์™€ ๋™๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ, ํด๋ผ์ด์–ธํŠธ์—์„œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด๋„ ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ๋‚˜ ์„œ๋ฒ„์—๋Š” ๋™๊ธฐํ™”๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ๋ณต์žกํ•œ ๊ตฌ์กฐ๋‚˜ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ์šฉ๋„๋กœ๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๊ฐ„๋‹จํ•œ ์ƒํƒœ๊ฐ’์ด๋‚˜ ๋‹จ์ผ ์ •๋ณด์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  • Value ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๊ณผ๋„ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด Level Browser๊ฐ€ ๋ณต์žกํ•ด์ง€๊ณ  ๊ตฌ์กฐ ํŒŒ์•…์ด ์–ด๋ ค์›Œ์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ ์ ˆํ•œ ํด๋” ์ •๋ฆฌ์™€ ๋„ค์ด๋ฐ ๊ทœ์น™์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฐ’์ด ์ž์ฃผ ๋ฐ”๋€Œ๋Š” ๊ฒฝ์šฐ, Changed ์ด๋ฒคํŠธ์˜ ๊ณผ๋„ํ•œ ์‚ฌ์šฉ์€ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์—ฐ๊ฒฐ์€ ๋ฐ˜๋“œ์‹œ Disconnect()๋กœ ํ•ด์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ณด์•ˆ์— ๋ฏผ๊ฐํ•œ ๊ฐ’์€ ์ ˆ๋Œ€ ํด๋ผ์ด์–ธํŠธ์— ๋…ธ์ถœ๋˜์ง€ ์•Š๋„๋ก, ServerScriptService์™€ ๊ฐ™์€ ์„œ๋ฒ„ ์ „์šฉ ์˜์—ญ์—๋งŒ ์ €์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Last updated