유닛들 연결하기

스크립트를 생성하기 위한 유닛과 포트간의 연결 링크(Connections Link)를 설명한다.


포트의 호환성(Compatible Ports)


연결 포트간에 연결이 가능한 경우에는 연결을 하려고 할 때 포트가 하이라이트가 된다. 반대로 연결이 불가한 경우 포트는 흐리게 표시된다. 만약 유닛에 호환 가능한 포트가 없는 경우에는 유닛 전체가 흐리게 표시된다. 즉, 대상 포트가 하이라이트되지 않는 다면 연결을 만들 수 없다.

예를 들어 어떤 숫자가 컴포넌트의 값으로 전환될 방법이 없는 경우 수의 연산 결과(숫자)를 타겟 유닛(컴포넌트)에 연결할 수 없게 된다.


Compatible Ports
위: 연결 가능, 아래: 연결 불가

자동 포트 선택


비주얼 스크립팅은 사용자가 커서를 타겟 유닛에 직접 대지 않더라도 유닛에서 가장 잘 호환되는 포트를 자동으로 선택하여 더 쉽게 조준할 수 있도록 도와준다. 이 포트는 노란색 직사각형으로 강조 표시되어 연결될 위치를 미리 볼 수 있다. 이는 작은 포트에 연결하기 위해 고도의 집중을 하지 않더라도 손쉽고 빠르게 새로운 연결을 만들 수 있다는 것을 의미한다.


Automatic Port Selection
Automatic Port Selection

컬러 코딩


제어 연결(Control Connections)은 항상 흰색인 반면 값 연결(Value Connections)은 타입에 따라 색상으로 구분된다. 타입마다 고유의 색상을 가지고 있고 이를 통해 쉽게 찾을 수 수 있다. 컬러 펠릿 아이콘이 없는 타입은 모두 녹색으로 연결된다.

 

역자주)

* 제어 연결(Control Connections): 유닛의 제일 상단에 있는 삼각형 포트간의 연결을 의미한다.

* 값 연결(Value Connections): 빈 동그란 원형 포트간의 연결을 의미한다.

* 컬러 펠릿 아이콘(Color Pellet Icon): 값 연결시 대응되는 값의 타입을 컬러 아이콘으로도 표시하고 있다.



값(Values)


툴바에서 Values toggle을 활성화하면 비주얼 스크립팅은 런타임 동안 이 연결을 통과한 최종 값을 보여준다.


Values
위 이미지에서 Values가 Values Toggle이다.


Unity > Preferences > Visual Scripting > Script Graphs > Predic Connection Values가 활성화된 경우, 비주얼 스크립팅은 플레이 모드로 들어가기 전에 값을 예측하려고 시도한다.


Predic Connection Values
Predic Connection Values


예를 들면 다음과 같다.


Predic Connection Values
위: Predic Connection Values 비활성 / 아래: Predic Connection Values 활성


자동 변환


비주얼 스크립팅은 사용자가 그래프를 깔끔하게 유지할 수 있도록 하기 위해 많은 타입들을 자동으로 변환한다(역자주-프로그래밍의 자동 형변환의 개념임).

예를 들어, 비주얼 스크립팅이 자동으로 처리해 주기 때문에 Transform 출력과 Animator 입력 사이에 Get Component를 사용할 필요가 없다.


Automatic Conversion
Automatic Conversion


다음의 경우 자동 변환이 지원된다.

  • 숫자와 숫자간(예: integer 숫자를 float 변수 혹은 포트에, float 숫자를 integer 변수 혹은 포트에 연결할 때)
  • 부모 클래스(Base Class)를 자식 클래스(Child Class)에 연결할 때
  • 자식 클래스(child Class)를 부모 클래스(Base Class) 연결에 연결할 때
  • 사용자 지정 연산자(Custom Operators)(예: Vector 2에서 Vector 3로 연결할 때)
  • 게임 오브젝트(Game Object)를 하위 컴포넌트(Child Component)에 연결할 때
  • 컴포넌트(Component)를 부모 게임 오브젝트(Parent Game Object)에 연결할 때
  • 컴포넌트(Component)를 형제 컴포넌트(Sibling Component)에 연결할 때
  • 배열(Array)에 열거형(Enumerable)을 연결할 때
  • 목록(List)에 열거(Enumerable)을 연결할 때

또한 비주얼 스크립팅은 박싱(Boxing)과 언박싱(Unboxing)을 지원한다. 즉, 어떤 객체 타입의 포트에서 다른 값 포트로의 연결도 가능하도록 해준다. 참고: 이 경우 데이터 타입이 호환되는지 확인하는 것은 사용자의 책임이며, 그렇지 않으면 재생 모드에서 오류가 발생할 수 있다.



다중 연결


단일 포트는 편의를 위해 여러 개의 포트에 연결될 수 있다.

예를 들어 아래처럼 단일 값 출력 포트(Value output Port)를 여러 값 입력 포트(Value Input Ports)에 연결할 수 있다.


Multiple Connections
Multiple Connections


어떤 값을 사용해야 하는지 분명하지 않은 경우에는 다중 연결이 허용되지 않는다.

 

여러 개의 제어 출력 포트(Control Output Ports)를 단일 제어 입력 포트(Control Input Port)에 연결할 수도 있다. 예를 들어, 점프(Jump)는 플레이어가 Space Bar를 누르거나 어떤 오브젝트를 클릭했을 때 모두 발동되도록 할 수 있다.


multiple control output ports
multiple control output ports



출력 유닛에서 실행 순서가 명확하지 않은 경우에는 단일 제어 출력 포트를 여러 제어 입력 포트에 직접 연결할 수 없다. 이런 경우를 해결 하기위해서는 여러개의 제어 출력 포트를 가지고 있는 "Sequence" 노드를 이용하면 된다.


Sequence Node
Start Event를 두개의 Debug.Log에 연결하기 위해 중간에 Sequence 유닛을 이용하고 있다.

두 개 이상의 작업을 연결하려면 시퀀스 노드 헤더의 필드에 더 높은 숫자를 사용하십시오(역자주-2를 4로 바꾸면 4개의 출력 포트가 아래에 생긴다.)



상황별 옵션


연결하고자하는 유닛을 모두 만들어서 연결할 필요 없이 어느 한쪽의 유닛 포트에서 마우스를 끌어 빈공간을 클릭하면 퍼지 파인더가 자동으로 팝업되며 연결가능한 옵션이 자동으로 활성화된다. 여기서 어느 하나를 선택하면 자등으로 연결이 이루어진 유닛이 생성된다.


Contextual Options
Contextual Options


 

<원문>

https://docs.unity3d.com/Packages/com.unity.visualscripting@1.7/manual/vs-connections.html

댓글

이 블로그의 인기 게시물

EMACS - 파일 열기, 저장, 도움말

EMACS - 검색 및 바꾸기

EMACS, CLISP, SLIME 설치