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

+ Recent posts