Raycast
적용하려면 Collider
를 씌워줘야 한다.
2D
에서는 EdgeCollider2D
로 시작점과 끝점만 설정하면 되는데,
3D
에서는 불가능 해서 다른 Collider
로 씌워줘야 한다.
회전이 제대로 안돼서 한참 고민하다가 자식 오브젝트와 LookAt
함수로 해결했다.
💡Line
오브젝트(프리팹)에 LineRenderer
가 있고,
하위 오브젝트인 Collider
오브젝트에 BoxCollider
가 있다.
이렇게 하는 이유는 Line
에 BoxCollider
를 바로 넣으면 이상한 중심축으로 회전한다.
그래서 꼭 자식 오브젝트에 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);
}
나는 두 오브젝트 사이의 거리를 size
의 z
에 넣었는데,
제대로 작동하지 않는다면,x
나 y
에 넣어보기를!