상세 컨텐츠

본문 제목

유니티 오브젝트 부모(상위),자식(하위) 관계 만들기

유니티/기능

by MJ_119 2024. 9. 30. 23:29

본문

 

- 오브젝트 부모(상위),자식(하위) 관계 만들기

 

방법 1. 로컬 좌표로 설정하기

cubes[i].transform.parent = cubes[i - 1].transform;

 

  • 동작: 큐브 i를 큐브 i-1의 자식으로 설정할 때, 큐브 i의 월드 좌표를 큐브 i-1의 로컬 좌표로 변환합니다.
  • 결과: 부모-자식 관계가 설정된 후, 자식 큐브의 위치, 회전, 크기 등은 부모 큐브의 변환 정보에 의해 재계산됩니다. 즉, 자식 큐브의 현재 위치가 부모의 로컬 좌표계를 기준으로 조정됩니다. 이로 인해 자식의 월드 좌표가 달라질 수 있습니다.

 

 

방법 2. 월드 좌표로 유지하기

cubes[i].transform.SetParent(cubes[i - 1].transform, false);

 

  • 동작: 부모-자식 관계를 설정할 때, **두 번째 인자 false**를 통해 자식 큐브의 월드 좌표를 유지하면서 부모 큐브와의 관계를 설정합니다.
  • 결과: 자식 큐브의 월드 좌표와 변환 정보가 부모-자식 관계 설정 후에도 변하지 않습니다. 자식 큐브는 여전히 같은 위치에 있지만, 이제 부모 큐브의 자식으로 되어 있어 부모의 변환(회전, 크기 변화 등)이 자식 큐브에 영향을 미칠 수 있습니다.

 

 

 

 

for (int i = 1; i < cubes.Count; i++)  // 첫 번째 큐브는 기준이므로 i = 1부터 시작
{
    // 이전 큐브를 부모로 설정
    cubes[i].transform.parent = cubes[i - 1].transform;  

    // 이전 큐브를 부모로 설정 (월드 좌표 유지)
    cubes[i].transform.SetParent(cubes[i - 1].transform, false);

    cubes[i].transform.position = new Vector3(cubes[i-1].transform.position.x, 1.3f, cubes[i-1].transform.position.z);
}

 

 

  • 부모-자식 관계: 부모 큐브가 움직이면 자식 큐브가 그 움직임을 따라가게 됩니다. 로컬 좌표로 설정할 경우, 각 큐브는 부모 큐브를 기준으로 상대적인 위치를 유지하며 움직이기 때문에, head가 움직일 때 나머지 큐브들도 연속적인 연결처럼 자연스럽게 따라오게 됩니다.
  • IK 적용: IK는 종종 **부모 체인의 끝부분(=head)**에 영향을 미치면서, 해당 부모-자식 관계의 전체 체인을 자연스럽게 움직이도록 합니다. 이 경우 로컬 좌표를 사용하면 IK에 의해 움직여지는 head의 움직임이 부모 큐브들에 자연스럽게 전파됩니다.

로컬 좌표의 장점:

  1. 연속적인 부모-자식 관계: 각 큐브는 부모 큐브를 기준으로 움직이므로, head가 움직이면 나머지 큐브들이 자연스럽게 회전하거나 이동하며 따라갑니다.
  2. 부드러운 체인형 동작: 로컬 좌표를 사용하면 IK가 적용된 head의 움직임이 부드럽게 전파되며, 나머지 큐브들도 head의 방향에 맞게 줄을 서는 듯한 움직임을 보입니다.

월드 좌표 유지의 한계:

  • 월드 좌표를 유지하면서 부모-자식 관계를 설정하면 각 큐브의 개별적인 위치가 유지되므로, 부모 큐브가 움직여도 자식 큐브가 같은 공간에 남아있게 됩니다. 이런 경우 head가 움직여도 나머지 큐브들이 자연스럽게 따라오지 않기 때문에, 원하는 탑의 물리적인 움직임이 깨질 수 있습니다.

결론:

로컬 좌표를 사용하는 것이 가장 자연스럽고 원하는 탑의 유기적인 움직임을 구현하는 데 적합합니다. 각 큐브가 부모 큐브의 움직임을 따르기 때문에, head가 캐릭터 쪽으로 움직일 때 나머지 큐브들이 연속적으로 따라오는 동작을 부드럽게 구현할 수 있습니다.

따라서, 부모-자식 관계를 설정할 때는 cubes[i].transform.parent = cubes[i - 1].transform;와 같이 로컬 좌표 변환을 사용하는 것이 적합합니다.

관련글 더보기