들어가며
Visual Script에서 가장 궁금했던 점 중 하나였던, 코드로 이루어진 스크립트의 함수를 호출하는 부분이다. 과연 이게 될까? 싶었는데, 막상 해보면 가능은 했다. 지금부터 그 방법을 보겠다.
Regeneration Nodes
C# 스크립트의 함수에 그래프가 접근을 하려면 필요한 절차가 있다. 일단, 그래프를 만든 다음에 스크립트에서 함수를 작성하면 그래프에서는 접근할 수가 없다. 자동으로 업데이트가 되는 것이 아니라, 우리가 수동으로 업데이트를 해줘야하는 것이다. 그 절차는 다음과 같다.
- 함수를 작성하고 ctrl + s를 눌러 저장과 컴파일을 한다.
- Project Setting에 들어가서 Visual Scripting에 들어간다.
- Regeneration Nodes를 눌러 잠깐의 로딩을 거친다.
- 그래프로 돌아와서 함수명으로 유닛을 검색한다.
일단, 함수를 작성하고 컴파일을 한다.
using UnityEngine;
public class TestController : MonoBehaviour
{
public int Hp;
void Start()
{
Hp = 10;
}
public void TargetRotate(GameObject target, Vector3 dir)
{
target.transform.Rotate(dir * Time.deltaTime);
}
}
그 다음, 유니티 에디터의 화면 좌측 위의 Edit을 누르고 Project Setting에 들어간다.

그러면 왼쪽에서 Visual Scripting을 찾아서 누르고 바로 Regenration Nodes가 보일 것이다. 누르면 된다.

이후에는 사진처럼 C#의 함수 유닛을 생성하면 된다.
이때, 해당 스크립트는 그래프가 붙여진 오브젝트가 아니라, Player 오브젝트에 붙어있는 스크립트이다. 그래서 누구의 함수를 호출 할 것인지 지정하는 부분이 필요하다. 사진에서는 이미 User에 Player 오브젝트를 담아놨으므로 User의 출력 포트를 연결해놨다.
밑의 동영상은 테스트 결과이다.
스크립트의 변수 가져오기
반환값이 있는 함수도 같은 방법으로 작성하여 사용할 수 있다.
이번에도 조건은 같지만, GetHp라는 반환 값을 가지는 함수를 그래프에서 호출하여 스크립트의 변수를 사용할 수 있다.
다음 사진이 그 예시이다.

마무리
스크립트와 그래프 간의 상호작용이 가능하다는 것과 방법을 알게 되었으니, 좀 더 체계적인 설계가 가능해졌다. 예를 들어 구체적인 기능들을 스크립트로 구현을 해놓고, 상태에 따라서 어떤 함수를 호출하냐는 그래프로 설계를 해둘 수 있다.
이렇게 하면, 런타임 중에도 시각적으로 어떤 상태인지를 확인 할 수 있어진다는 장점이 생길 것이다.
다음은 Visual Script의 Custom Event에 대해서 알아보도록 하겠다.
'Unity > Unity 라이브러리' 카테고리의 다른 글
| Visual Script (2) - 다른 오브젝트의 객체 변수를 가져오기 (0) | 2025.10.20 |
|---|---|
| Visual Script (1) (0) | 2025.10.15 |
| UI의 위치 값은 두가지? (0) | 2025.10.12 |
| Sprite가 늘어나는 영역을 정해준다, Sprite Border (0) | 2025.10.06 |
| FindObjectOfType<T>와 FindObejctsByType<T> (0) | 2025.10.02 |