본문 바로가기

UDON 강좌

UDON 이벤트 함수 정리 문서

마지막 수정 : 2021-01-28

 

기존 정리 글과 이 블로그 의 정보를 함께 정리하여 문서입니다

 

필요하신 이벤트는 Ctrl + F 를 통해 검색해서 찾아주세요

 

 

Generic Event

void OnEnable () {}

오브젝트가 활성화 되었을때 가장먼저 호출되는 이벤트

void OnDisable () {}

오브젝트가 비활성화 되었을때 가장먼저 호출되는 이벤트

void Start() {}

스크립트가 실행될때 호출된다

void Update() {}

매 프레임마다 호출된다

연결 -> LastUpdate
void FixedUpdate() {}

매 프레임마다 고정간격으로 호출된다

void LastUpdate() {}

Update()의 다음으로 호출된다

public override void OnSpawn() {}

오브젝트가 스폰되었을때 호출되는 이벤트

void OnDestroy () {}

오브젝트가 파괴될때 호출되는 이벤트

public override void OnInterect() {}

플레이어가 오브젝트와 상호작용(클릭)을 하였을때 호출되는 이벤트

 

Networking (Udon Sync)

OnNetworkReady

정상적으로 작동하지 않음

사용 가능한 관련 이벤트
 - OnPreSerialization
 - OnDeserialization
public override void OnPreSerialization() {}

Owner가 자료를 보낼때 호출되는 이벤트

public override void OnDeserialization() {}

Owner로부터 자료를 받았을때 호출되는 이벤트

public override void OnPlayerJoined (VRCPlayerApi player) {}

플레이어가 월드 인스턴스에 입장했을때 호출되는 이벤트

Parameter : VRCPlayerApi
public override void OnPlayerLeft (VRCPlayerApi player) {}

플레이어가 월드 인스턴스에서 퇴장했을때 호출되는 이벤트


public override void OnOwnershipTransferred () {}

오브젝트의 Owner가 바뀌었을때 호출되는 이벤트


 

Pickup 

public override void OnPickup() {}

플레이어가 오브젝트를 집었을때 호출되는 이벤트

public override void OnPickupUseUp() {}

플레이어가 AutoHold 옵션이 Yes인 오브젝트를 집었을때 트리거를 당기면 호출되는 이벤트

public override void OnPickupUseDown() {}

플레이어가 AutoHold 옵션이 Yes인 오브젝트를 집었을때 트리거를 놓으면 호출되는 이벤트

public override void OnDrop() {}

플레이어가 오브젝트를 놓았을때 호출되는 이벤트

 

Timer

OnTimer

작동하지 않음

 

Object Collision (Collider3D/2D)

void OnCollisionEnter (Collider other) {}

void OnCollisionEnter2D (Collider2D other) {}

콜라이더가 있는 오브젝트와 충돌하면 호출되는 이벤트

void OnCollisionStay (Collider other) {}

void OnCollisionStay2D (Collider2D other) {}

콜라이더가 있는 오브젝트와 충돌중일때 호출되는 이벤트

void OnCollisionExit (Collider other) {}

void OnCollisionExit2D (Collider2D other) {}

콜라이더가 있는 오브젝트와 충돌을 더이상 하지않을때 호출되는 이벤트

void OnTriggerEnter (Collider other) {}

void OnTriggerEnter2D (Collider2D other) {}

충돌하는 두 오브젝트중 하나 이상의 콜라이더에 Is Trigger 옵션이 활성화 되어있는
오브젝트와 충돌하면 호출되는 이벤트

void OnTriggerStay (Collider other) {}

void OnTriggerStay2D (Collider2D other) {}

충돌하는 두 오브젝트중 하나 이상의 콜라이더에 Is Trigger 옵션이 활성화 되어있는
오브젝트와 충돌중일때 호출되는 이벤트

void OnTriggerExit (Collider other) {}

void OnTriggerExit2D (Collider2D other) {}

충돌하는 두 오브젝트중 하나 이상의 콜라이더에 Is Trigger 옵션이 활성화 되어있는
오브젝트와 충돌을 더이상 하지않을때 호출되는 이벤트

void OnParticleCollision (GameObject other) {}

월드에 존재하는 파티클이 콜라이더와 충돌할때 호출되는 함수

플레이어의 콜라이터 호출 -> OnPlayerParticleCollision

 

Player Collision (Collider3D/2D)

public override void OnPlayerTriggerEnter (VRCPlayerApi player) {}

플레이어가 Is Trigger 옵션이 활성화된 콜라이더와 충돌하면 호출되는 이벤트

public override void OnPlayerTriggerStay (VRCPlayerApi player) {}

플레이어가 Is Trigger 옵션이 활성화된 콜라이더와 충돌중일때 호출되는 이벤트

public override void OnPlayerTriggerExit (VRCPlayerApi player) {}

플레이어가 Is Trigger 옵션이 활성화된 콜라이더와 충돌을 더이상 하지 않을때 호출되는 이벤트

public override void OnPlayerCollisionEnter (VRCPlayerApi player) {}

플레이어가 콜라이더와 충돌하면 호출되는 이벤트
오브젝트가 정지되어있는 상태에서는 호출되지 않음

대용 가능한 이벤트
 - OnPlayerTriggerEnter
public override void OnPlayerCollisionStay (VRCPlayerApi player) {}

플레이어가 콜라이더와 충돌중일때 호출되는 이벤트
오브젝트가 정지되어있는 상태에서는 호출되지 않음

대용 가능한 이벤트
 - OnPlayerTriggerStay
public override void OnPlayerCollisionExit (VRCPlayerApi player) {}

플레이어가 콜라이더와 충돌을 더이상 하지 않을때 호출되는 이벤트
오브젝트가 정지되어있는 상태에서는 호출되지 않음

대용 가능한 이벤트
 - OnPlayerTriggerExit
public override void OnPlayerParticleCollision (GameObject other) {}

월드에 존재하는 파티클이 플레이어와 충돌할때 호출되는 함수
ParticleSystem의 SendCollisionMessages 옵션이 On이여야 함

플레이어의 콜라이터 호출 -> OnPlayerParticleCollision


Video Player

public override void OnVideoReady () {}

비디오플레이어가 재생할 준비가 되었을때 호출되는 이벤트

public override void OnVideoStart () {}

비디오플레이어가 정지상태에서 재생을 시작할때 호출되는 이벤트

public override void OnVideoPlay () {}

비디오플레이어가 정지상태에서 재생, 일시정지 해제, 플레이어에 의한 재생 을 할때 호출되는 이벤트

public override void OnVideoPause () {}

비디오플레이어가 일시정지 되었을때 호출된느 이벤트

public override void OnVideoEnd () {}

비디오플레이어의 재생이 끝나거나 플레이어에 의해 정지되었을때 호출되는 이벤트

public override void OnVideoLoop () {}

비디오플레이어의 재생이 반복될때 호출되는 이벤트

public override void OnVideoError () {}

비디오플레이어의 재생이 실패하였을때 호출되는 이벤트

 

Key Input

OnKeyDown

사용하지 않음
따라서 아래와 같이 Update에서 체크 해야함

void Update () { 
    if ( Input.GetKeyDown (  KeyCode  ) )
    {
        . . .
    }
}
OnKeyUp

사용하지 않음
따라서 아래와 같이 Update에서 체크 해야함

void Update () { 
    if ( Input.GetKeyUp (  KeyCode  ) )
    {
        . . .
    }
}

 

Station (Chair)

public override void OnStationEntered () {}

Station에 앉았을때 호출되는 이벤트

public override void OnStationExited () {}

Station에서 나왔을때 호출되는 이벤트