나만의 픽업

VRChat 픽업 대신 어떤 픽업 방식으로든 펜을 들 수 있습니다. 호출 세 가지로 모든 플랫폼에서 그대로 그립니다.

업데이트 2026-10-22

펜도 지우개도 VRChat 픽업이 꼭 필요하지 않습니다. holding 필드로 무엇이 들지 고릅니다.

holding 드는 것
VrcPickup 같은 오브젝트의 VRCPickup. 집으면 들고, Use로 그리고, 데스크톱의 R과 VR에서 든 손의 위쪽 페이스 버튼으로 되돌립니다. 기본값입니다
Custom 내 코드. VRChat 픽업 이벤트는 무시되므로 VRCPickup은 남겨 두어도 지워도 됩니다

호출 세 가지

holding을 Custom으로 하면, 내 방식이 이미 아는 것을 펜에 알려 주세요.

호출 언제
SetHeld(true) 로컬 플레이어가 집었을 때
SetUse(true) Use를 눌렀을 때
SetUse(false) Use를 뗐을 때
Undo() 마지막 선을 되돌리고 싶을 때
SetHeld(false) 내려놓았을 때

들고 있는 플레이어의 클라이언트에서 부르세요. 다른 클라이언트에는 평소처럼 네트워크로 잉크가 갑니다. SetHeld(true) 전의 누름은 세지 않고, 집을 때 이미 Use가 눌려 있었다면 한 번 떼어야 그리므로, 펜을 집은 트리거로 선이 시작되는 일은 없습니다.

그리는 곳은 펜이 정한다

드는 것은 내 방식이고, 잉크가 가는 곳은 여전히 펜의 몫입니다. VR에서는 펜의 tip에서 그리므로, 픽업이 이미 하듯 손과 함께 펜 오브젝트를 움직이세요. 데스크톱과 휴대폰에서는 플레이어의 시점에서 그리므로 픽업이 펜을 겨눌 필요가 없습니다. 손에 쥐여 주는 픽업이라면 desktopAim을 Tip으로 하면 VR처럼 tip에서 그립니다.

어댑터

대부분의 픽업 방식은 이벤트를 냅니다. 펜 옆에 작은 비헤이비어를 두고 전달하세요.

public class PenGrip : UdoniteBehaviour
{
    public Pen pen;

    public void OnGrabbed() => pen.SetHeld(true);
    public void OnReleased() => pen.SetHeld(false);
    public void OnUseDown() => pen.SetUse(true);
    public void OnUseUp() => pen.SetUse(false);
    public void OnAlternate() => pen.Undo();
}

그것을 내 방식의 이벤트에 연결하고 펜의 holding을 Custom으로 바꾸면, 나머지는 그대로입니다. 잉크 스타일, 보드, 지우기, 늦게 온 사람에게 보이는 잉크 모두 똑같이 동작합니다.

문제가 발생했습니다 새로 고침