[Unity] 3D LineRenderer Collider

조히·2022년 4월 7일
0

Unity

목록 보기
2/5
post-thumbnail

LineRenderer에 BoxCollider / 두 오브젝트를 잇는 Collider

Raycast 적용하려면 Collider를 씌워줘야 한다.
2D에서는 EdgeCollider2D로 시작점과 끝점만 설정하면 되는데,
3D에서는 불가능 해서 다른 Collider로 씌워줘야 한다.

회전이 제대로 안돼서 한참 고민하다가 자식 오브젝트와 LookAt 함수로 해결했다.

하이어라키

💡Line 오브젝트(프리팹)에 LineRenderer가 있고,
하위 오브젝트인 Collider 오브젝트에 BoxCollider가 있다.

이렇게 하는 이유는 LineBoxCollider를 바로 넣으면 이상한 중심축으로 회전한다.
그래서 꼭 자식 오브젝트에 Collider를 추가하기 바람..

코드

void Start()
{
    star1Pos = star1.transform.position;
    star2Pos = star2.transform.position;
    col = transform.GetChild(0).gameObject.GetComponent<BoxCollider>();

    LineCollider();

}

void LineCollider()
{
    col.size = new Vector3(5.0f, 5.0f, Vector3.Distance(star1Pos, star2Pos));
    transform.position = (star2Pos + star1Pos) / 2;
    col.transform.LookAt(star2Pos);
}

P.S.

나는 두 오브젝트 사이의 거리를 sizez에 넣었는데,
제대로 작동하지 않는다면,xy에 넣어보기를!

profile
Juhee Kim | Game Client Developer

0개의 댓글