지정 연산자 (assignment operator, :=) 에 대한 간략한 설명
페이지 정보
작성자 Aravis 작성일 24-02-06 17:01 조회 1,632 댓글 0본문
1. 지정 연산자란?
:=
이렇게 씁니다.
역할은 VarSet 명령어와 같습니다
var(0) := 50
이렇게 써주면 var(0) 은 50 이 됩니다.
2. 사용 장소
다른 곳에도 들어갈 수 있을 것 같지만, 확실하지 않기에 트리거에 대해서만 언급하겠습니다.
지정 연산자는 보통 트리거에 사용합니다.
trigger1 = var(0) := 50
이런 식으로 사용합니다.
3. 트리거의 발동 여부 판별 방법
trigger1 = var(0)
이런 트리거는 var(0) 이 0 이 아닐 때만 발동합니다.
trigger1 = var(0) = 3
이것은 var(0) 이 3 일 때만 발동합니다.
그렇다면,
trigger1 = var(0) := 50
이건 발동이 되는 트리거일까요, 아니면 발동이 되지 않는 트리거일까요?
이를 알기 위해선 지정 연산자 부분을 없애고 나머지 부분을 읽어 보면 됩니다.
trigger1 = var(0) := 50
여기서 지정 연산자 부분을 없애면
trigger1 = var(0)
이 됩니다.
그런데, 지정 연산자의 기능으로 인해 var(0) 은 50 이 됩니다.
따라서 이는
trigger1 = 50
이라고 할 수 있기 때문에 트리거가 발동됩니다.
4. 지정 연산자의 발동 여부 판별 방법
지정 연산자는 일단 읽히기만 하면 바로 발동됩니다.
[state ]
type = ChangeState
trigger1 = var(0) := 30
value = 0
ctrl = 1
이런 명령어는 ChangeState 도 발동이 되고, 동시에 var(0) 은 30 이 되게 됩니다.
하지만 아래의 경우는 조금 다릅니다.
[state ]
type = ChangeState
trigger1 = 1
trigger1 = alive
trigger2 = var(0) := 30
value = 0
ctrl = 1
trigger1 에 있는 조건은 1 과 alive 입니다.
평상시에는 이 두 조건이 항상 만족되기 때문에 ChangeState 는 항상 발동되게 됩니다.
따라서 명령어가 이미 발동됨을 확인했기에 trigger2 는 읽을 필요가 없게 됩니다.
그 때문에 지정 연산자가 발동되지 않고, var(0) 은 30 이 되지 않게 됩니다.
댓글목록 0
등록된 댓글이 없습니다.