Visual Scripting 이란?
- 플로우차트와 같은 형태로 스크립팅 로직을 만들 수 있게 해주는 기능으로,
- 보기쉽게, 이해하기 쉽게 개발이 가능하게 해준다.
- 스크립트 작성이 구조화되므로 재사용성이 높아진다.
이전에는 Bolt 라는 에셋으로 추가하여 사용할 수 있었던 것인데, 유니티에서 Bolt를 인수하면서, 2021 버전부터 Visual Scripting 이라는 기능으로 에디터의 기본기능이 되었다.
불필요하다는 의견에 대해서
- 보기쉽다는 것은 협업에 도움이 된다는 것이고, 로직이 복잡해졌을때 스스로도 유지보수하기가 쉬워진다는 것이다.
- 비주얼스크립팅이 무겁고 불편하다는 의견, 비주얼스크립트로 작업하면 최적화가 어렵다는 의견도 있는데,
- 나는 초보개발자이기때문에, 실수도 잦고 리팩토링도 잘하지 못하기 때문에 조금만 복잡해져도 스파게티코드가 되어버리고 만다.
- 나는 Visual Scripting을 사용하며 로직에 더 익숙해지고, 차차 실력이 올라서 스스로 비주얼스크립팅이 불편하다고 느껴질때, 그때 건너가기로하고
- 지금은 의존하지말되 최대한의 업무효율성을 높이는 방법을 찾기위해 이를 사용해보고자 한다.
설치
- [Edit] - [Project Setting]으로 이동
- [Visual Scripting] 선택
- Initialize 버튼을 클릭
- 에셋 폴더에 Unity.VisualScripting.Generated 폴더가 생성된다.
사용 준비
- Script Machine, State Machine, Variables, Listeners 네가지의 컴포넌트로 구성되어 있고
- 스크립트를 붙여줄 오브젝트에 Script Machine 컴포넌트를 추가하면 사용할 준비가 완료된다.
- Machine은 C# 스크립트 파일 하나와 같다고 이해하면 된다.
- Bolt 기준으로 만들어진 강의들에서 Flow Machine 이라고 하는 것과 동일하다.
사용 방법 알아보기
- 사용 방법을 알아보기 위해 Main Camera 에 Script Machine 컴포넌트를 추가해준다.
- Embed 와 Graph 선택할 수 있는 두가지 옵션이 있는데 이는 저장 방식이라고 한다.
- Embed 는 별도의 Script 파일을 만들지 않고 컴포넌트로 삽입하는 방식이고,
- Graph는 별도의 Script 파일을 만들고 컴포넌트가 이 크스립트를 참조하는 방식으로 구현된다.
- 오브젝트 자신의 로컬 프로세스만 처리할 경우 간단하게 Embed 를 사용하면 된다.
- 다른 오브젝트나 컴포넌트에서 참조하거나, 재사용할 필요성이 있는 스크립트라면 Graph로 생성하면 된다.
Script Graph 살펴보기
- 아래의 Edit Graph를 누르면
- Script Graph 창이 뜨는데, 우측 그래프의 네모를 노드라고 하고,
- 기본적으로 생성되어있는 노드는 새 스크립트를 생성했을 때 자동으로 생성되는 Start(), Update() 와 같다.
- 스크립트를 편집한다고 생각하고 작업을 진행하면 되겠다.
인터페이스에 대한 설명은 공식문서를 확인하자.
노드 생성하기
1. 화면의 빈곳을 우클릭 - add Node 하면 생성할 수 있는 목록이 나오고, 아래처럼 직접 입력해서 찾아도 된다.
2. Debug log를 콘솔에 찍어보기위해서 Debug.Log 유닛을 추가한 후, 로직의 흐름을 제어하는 컨트롤(초록색 화살표)을 연결해준다.
3. 문자열을 선언해서 Debog.Log 의 Message 부분에 넣어주면 끝.
실행해보면 Debug.Log에 문자열이 찍힌것을 볼 수 있다.
소감
사실 코드를 모르면 비주얼스크립팅도 못하는건 맞을 것 같다.
스크립트의 흐름을 눈으로 볼 수 있다는 것이 가장 큰 매력이 아닐까 싶다.
물론 복잡해지면 아포칼립스가 펼쳐지겠지만..
그건 스크립트로 짜도 마찬가지니까ㅠㅠ
어떻게 짜든 스파게티가 되지 않도록 노력하는 개발자가 되자