들어가며
오늘 해볼 것은 다른 오브젝트의 객체 변수를 가져오는 것을 해볼 것이다. 다른 오브젝트의 값을 가져오는 것은 코드로 게임을 만들 때도 많이 해보았기에 중요하다는 것을 알고 있다. 게임은 하나의 오브젝트만 존재하는 경우도 있겠지만, 보통은 다양한 오브젝트가 서로 상호작용을 하는 경우가 더 많기 때문에, 다른 오브젝트의 특정 값을 가져오는 법은 매우 중요하다고 볼 수 있다.
테스트
테스트 환경은 다음과 같다.
- 씬에는 Controller라는 빈 오브젝트와 Player라는 구 형태의 오브젝트가 존재
- Player 오브젝트는 객체 변수로 Hp, Speed, Null 이라는 값을 가지고 있음
- Controller의 Script Graph에서 Player의 객체 변수를 가져와서 디버그 로그로 출력



위의 사진이 Controller에 붙어있는 Test(Script Graph)이다. 다른 오브젝트를 찾는 것은 코드와 비슷하다.
우선 흐름을 보면 OnStart에서 Player를 이름으로 찾아서 나의 User라는 변수에 대입을 하고, Debug.Log를 출력한다.
OnStart 유닛에서 Game Object Find라는 유닛으로 넘어가서 Player라는 불변 값을 넣어주고, 결과로 나오는 값 포트를 다음 유닛인 SetVarible의 입력 포트에 연결을 하여 User라는 GameObject 타입의 변수에 Player를 대입했다.
초록색 주석에도 나와있지만 코드로 보면 다음과 같다.
User = GameObject.Find("Player");
밑의 빨간 주석은 해당 User의 객체 변수를 GetVariable(Graph) 유닛으로 누구의 객체 변수를 가져올 것인지 정하고, GetVariable(Object)로 객체 변수를 가져온다고 선언한 뒤에 원하는 변수명을 선택하고 변수를 가져온 것이다.
빨간 주석 부분을 코드로 보면 다음과 같다.
(Get User's Object Variable)
Debug.Log($"hp : {User.Hp} , speed : {User.Speed}, Null : {User.Null}");
마무리
이번에는 Visual Script에서 다른 오브젝트의 객체 변수를 가져오는 법에 대해서 알아보았다. 아직까지는 흥미로운 부분은 안 보였지만, 다음 글부터는 Visual Script를 통해 실제 코드로 구현되어있는 함수를 호출하는 방법에 대해서 알아볼 생각이다.
나도 가장 궁금했던 부분이기도 했고, 이게 된다면 복잡한 기능들의 구현을 함수들로 해놓고, 상태에 따른 함수 호출을 Visual Script으로 처리해서 상태에 따른 프로세스가 어떻게 흘러가는지 눈으로 확인할 수 있게 되니 어떻게든 쓸 수 있지 않을까 생각하고 있다.
그러면 다음 포스팅에서는 C#의 함수를 Visual Script로 호출하는 방법에 대해서 알아보겠다.
'Unity > Unity 라이브러리' 카테고리의 다른 글
| Visual Script (3) - C# 스크립트의 함수 호출 (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 |