-
Notifications
You must be signed in to change notification settings - Fork 3
즐거운 유니티 C#~( 충돌 감지, 꿀팁!!! rigidbody 튕김 방지 )
kimhanui edited this page Sep 8, 2018
·
1 revision
스크립트 작성 중인 오브젝트를 기준으로, 오브젝트에 충돌한 물체 감지
유니티에서는 충돌이 일어나면 특정 메소드(OnCollisionEnter( 충돌한 상대 ))를 호출
예시)
void OnCollisionEnter( Collision a ) //a가 충돌한 물체
{
Debug.Log(a.gameObject.name); //a의 이름 콘솔에 찍는다.
}
void OnCollisionEnter( Collision a )
{
Vector3 direction = transform.position -
a.gameObject.transform.position;
//direction 은 방향과 크기를 가진 '힘'으로 생각
//direction.normalized는 direction의 크기를 1로 정규화 시킨것!
direction = direction.normalized * 1000; // 곧 크기가 1000임.
// 구한 방향으로 힘을 주자! AddForce(direction)
a.gameObject.GetComponent<Rigidbody>().AddForce(direction);
}
Collider끼리 부딪혔을 때 OnCollisionEnter가 호출
그래서 복잡한 캐릭터의 경우 Collider라도 단순화해서 씀
private void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.tag == "Bird")
collision.gameObject.GetComponent<Rigidbody>().isKinematic = true;
//서로 닿았을 때 밀림 방지
}