<충돌 이벤트>
MeshRenderer mesh;
Material mat;
void Start() {
mesh = GetComponent<MeshRenderer>();
mat = mesh.material;
}
private void OnCollisionEnter(Collision collision) {
if(collision.gameObject.name == "") {
mat.color = new Color(0,0,0);
}
} // 충돌 시
private void OnCollisionStay(Collision collision) {
...
} // 충돌 중
private void OnCollisionExit(Collision collision) {
...
} // 충돌 후
<트리거 이벤트>
Rigidbody rigid;
void Start(){
rigid = GetComponet<Rigidbody>();
}
private void OnTriggerEnter(Collider other){
...
}
private void OnTriggerStay(Collider other){
if(other.name == "") {
rigid.AddForce(Vector3.up, ForceMode.Impulse);
...
}
}
private void OnTriggerExit(Collider other){
...
}
// 물리적 충돌이 아님
// collider가 겹친지 아닌지만 판단함 -> 충돌 정보 없음