Unity C#으로 작성하고, VRChat에서 실행하세요.
Udonite는 평범한 Unity용 C#을 VRChat 월드의 Udon으로 컴파일합니다. 따로 배워야 할 방언도, 금지된 키워드 목록도 없습니다. 이미 쓰고 있는 코드가 그대로 월드에서 동작합니다. 월드 혼자서는 할 수 없는 부분은 호스팅 서비스가 맡습니다.
누르고, 동기화하고, 보여 주기
누구나 누를 수 있는 버튼, 모든 플레이어가 보는 카운트, 그것을 따라가는 라벨. sync 속성도, 직렬화 호출도, 방언도 없습니다. 튜토리얼은 빈 프로젝트에서 약 15분에 이것을 만듭니다.
Interact는 플레이어가 오브젝트를 누르면 실행됩니다.Synced<int>는 모든 클라이언트가 가진 카운트입니다. .Value에 쓰면 복제되고, 늦게 들어온 플레이어도 현재 값을 받습니다.Subscribe는 값이 도착할 때 모든 클라이언트에서 실행되므로 라벨은 정확히 한 곳에서만 갱신됩니다.
컴파일러 받기
무료이며 앞으로도 무료입니다. 이 리스팅을 VRChat Creator Companion에 붙여넣고 패키지 목록에서 Udonite를 추가하세요.
https://udonite.github.io/vpm/index.json
VCC에 추가컴파일러
C#을 넣으면 Udon이 나옵니다. 제네릭과 인터페이스 같은 기능도 다시 구현한 것이 아니라 컴파일되므로, 여느 Unity 프로젝트처럼 작성하면 됩니다.
호스팅 서비스
월드에서 Discord나 스마트폰으로 메시지를 보내고, 카운터와 점수표, 공유 스위치를 모두가 나간 뒤에도 남게 보관합니다.
패키지
월드에 넣어 쓰는 라이브러리입니다. 각각이 Udon에서 제대로 쓰기 까다로운 부분을 다시 평범한 C#으로 되돌립니다.
바인딩
인스펙터에서 아무것도 연결하지 않고 플레이어가 컨트롤을 움직였다는 사실을 받습니다.
문서 보기 →로깅
어느 behaviour의, 어느 메서드의, 몇 번째 줄에서 나온 로그인지 스스로 말하는 로그. 업로드한 뒤에도 그대로 동작합니다.
문서 보기 →네트워크
바뀔 때 알려주는 동기화 값과, 누구나 보낼 수 있는 형식 있는 메시지. 씬에 준비할 것은 없습니다.
문서 보기 →Observables
값이 바뀌면 구독자에게 알려 줍니다. 점수와 그것을 보여주는 것들이, 일일이 찔러야 하는 목록 없이 발을 맞춥니다.
문서 보기 →지속성
플레이어의 진행 상황 저장을 열여섯 가지 메서드가 아니라 두 개의 동사로. 타이밍 함정도 대신 처리합니다.
문서 보기 →직렬화
데이터를 바이트로도, JSON으로도 담을 수 있습니다 — 둘 다 Udon이 이미 가진 것을 얇게 감싼 것일 뿐, 다시 만든 게 아닙니다.
문서 보기 →자주 묻는 질문
- Udonite는 무엇인가요?
- Udonite는 평범한 Unity C#을 VRChat 월드의 스크립트 런타임인 Udon으로 컴파일하는 컴파일러이며, 패키지와 호스팅 서비스도 함께 제공합니다. 여느 Unity 프로젝트처럼 MonoBehaviour를 작성하면, 저장할 때 Udonite가 Udon 프로그램으로 컴파일합니다. 자세한 내용은 컴파일러 문서에 있습니다.
- UdonSharp와 무엇이 다른가요?
- UdonSharp는 자체 규칙과 사용할 수 없는 기능 목록을 가진 C#의 방언입니다. Udonite는 제네릭, 인터페이스, LINQ, async, record를 포함해 이미 쓰고 있는 C#을 그대로 컴파일하고, Udon 자체가 할 수 없는 것만 진단 코드와 수정 제안을 붙여 이름을 들어 거부합니다. UdonSharp 비헤이비어도 같은 프로젝트에서 그대로 동작합니다. 무엇이 컴파일되는지는 언어 지원에 있습니다.
- Udonite는 무료인가요?
- 컴파일러와 패키지는 무료이고 앞으로도 그렇습니다. 호스팅 서비스에는 개발에 충분한 무료 한도가 있으며, 후원자는 더 높은 한도를 받습니다.
- Udonite는 어떻게 설치하나요?
- 위의 버튼으로 VRChat Creator Companion에 Udonite 리스팅을 추가하고, 월드 프로젝트에 패키지를 추가하세요. 첫 번째 월드가 단계별로 안내하고, 시작하기는 짧은 버전입니다.
- 어떤 Unity와 VRChat SDK 버전을 지원하나요?
- VRChat이 현재 월드에 대해 지원하는 것, 즉 오늘 기준으로 Unity 2022.3과 Worlds SDK 3.10 이상입니다. VRChat은 현재 Unity 버전과 SDK를 문서로 유지하며, Udonite는 그것을 따릅니다.
- 호스팅 서비스는 무엇을 하나요?
- Relay는 월드에서 Discord 웹훅이나 스마트폰으로 메시지를 보냅니다. Storage는 카운터, 점수표, 공유 스위치를 모두가 나간 뒤에도 남겨 둡니다. 둘 다 대시보드에서 관리하고, 월드에서는 Net과 Persistence 패키지로 사용합니다.