스크립트 작성하기
유닛(Units)은 비주얼 스크립팅이 처리하는 가장 기본적인 요소다. 다른 비주얼 스크립팅 언어에서는 이를 노드(Node) 또는 작업(Action)이라고 부른다. 유잇은 입력과 출력 포트를 가지고 있으며, 스크립트 그래프(Script Graph)에서 "블록(Blocks)"처럼 시각적 그래픽으로 표현된다.
Start Event 유닛과 Update Event 유닛 |
유닛(Units)
유닛은 비주얼 스크립팅에서 계산을 처리하는 가장 기본적인 요소다. 유닛들은 매우 다양한 일들을 할 수 있다. 예를 들어, 이벤트(Event)를 듣고(Listen, 역자주-받는다 수신한다는 의미), 변수(Variable)의 값(Value)을 얻고(Get), 컴포넌트(Components)나 게임 오브젝트(Game Objects)에 있는 메소드(Methods)를 호출(invoke)한다.
유닛들은 실행되는 순서를 나타내는 연결(Connections)을 가지고 있으며, 다른 유닛으로부터 값을 전달받아 전송하기도 한다.
유닛 생성하기
기본적으로 비주얼 스크립팅에는 23,000개 이상의 유닛들이 있다. 여기에는 전체 Unity 스크립팅 API뿐만 아니라 사용자 지정 스크립트(Custom Scripts) 및 타사 플러그인(Third Party Plugins)의 모든 메서드(Methods)와 클래스(Classes)까지 포함된다. Math, Logic, Variables, Loops, Branching, Events, Coroutines을 위해 추가된 유틸리티 유닛들도 있다.
유닛은 퍼지 파인더(Fuzzy Finder)라는 간단하고 검색이 가능한 생성 메뉴에 잘 정리되어 있다.
퍼지 파인더를 띄우려면 편집창의 아무 빈곳에 마우스 오른쪽 버튼으로 클릭하면 된다. 유닛을 빠르게 찾기 위해 카테고리를 따라가 보거나 제일 위의 상단 필드에서 검색하면 된다.
퍼지 파인더(Fuzzy Finder) |
퍼지 파인더는 각 유닛이 생성되기 전에 미리보기 안내를 제공한다. 예를 들어, Subtract 유닛의 경우 Subtract 유닛의 기능과 포트(Ports)에 대한 간략한 설명이 있다.
Fuzzy Finder |
오버로드(Overloads)
일부 유닛들은 동일힌 이름으로 여러개로 분화되어져 있는데, 이를 오버로드(Overload, 역자주-프로그래밍 용어임)라고 한다.
예를 들어, Add 유닛의 경우 기본 Add 유닛 이외에 4개의 Add 유닛(Scalar, 2D Vector, 3D Vector, 4D Vector)을 더 가지고 있다. 이 경우 이름 우측에 있는 범주내용을 보고 구분하면 된다.
Overloads |
어떤 메서드 유닛(Method Unit)들은 파라미터 오버로드(parameter Overloads)가 있다. 일반적으로 이러한 다양화는 편의를 위한 제공된 것이며 이들은 거시적으로 같은 기능을 수반한다. 어떤 오버로드들은 비교적 더 세부적으로 세팅을 구성할 수 있도록 한다.
예를 들어 Rotate Transform 유닛에는 6개의 오버로드가 있다. 그 중 2개는 단일 오일러 각 벡터(Euler Angle Vector)로 각도 값을 취하고, 다른 2개는 X, Y, Z 3개의 개별 축의 값으로 취하고, 마지막 2개는 축에 상대적인 각도 값으로 취한다. 아래 이미지에서 보여지는 3쌍의 유닛들 중 왼쪽은 상대 공간(Relative Space, 상대 좌표)을 우측은 월드 공간(World Space, 절대 좌표)을 기준으로 각도를 지정한다.
아래 이미지는 rotate 유닛에 대한 6개의 오버로드를 나타낸다.
Overloads |
Rotate Transform Units |
유닛의 해석
아래 이미지의 Rotate Transform 유닛의 다음 예에서 가장 먼저 주목해야 할 것은 이 유닛이 선택된 유닛임을 나타내는 가장자리의 파란색 테두리선이다. 유닛을 선택하면 옵션과 가이드가 그래프 검사기(Graph Inspector)에 표시된다.
유닛의 윗부분은 헤더로, 유닛이 하는 일을 간략히 요약한 설명이있다. 이 경우 헤더는 Transform Component에서 Rotate Method를 호출하고 있음을 설명하고 있다.
invoking the Rotate method |
그래프 인스펙터(Graph Inspector)
그래프 인스펙터는 다음과 같이 이루어져 있다.
Graph Inspector |
- 상단에는 선택된 유닛의 제목과 요약이 있으며, 유닛이 하는 작업에 대한 간략한 개요를 제공한다.
- 그 아래, 비주얼 스크립팅은 유닛에 대한 모든 경고를 표시한다. 위의 예시에서 비주얼 스크립팅은 메시지가 누럭되었음을 경고하고 있다.
- 그 아래는 유닛의 세팅에 대한 안내가 있다. 세팅은 유닛마다 다르며, 어떤 유닛의 경우 세팅이 필요 없는 경우도 있다. (역자주- "Unit is never entered."는 입력 포트로의 입력 연결이 필요한데 연결되어 있지 않다는 의미를 나타내고 있다.)
- 그리고 끝으로 Inputs과 Outputs의 각 포트에 대한 설명이 있다.
인라인 값(Inline Values)
어떤 입력 값 포트(Value Input Ports, 아래 유닛에서 제일 좌측의 빈 동그라미들)들은 그 옆에 작은 필드(아래 대부분 0이라고 쓰여져 있는 부분)를 가지고 있다. 이를 인라인 값(Inline Value)이라고 한다. 포트가 연결되어 있지 않으면 이 필드의 값이 대신 사용된다. 대부분의 일반적인 타입들은 인라인 값을 지원하지만 모든 타입이 인라인 값을 지원하는 것은 아니다. 인라인 값은 모든 값 입력 포트(Value Input Port)에 리터럴 유닛(Literal Units)이 연결되지 않도록 허용하기 때문에 그래프를 깔끔하게 유지하는 데 유용하다.
예를 들어, 아래 두 그래프는 동일하다.
Inline Values |
Inline Values |
댓글
댓글 쓰기