트랜지션(Transitions)은 비주얼 스크립팅이 활성 상태를 다른 상태로 전환하는 조건을 갖고 있는 상태간 연결점을 말한다.
트랜지션 편집하기
Script State와 마찬가지로 트랜지션은 Script Graph로 이루어져 있다.
위의 예에서는 새로운 상태로 전환할 수 없는 문제점을 가지고 있다. Event가 언제 발동해야 하는지를 지정하지 않았기 때문에 결고 상태가 전환할 수 없는 것이다. 따라서 목적 상태와 트랜지션 둘 다 흐리게 표시되고 있다. 트랜지션 유닛을 더블 클릭하거나 Edit Graph 버튼을 클릭하면 트랜지션 그래프가 나타난다. 기본적으로 다음과 같이 구성된다.
트리거 상태 전환 유닛(Trigger State Transition Unit)은 부모의 상태가 이 트랜지션 조건에 따라 상태가 변경되어야 한다는 것을 지시하는 특별한 유닛이다. 이벤트(events)나 조건(if)과 같은 유닛을 상태 전환 그래프에서 사용하면 된다.
예를 들어, "Player" tag가 붙은 게임 오브젝트가 적(Enemy)에게 감지(trigger)된다면 그 적은 추척 상태(chase state)로 전환된다고 할 때, 그 그래프는 다음과 같이 그려 질 수 있다.
끝으로 상위 상태 그래프에서 트랜지션의 라벨을 변경하고자 한다면, 해당 트랜지션을 선택하고 그래프 인스펙터에서 타이틀을 작성하면 된다.
상위 상태로 돌아가면 트랜지션은 다음과 같이 나타난다.(역자주-트랜지션 내부에 조건 스크립트를 작성하고 나오면 아이콘이 변경 된다.)
트랜지션에 직접 제목을 작성하지 않을 경우, 이벤트의 이름과 설명이 자동으로 지정된다.
트랜지션 라벨은 항상 보이는 것이 디폴트이다. 이것이 그래프에서 너무 많이 차지하여 변경하고 싶다면, Unity > Preferences > Visual Scripting > State Graphs > Transition Display에서 디스플레이 트리거를 변경한다.
셀프 트랜지션
자기 자신의 상태로 되돌아 오는 트랜지션은 매우 유용한 경우가 있다. State 노드 위에 마우스 오른쪽 버튼을 클릭하고 Make Self Transition을 선택한다.
예를 들어, 적 캐릭터가 3초 마다 랜덤하게 방향을 바꾸게 함으로써 순찰(patrol) 기능을 구현할 수 있다.
순찰 상태의 스크립트 그래프는 다음과 같다.(역자주 - 이동할 타겟의 x, z 좌표가 -30 ~ 30 사이에서 각각 랜덤하게 정해진다.)
셀프 트렌지션은 다음과 같다.(역자주 - 3마다 상태가 전환된다.)
상위 상태 그래프에서 보면 다음과 같이 나타난다.(역자주 - 3초마다 랜덤 x, y 좌료로 이동하게 된다)
다중 트랜지션 추가하기
상태 전환을 위해 추가할 수 있는 트랜지션의 수에는 제한이 없다. 그러나 트랜지션 사이에 우선순위 개념이 없기 때문에 적절한 트랜지션을 사용해야 한다.
<원문>
https://docs.unity3d.com/Packages/com.unity.visualscripting@1.7/manual/vs-transitions.html
'VS 기본' 카테고리의 다른 글
스테이트 유닛 (0) | 2021.08.23 |
---|---|
트랜지션 만들기 (0) | 2021.08.23 |
상태 그래프를 이용한 상태 전환 작업 (0) | 2021.08.23 |
input manager 이용 사용자 입력 받기 (0) | 2021.08.22 |
Input system 이용 사용자 입력 받기 (0) | 2021.08.21 |