안녕하세요 이번 강좌는 콜라이더 충돌 이벤트에 대해 다뤄보겠습니다.
콜라이더 충돌 이벤트는 콜라이더가 Rigidbody와 콜라이더가 있는 오브젝트와 충돌할 경우 발생합니다
먼저 저번 강좌와 같이 새로운 UDON C#(U#) 스크립트를 만든 뒤 Create Script로 새로운 C# 스크립트를 만듭니다.
먼저 이번에는 void Start() {} 함수가 필요없으니 지워줍니다.
그리고 private void OnCollisionEnter(Collision collision) {} 와
private void OnCollisionExit(Collision collision) {} 를 추가해 줍니다.
콜라이더와의 충돌을 감지한 걸 확인하기 위해 Material변수를 public(공개변수)로 만들어줍니다.
충돌이 감지돼 바뀐 머테리얼을 되돌리기 위해 변수를 하나 더 만들어줍니다.
OnCollisionEnter 함수 내에 원래의 머테리얼을 변수에 담아주고 충돌중일 때 표시 할 머테리얼의 변수를 MeshRenderer를 불러와 넣어줍니다.
충돌이 끝나면 다시 원래대로 돌아가기 위해 OnCollisionExit 함수에 아까 담아뒀던 원래의 머테리얼을 MeshRenderer를 불러와 넣어줍니다.
이제 저장하고 컴파일 해준 뒤 머테리얼을 지정해줍니다.
유니티에서 픽업 오브젝트를 생성
월드 업로드 후 VRChat 내에서 픽업 오브젝트와 큐브가 충돌할 때마다 머테리얼이 바뀌는 것을 확인할 수 있습니다.
이전 글중 "자주쓰는 이벤트 정리"를 참고하여 다른 이벤트도 이번과 비슷하게 사용할 수 있습니다.
[바로가기] 2020/04/09 - [UDON 강좌] - UDON 자주 쓰이는 이벤트 함수 정리
using UdonSharp;
using UnityEngine;
using VRC.SDKBase;
using VRC.Udon;
public class <스크립트 파일이름을 그대로 적어주세요> : UdonSharpBehaviour
{
public Material check;
public Material original;
public void OnCollisionEnter(Collision collision)
{
this.GetComponent<MeshRenderer>().material = check;
}
public void OnCollisionExit(Collision collision)
{
this.GetComponent<MeshRenderer>().material = original;
}
}
'UDON 강좌' 카테고리의 다른 글
UDON Node 강좌 (2) : Transform으로 오브젝트 움직이기 (0) | 2020.04.12 |
---|---|
UDON 싱크 구조 정리 (0) | 2020.04.09 |
UDON 자주 쓰이는 이벤트 함수 정리 (0) | 2020.04.09 |
UDON U# 강좌 (2) : 오브젝트 움직이기 (0) | 2020.04.09 |
UDON 강좌 (1) : 시작하기 (0) | 2020.04.09 |