유니티 에디터에는 비주얼 스크립트라는 것이 있다. 스크래처의 블록 코딩과는 조금 다른 형태인 것 같은데, 언리얼 엔진에서도 비주얼 스크립팅을 통해 게임을 만들 수 있으니, 알아둬서 나쁠 것은 없다고 생각했다.
( 물론 세세한 기능은 다르겠지만, 사용법은 비슷할 것이라 생각한다.)
오늘은 이 비주얼 스크립트에 대해 포스팅을 해보겠다.
Unit이란?
Visual Script를 들어가기 전, Unit을 알아둬야 한다. 비주얼 그래프에서 계산에 있어 가장 기본적인 요소라고 생각하면 된다. (= 스크립트의 코드) 유닛(Unit)들은 포트(Port)라는 것이 존재하고, 흐름(Flow)로 연결된다.
Port란?
유닛과 유닛의 연결은 한 유닛의 포트에서 다른 유닛의 포트로 선을 끌고 가서 붙임으로 생성된다.
- 유닛의 왼쪽에는 입력 포트가 있다. (=함수의 매개변수)
- 유닛의 오른쪽에는 출력 포트가 있다. (=함수의 return 값)
출력 포트에는 두가지 종류가 있다.
- 제어 포트 : 다음에 실행될 순서를 나타내는, 흐름(Flow)의 생성에 사용되는 출력 포트
- 값 포트 : 값 끼리 연결이 되는 출력 포트, 값을 전달할 때 사용되는 포트로 일치하는 유형(type)끼리 연결해야한다.
Visual Script의 변수 종류
| 변수형 | 설명 |
| Flow Variable 플로우 변수 |
플로우 변수(Flow Variable)는 지역 변수(Local Variable)와 동일하다. |
| Graph Variable 그래프 변수 |
그래프 변수(Graph Variable)는 스크립트 그래프의 인스턴스(Instance)에 범위의 변수이다. 이 변수는 가장 작은 범위를 가지고 있고 그래프 밖에서 접근하거나 수정할 수 없다. |
| Object Variable 객체 변수 |
객체 변수(Object Variable)는 게임 객체(Game Object) 범위의 변수이다. 이 변수는 해당 게임 오브젝트에 있는 모든 비주얼 스크립트 그래프에 공유된다. |
| Scene Variable 씬 변수 |
씬 변수(Scene Variable)는 현재 씬(Scene) 전체에 공유된다. |
| Application Variable 어플리케이션 변수 |
어플리케이션 변수(Application Variable)는 씬(Scene)이 바뀌어도 지속된다. 단, 응용 프로그램이 종료되면 리셋된다. |
| Saved Variable 저장 변수 |
저장 변수(Saved Variable)는 응용 프로그램이 종료된 후에도 지속된다. 단순하지만 강력한 저장 시스템으로 활용될 수 있다. 이 변수들은 유니티의 Player Prefs에 저장된다는 것으로 게임 오브젝트나 컴포넌트 같은 유니티 오브젝트를 참조하지 않는다는 뜻이다. |
비주얼 스크립트 예시


위 그래프를 보면 그동안 사용해왔던 코드와 비슷한 모습인 것을 확인할 수 있다.
On Start 는 코드에서의 Start(), On Update는 코드에서의 Update()와 역할이 동일한 것을 테스트해봄으로써 확인하였다.
또한 흐름을 보여주는 제어 포트들이 화살표가 있는 하얀색 선으로 이어져 있고, 값이 전달되는 값 포트들이 서로 값 유형을 나타내는 색의 선으로 연결이 되어 있는 모습을 확인 할 수 있다.
위 그래프는 매 프레임마다 y축으로 (speed * Time.deltaTime)만큼 회전하는 그래프이다. 그리고 테스트한 결과 OnStart와 OnUpdate가 짐작한대로 코드에서의 Start()와 Update()와 기능이 같은 것을 확인할 수 있었다.
마무리하며
사실 이 비주얼 스크립팅을 사용하는 기초적인 방법에 대해서는 누락되어 있는데, 해당 내용은 다음 블로그에 가보면 자세히 나와있다. (스튜디오 오버그래픽스 - 비주얼스크립팅 )
유니티 비주얼 스크립팅 Unity Visual Scripting / 코딩 없이 게임 개발
유니티 비주얼 스크립팅은 코드 방식이 아닌 노드를 연결해서 로직을 만드는 방식.기존에 C# 문법과 코딩을 선행 학습 해야지 할수 있었던 유니티 게임 개발을 코딩 없이 가능하게 해줌. 코딩 없
mgtul.tistory.com
본인 역시 이 블로그를 보고 기초적인 사용법을 터득했으니, 입문을 위한다면 위 블로그글을 참고해주길 바란다.
그러면 본인은 여기에 무슨 포스팅을 할거냐고 묻는다면, 이전에 잠깐 비주얼 스크립트를 붙잡고 있을 때 이것저것 연구해보던 자료가 남아있어서 그걸 지금 포스팅 할 생각이다.
주로 내용은 비주얼 스크립팅의 활용? 가능성이라고 표현하는 것이 좋을 것 같다.
C# 코드와 Visual Script를 활용하여 유한 상태 머신(FSM)을 좀더 세밀하게 구현하는 것이 가능할지, 또는 이것을 활용하여 FSM의 기본 탬플릿 또는 프레임워크를 만드는 것이 가능한지 이것저것 실험해본 내용들을 시간이 된다면 올릴 것이다.
'Unity > Unity 라이브러리' 카테고리의 다른 글
| Visual Script (3) - C# 스크립트의 함수 호출 (0) | 2025.10.20 |
|---|---|
| Visual Script (2) - 다른 오브젝트의 객체 변수를 가져오기 (0) | 2025.10.20 |
| UI의 위치 값은 두가지? (0) | 2025.10.12 |
| Sprite가 늘어나는 영역을 정해준다, Sprite Border (0) | 2025.10.06 |
| FindObjectOfType<T>와 FindObejctsByType<T> (0) | 2025.10.02 |