FiniteStateMachine
FiniteStateMachine
유한 상태 머신 객체에요. 유한 상태 머신을 생성한 후 Object:SetFiniteStateMachine 로 해당 유한 상태머신을 사용 할 오브젝트에 부착하면, 오브젝트에 해당 유한 상태 머신이 부착 돼요.
이벤트
OnUpdate
해당 FSM이 활성화 중일 때 매프레임마다 호출되는 이벤트에요. 연결함수 형식은 function(FiniteStateMachine, updateTime), FiniteStateMachine 은 활성화 중인 FSM 오브젝트 , updateTime 은 number 입니다.
-- 샘플 --
--상태와 별개로 동작하는 UpdateEvent (최상위 개념)
local function UpdateFSM(fsm, updateTime)
print("UpdateFSM")
end
FSM.OnUpdate:Connect(UpdateFSM)
속성
StartFiniteState
FSM이 활성화 될 때 시작 State를 설정할 수 있어요.
-- 샘플 --
FSM.StartFiniteState = "Idle"
CurrentFiniteState
현재 활성화 되고 있는 State입니다.
-- 샘플 --
print(FSM.CurrentFiniteState)
함수
void AddTransition(string FromState, string ToState, function Condition, number Priority)
FSM 상태 전이를 추가해요. (시작 상태 이름, 전이할 상태 이름, 연결 함수, 우선순위 (0에 가까울수록 높다.) )
-- 샘플 --
local function ToMoveConditionFunction(fsm)
if someCondition then
return true
else
return false
end
end
FSM:AddTransition("Idle", "Move", ToMoveCondition, 0)
사용 가능한 부모 오브젝트 기능들
속성
이벤트
이름
설명
함수
이름
설명
추가된 값이 변경 될 때 호출되는 이벤트에요. (Value 이름, 연결 함수)
이름으로 자식 객체를 얻을 수 있어요. (찾고싶은 자식 객체 이름)
자식 객체의 리스트를 얻을 수 있어요.
캐릭터인지 확인할 수 있어요.
스테틱 메시인지 확인할 수 있어요.
FX인지 확인할 수 있어요.
Sound인지 확인할 수 있어요.
포인트 라이트인지 확인할 수 있어요.
스포트 라이트인지 확인할 수 있어요.
서피스 UI인지 확인할 수 있어요.
스크린 UI인지 확인할 수 있어요.
터치 UI인지 확인할 수 있어요.
아이템인지 확인할 수 있어요.
NPC인지 확인할 수 있어요.
스트립트인지 확인할 수 있어요.
Collider인지 확인할 수 있어요.
Widget인지 확인할 수 있어요.
Camera인지 확인할 수 있어요.
해당 오브젝트가 유효한지 확인 할 수있어요.
해당 오브젝트의 값이 유효한지 확인할 수 있어요.
해당 객체에 서버, 클라이언트 간 동기화가 가능한 벡터를 추가해요. (추가할 Value 이름, Vector 데이터, Enum.ReplicateType.타입 , 동기화 시간)
해당 객체에 서버, 클라이언트 간 동기화가 가능한 실수를 추가해요. (추가할 Value 이름, number 데이터, Enum.ReplicateType.타입 , 동기화 시간)
해당 객체에 서버, 클라이언트 간 동기화가 가능한 bool를 추가해요. (추가할 Value 이름, bool 데이터, Enum.ReplicateType.타입 , 동기화 시간)
해당 객체에 서버, 클라이언트 간 동기화가 가능한 문자열을 추가해요. (추가할 Value 이름, string 데이터, Enum.ReplicateType.타입 , 동기화 시간)
해당 객체에 서버, 클라이언트 간 동기화가 가능한 컬러를 추가해요. (추가할 Value 이름, Color 데이터, Enum.ReplicateType.타입 , 동기화 시간)
Last updated
Was this helpful?