FiniteStateMachine

FiniteStateMachine

์œ ํ•œ ์ƒํƒœ ๋จธ์‹  ๊ฐ์ฒด์—์š”. ์œ ํ•œ ์ƒํƒœ ๋จธ์‹ ์„ ์ƒ์„ฑํ•œ ํ›„ Object:SetFiniteStateMachine ๋กœ ํ•ด๋‹น ์œ ํ•œ ์ƒํƒœ๋จธ์‹ ์„ ์‚ฌ์šฉ ํ•  ์˜ค๋ธŒ์ ํŠธ์— ๋ถ€์ฐฉํ•˜๋ฉด, ์˜ค๋ธŒ์ ํŠธ์— ํ•ด๋‹น ์œ ํ•œ ์ƒํƒœ ๋จธ์‹ ์ด ๋ถ€์ฐฉ ๋ผ์š”.

ํ•จ์ˆ˜

FiniteState AddFiniteState(string StateName)

Finite State๋ฅผ ์ถ”๊ฐ€ํ•ด์š”. (์ถ”๊ฐ€ํ•  ์ƒํƒœ ์ด๋ฆ„)

-- ์ƒ˜ํ”Œ --

local FSM = Game:AddFSM("FSM") --FSM ์ถ”๊ฐ€ํ•ด์š”.

--FSM ์ƒํƒœ ์ถ”๊ฐ€
local IdleState = FSM:AddFiniteState("Idle")
local MoveState = FSM:AddFiniteState("Move")

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ถ€๋ชจ ์˜ค๋ธŒ์ ํŠธ ๊ธฐ๋Šฅ๋“ค

์†์„ฑ

์ด๋ฆ„

์„ค๋ช…

FSM์ด ํ™œ์„ฑํ™” ๋  ๋•Œ ์‹œ์ž‘ State๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”.

ํ˜„์žฌ ํ™œ์„ฑํ™” ๋˜๊ณ  ์žˆ๋Š” State์ž…๋‹ˆ๋‹ค.

์ด๋ฒคํŠธ

์ด๋ฆ„

์„ค๋ช…

ํ•ด๋‹น FSM์ด ํ™œ์„ฑํ™” ์ค‘์ผ ๋•Œ ๋งคํ”„๋ ˆ์ž„๋งˆ๋‹ค ํ˜ธ์ถœ๋˜๋Š” ์ด๋ฒคํŠธ์—์š”. ์—ฐ๊ฒฐํ•จ์ˆ˜ ํ˜•์‹์€ function(FiniteStateMachine, updateTime), FiniteStateMachine ์€ ํ™œ์„ฑํ™” ์ค‘์ธ FSM ์˜ค๋ธŒ์ ํŠธ , updateTime ์€ number ์ž…๋‹ˆ๋‹ค.

ํ•จ์ˆ˜

์ด๋ฆ„

์„ค๋ช…

FSM ์ƒํƒœ ์ „์ด๋ฅผ ์ถ”๊ฐ€ํ•ด์š”. (์‹œ์ž‘ ์ƒํƒœ ์ด๋ฆ„, ์ „์ดํ•  ์ƒํƒœ ์ด๋ฆ„, ์—ฐ๊ฒฐ ํ•จ์ˆ˜, ์šฐ์„ ์ˆœ์œ„ (0์— ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ๋†’๋‹ค.) )

Last updated

Was this helpful?