개요
이 섹션은 Warudo의 스크립팅 API에 대해 깊이 다루고 있어요. Warudo에서 스크립팅을 시작하기 위 해 모든 세부 사항을 다 알 필요는 없지만, 이 섹션을 대략적으로 훑어보고 어떻게 작동하는지 감을 잡는 것을 추천해요!
Warudo는 두 개의 애플리케이션을 하나로 결합한 프로그램이에요: 에디터와 런타임 (비프로그래머 섹션에서는 메인 창이라고 불려요). 에디터에서는 씬을 만들고 수정하며, 에셋과 플러그인 설정을 업데이트하고, blueprint에서 노드를 추가하고 연결해요. 런타임은 렌더링/스크립팅 엔진 역할을 하며, 당신이 만든 씬을 실행해요.
에디터 (오른쪽) 그리고 런타임 (왼쪽).
에디터와 런타임은 웹소켓(WebSocket) 연결을 통해 서로 소통해요. 에디터에서 변경을 하면, 그 변경 사항이 런타임으로 전송되어 씬이 실시간으로 업데이트돼요. 이 아키텍처 덕분에 변경 사항을 즉시 확인할 수 있죠. 반대로, 런타임에서 변경(예: 노드의 데이터 인풋을 프로그래밍 방식으로 변경)을 하면, 그 변경 사항을 에디터로 다시 보내야 해요.(데이터 인풋 액세스를 참고하세요.)
Warudo 런타임은 Unity 2021.3을 기반으로 구축되었지만, 코어 프레임워크는 특정 엔진에 종속되지 않도록 설계되었어요. 이 덕분에 노드, 에셋, 플러그인들이 서로 및 사용자와 간단명료한 API를 통해 상호작용할 수 있으며, 핫 리로딩과 같은 기능도 가능해요.
일반적인 Unity 프로젝트에서 MonoBehaviour
를 상속받아 C# 클래스를 작성하는 대신, Warudo의 기본 클래스인 노드
와 에셋
을 상속받는 클래스를 작성하게 돼요. 이 클래스들은 Warudo 런타임에서 인스턴스화되어 관리되고, 그 안에서 Unity API를 호출해 Unity 씬과 상호작용할 수 있어요. 예를 들어, 게임 오브젝트를 생성하거나 컴포넌트를 추가하는 등의 작업이 가능해요.