- vrchat의 이벤트 함수
title: “7. vrchat의 이벤트 함수” categories:
-
UDONSHARPcourse
#7. vrchat의 이벤트 함수 : 네이버 블로그
디스코드 rage147#2898 친추해주시거나
디스코드 서버오셔용~~
우동 관련 이야기 해용~~
vrchat의 이벤트 함수입니다.
별은 중요도로 3개 ☆☆☆만점입니다
override를 치고 인텔리센스 기능으로 볼 수 있습니다
위의 2개는 재정의 함수로 무시하겠습니다
아래는 목록입니다
궁금한 이벤트는 컨트롤+f 찾기 기능으로 찾아주세요
별이 없는 이벤트는 무시해도 됍니다
InputDrop
InputGrab
InputJump
InputUse
InputLookHorizontal
InputLookVertical
InputMoveHorizontal
InputMoveVertical
Interact☆☆☆
MidiControlChange
MidiNoteOff
MidiNoteOn
OnDeserialization ☆☆
OnDrop☆
OnOwnershipRequest
OnOwnershipTransferred
OnPickupUseDown☆☆☆
OnPickupUseUp☆☆☆
OnPlayerCollisionEnter
OnPlayerCollisionExit
OnPlayerCollisionStay
OnPlayerJoined ☆☆☆
OnPlayerLeft ☆☆☆
OnPlayerParticleCollisionEnter☆☆☆
OnPlayerParticleCollisionStay☆☆☆
OnPlayerParticleCollisionExit☆☆☆
OnPlayerRespawn ☆☆
OnPlayerTriggerEnter☆☆☆
OnPlayerTriggerStay☆☆☆
OnPlayerTriggerExit☆☆☆
OnPostSerialization
OnPreSerialization
OnSpawn☆
OnStationEntered
OnStationExited
OnVideoEnd
OnVideoError
OnVideoLoop
OnVideoPause
OnVideoPlay
OnVideoReady
OnVideoStart
PostLateUpdate☆
Input 그룹
InputDrop
InputGrab
InputJump
InputUse
InputLookHorizontal
InputLookVertical
InputMoveHorizontal
InputMoveVertical
input형제들은 https://docs.vrchat.com/docs/input-events
[Input Events You can read the input of a Player’s controller in a unified way across all platforms by using Udon Input Events. These events will work correctly even when the player has remapped their controls. There are currently two types of events - Button and Axis, which include boolean and float values. Each…
docs.vrchat.com](https://docs.vrchat.com/docs/input-events)
요기에 정리 되어있습니다
Udon Input Events를 사용하면 모든 플랫폼에서 컨트롤러 입력을 읽을 수 있습니다. 이 이벤트는 플레이어가 컨트롤러를 다시 맵핑한 경우에도 올바르게 작동합니다.
PC | VR | |
Drop 드롭 | 오른쪽 클릭 | 놓을때?(모르겠음) |
Grab 그랩 | 왼쪽 클릭 | 그랩 |
Jump 점프 | 스페이스바 | 점프버튼?(모르겠음) |
Use 유즈 | 왼쪽 클릭 | 트리거 |
주의!! 물건을 집은 후 사용이 아닌 그냥 클릭했을때도 인식됨
InputLookHorizontal | 수평고개돌릴때 |
InputLookVertical | 수직고개돌릴때 |
InputMoveHorizontal | 수평움직일때 |
InputMoveVertical | 수직움직일때 |
Interact☆☆☆
상호작용 이벤트입니다
물체를 클릭 할 때 실행됩니다
매우매우매우중요
MidiControlChange
컨트롤러 변경됬을때
MidiNoteOff
놓았을 때
MidiNoteOn
눌렀을 때
OnDeserialization ☆☆☆
싱크(동기)가 된 후 실행됨
변수가 동기화 될 때 실행되는 이벤트
또 플레이어가 방에 입장하면 동기를 맞춘 후에 실행됩니다
OnDrop☆
PickUp한 오브젝트를 내려놓을때 실행됨
OnOwnershipRequest
다른 플레이어가 소유권 이전을 요청 할 때 실행됨
return으로 true또는 false로
소유권 이전을 승인, 거절 할 수 있음
OnOwnershipTransferred
소유권이 넘어간 경우 실행됨
OnPickupUseDown☆☆☆
OnPickupUseUp☆☆☆
OnPickupUseDown
잡은 상태에서
버튼이 내려간(클릭한) 경우 실행됨
OnPickupUseUp
잡은 상태에서
버튼이 올라간(뗀) 경우 실행됨
잡기 위해서는 AutoHold가 켜져 있어야 함
PC VR 공용 이벤트임. 총을 쏘는것처럼 잡은 물체에 기능을 넣을 때 사용
OnPlayerCollisionEnter
OnPlayerCollisionExit
OnPlayerCollisionStay
플레이어가 isTrigger가 꺼져 있는 콜라이더와 충돌할 때 실행되는 이벤트라고 하는데
움직이는 오브젝트트에만 실행됨.
플레이어가 직접 오브젝트로 들어가는 경우 실행이 안됨
잘 모르는경우 절대 쓰지 마세용. 실행이 안될거에요
자세한건 공홈 메뉴얼 참고
https://docs.vrchat.com/docs/player-collisions
[Player Collisions Udon has three ways to detect when a Player and an Object Collide - Triggers, Physics, and Particles. Triggers If you want to detect when a player has entered or exited an area, your best bet will be to use the OnPlayerTrigger events. There are three of these: OnPlayerTriggerEnter is called when a p…
docs.vrchat.com](https://docs.vrchat.com/docs/player-collisions)
OnPlayerJoined ☆☆☆
OnPlayerLeft ☆☆☆
Joined는 다른 플레이어가 월드에 들어오면 실행됩니다
Left는 다른 플레이어가 월드에서 나가면 실행됩니다
플레이어 카운터나 새로 들어온 플레이어를 동기시킬때 사용
주의할 점은 Left한 플레이어의 id는 -1로 나온다은 점!
즉 누가 나갔나 특정 불가!!
OnPlayerParticleCollisionEnter☆☆☆
OnPlayerParticleCollisionStay☆☆☆
OnPlayerParticleCollisionExit☆☆☆
월드 기능을 만들 때 자주 쓰이는 이벤트입니다
파티클이 플레이어와 충돌하면 실행됩니다
파티클은 Collision 모듈이 켜져있어야하고
Type World
Mode 3D
Send CollisionMessage가 켜져 있어야합니다
OnPlayerRespawn ☆☆
플레이어가 메뉴에서 리스폰을 누를 때 실행되는 이벤트입니다
리스폰 할 때 스폰 위치가 아닌 다른곳에 스폰하고 싶다 하면
이 이벤트가 실행 될 때 텔레포트를 하게끔 설정하면 되겠지요
OnPlayerTriggerEnter☆☆☆
OnPlayerTriggerStay☆☆☆
OnPlayerTriggerExit☆☆☆
온플레이어트리거 그룹은
플레이어가 IsTrigger가 체크된 콜라이더에 충돌하면 실행되는 이벤트입니다
기능을 만들 때 많이 쓰입니다
Enter Stay Exit 가 있는데 각각
충돌할때 충돌하고있을때 충돌하고나왔을때
를 의미합니다
OnPostSerialization
네트워크입니다
Serialization은 동기라고 생각하시면 됩니다
동기 요청 후에 실행되는 이벤트입니다
result라는 구조체(자료형)이 생기는데
success와 byteCount를 사용 할 수 있습니다
success는 동기가 성공했는지 참 거짓을 반환합니다
byteCount는 동기한 데이터의 크기를 바이트로 반환합니다
OnPreSerialization
동기 직전에 실행되는 이벤트입니다
OnSpawn☆
오브젝트가 Spawn으로 생성이 될 때 실행됩니다
OnStationEntered
OnStationExited
Station은 의자입니다.
Enter는 의자에 앉을 때
Exit는 의자에서 나올 때 실행되는 이벤트입니다
OnVideoEnd
OnVideoError
OnVideoLoop
OnVideoPause
OnVideoPlay
OnVideoReady
OnVideoStart
다들 비디오 플레이어와 관련된 이벤트입니다
엔드는 끝날때
에러는 로딩 중 에러가 발생했을때
루프는 루프 설정을 했을 시 비디오가 종료되고 다시 반복 할 때
포즈는 비디오가 일시정지할때
플레이는 플레이될때
레디는 새 비디오를 로딩할때
스타트는 비디오가 중지된 상태에서 시작할때
PostLateUpdate☆
ik연산이 끝난 후 실행되는 이벤트입니다
본의 가장 정확한 위치를 얻어 낼 때 사용하면 좋습니다
https://gall.dcinside.com/mgallery/board/view/?id=vr&no=174124
위 링크는 ik에 관한 글입니다
현재는 네트워크에 따라 대여폭을 조절해 지연이 없게끔 작동합니다
이걸로 vrchat 이벤트 함수의 설명이 끝났습니다.
다 외울 필요는 없고 한번 쓱 눈으로 본 뒤
이런 이벤트가 있구나 정도로만 넘어가시먼 됩니다