MyCar 라는 사용자 지정 클래스가 있습니다.
이 클래스를 비주얼 스크립트에서 사용하는 예시입니다.
using System.Collections; using System.Collections.Generic; using UnityEngine; using Unity.VisualScripting; [Inspectable] public class MyCar { [Inspectable] public string name; [Inspectable] public float speed; [Inspectable] public string color; [Inspectable] public int price; } public class MyEventTrigger : MonoBehaviour { private const string sampleEvent = "MyCarEvent"; void Start() { MyCar arg0 = new MyCar(); arg0.name = "Sun Car"; arg0.speed = 300; arg0.color = "red"; arg0.price = 2000000; MyCar arg1 = new MyCar(); arg1.name = "Moon Car"; arg1.speed = 200; arg1.color = "blue"; arg1.price = 1000000; MyCar arg2 = new MyCar(); arg2.name = "Earth Car"; arg2.speed = 250; arg2.color = "green"; arg2.price = 1500000; CustomEvent.Trigger(gameObject, sampleEvent, arg0, arg1, arg2); } public void MyCarEventReturn(MyCar receive) { Debug.Log("Venus Car Info: " + venus.name + " / " + venus.speed + " / " + venus.color + " / " + venus.price); } } |
C# Script를 작성하였으면 Script 내의 사용하고자 하는 Class들을 유니티 비주얼 스크립트에 등록해 주어야 합니다.
적용할 게임 오브젝트(아래는 빈 게임 오브젝트)에 C# Script와 Script Machine 컴포넌트를 추가합니다.
C# Script에서 보내온 클래스의 데이터를 비주얼 스크립트에서 받고 있는지 확인하는 그래프를 작성하였고 제일 아래에는 비주얼 스크립트에서 C# 스크립트로 데이터를 보내는 그래프를 추가하였습니다.
Play Mode 이전의 스크린샷입니다.
Play Mode 이후의 스크린샷입니다.
좌측에 있는 MyCar 클래스 타입의 변수들에 C# Script에서 보내온 값들이 나타나고 있습니다.
그리고 비주얼 스크립트의 venusCar라는 변수의 값이 C# Script로 전송이 된 것을 확인할 수 있는 Console 로그가 나타납니다.
'VS 응용' 카테고리의 다른 글
C# + Visual Scripts : 값 주고 받기 (0) | 2021.08.30 |
---|---|
스크립트 리팩토링 (0) | 2021.08.21 |
비주얼 스크립트 그래프 유닛 만들기 (0) | 2021.08.15 |