연습 - objectmanipulator로 손 상호 작용 추가

완료됨

ObjectManipulator 스크립트는 손 및 모션 컨트롤러 입력 모델의 직접 조작 형식을 지원합니다. 스크립트가 개체에 연결되면 사용자는 손으로 개체를 이동, 크기 조정 또는 회전할 수 있습니다. 이 연습에서는 두 개의 큐브를 만들고 필요한 스크립트를 연결한 다음 큐브를 이동합니다.

첫 번째 큐브 추가 및 조정

  1. 메뉴 모음에서 GameObject>3D 개체>큐브를 선택합니다.

    Screenshot of menu commands for adding the cube.

    큐브의 기본 크기는 1입방 미터로, 목적에 비해 너무 큽니다. 크기를 20 입방 센티미터로 축소할 것입니다.

  2. 큐브를 선택한 다음 검사기에서 변환 섹션에서 큐브의 배율 값을 다음으로 변경합니다.

    X = 0.2, Y = 0.2, Z = 0.2

    큐브가 장면의 기본 위치 (0,0,0)에 배치되었습니다. 즉, 큐브는 사용자의 헤드셋과 동일한 위치에 있으며 사용자가 뒤로 이동할 때까지 큐브를 볼 수 없습니다. 큐브의 위치 값을 변경하여 더 나은 보기 위치에 배치합니다.

  3. 검사기에서 변환 섹션에서 큐브의 위치 값을 다음으로 변경합니다.

    X = -0.2, Y = 1.6, Z = 0.5

    Screenshot of the cube's transform component after updates.

    큐브의 세 면을 볼 수 있기를 원하므로 큐브의 회전도 변경합니다.

  4. 검사기에서 변환 섹션 값에서 큐브의 회전 값을 다음으로 변경합니다.

    X = 9, Y = 14, Z = 0

    큐브를 확대하려면 큐브를 선택하고 커서가 장면 창 위로 마우스를 가져가고 있는지 확인하고 F 키를 누릅니 다. 이러한 방식으로 모든 개체를 확대할 수 있습니다.

큐브에 스크립트 추가

개체가 추적된 손으로 “잡기 가능”하려면 다음 세 가지 구성 요소가 연결되어 있어야 합니다.

  • 충돌체 구성 요소(여기서는 아무 작업도 수행할 필요가 없습니다. Unity의 큐브에는 기본적으로 Box Collider가 이미 연결되어 있습니다.
  • 개체 조작자(스크립트) 구성 요소
  • 제약 조건 관리자(스크립트) 구성 요소
  1. 큐브를 계속 선택한 상태에서 검사기 창에서 구성 요소 추가 단추를 선택한 다음, Object Manipulator 스크립트를 검색하여 선택합니다.

    Screenshot of adding the Object Manipulator script.

    개체 조작자 스크립트는 하나 또는 두 개의 손을 사용하여 개체를 이동 가능하고 확장 가능하며 회전 가능하게 만듭니다. Object Manipulator 스크립트를 추가하면 Constraint Manager 스크립트도 자동으로 추가되는데 이는 개체 조작자 스크립트가 그에 따라 달라지기 때문입니다.

    Screenshot of the Constraint Manager script added to the cube.

큐브의 재질 업데이트

성능을 위해 기본 Unity 재질 대신 MRTK 재질을 사용하는 것이 좋습니다.

  1. 큐브가 선택된 상태에서 메시 렌더러 구성 요소에서 재질 섹션을 찾아 확장합니다.
  2. 기본 재료를 MRTK 표준 자산>재질 아래에 있는 MRTK_Standard_White 재질로 바꿉니다. 재질 섹션의 요소 필드 로 직접 재질을 끌어서 이 작업을 수행할 수 있습니다.

두 번째 큐브 추가

  1. 계층 구조에서 큐브를 마우스 오른쪽 단추로 클릭하고 복제를 선택합니다. 중복된 큐브는 큐브(1)라는 이름으로 나타납니다.

  2. 원래 큐브를 마우스 오른쪽 단추로 클릭하고 이름 바꾸기를 선택한 다음 큐브의 이름을 큐브 근처로 지정합니다.

  3. 중복된 큐브를 마우스 오른쪽 단추로 클릭하고 이름 바꾸기를 선택한 다음 큐브의 이름을 Far Cube지정합니다.

    현재 장면 보기에는 큐브가 하나만 있는 것처럼 보이는데 이는 Near Cube와 Far Cube가 동일한 위치에 있기 때문입니다. Far Cube의 위치와 회전을 변경해 보겠습니다.

  4. Far Cube를 계속 선택한 상태에서 변환 구성 요소의 값을 다음으로 변경합니다.

    Position: X = 0.6, Y = 1.6, Z = 1.1

    회전: X = 27, Y = 0, Z = 0

    이제 카메라는 왼쪽에 근거리 큐브를 표시하고 오른쪽에서 조금 더 멀리 떨어진 파 큐브를 볼 수 있습니다. 이를 확인하려면 계층 구조에서 기본 카메라(MRTK XR 리그>카메라 오프셋 아래)을 선택한 다음 장면 창에서 주 카메라 창을 확인합니다.

    Screenshot of the Main Camera view in the Scene window.

    장면 창의 보기가 카메라가 보는 것과 더 비슷하게 보이도록 하려면 장면 창에서 스크롤합니다. 카메라의 클리어 플래그를 기본적으로 설정하지 않은 경우 Skybox설정해야 할 수 있습니다.

재생 모드에서 큐브 잡기 및 이동

  1. 재생 단추를 선택합니다. 프로젝트가 재생을 시작하면 보기가 게임 창으로 전환됩니다.

    Screenshot of the Game window after entering Play mode.

    참고 항목

    재생하기 전에 Project 설정>MRTK3 아래에 유효한 프로필 집합이 있는지 확인합니다.

  2. 게임 창의 오른쪽 위 모서리 위에 있는 세 개의 점 단추를 선택한 다음 최대화(Maximize)를 선택합니다.

    Screenshot of Maximize command for the Game window.

  3. 스페이스바길게 눌러 시뮬레이션된 오른손이 보기에 표시되도록 합니다.

  4. 시뮬레이션된 손을 옆이나 아래쪽의 큐브에 닿을 때까지 근거리 큐브에 더 가깝게 이동합니다.

    Screenshot of the simulated right hand touching the Near Cube.

  5. 왼쪽 마우스 단추(손에서 큐브를 "잡아")를 클릭한 다음 큐브를 장면 주위로 끕니다.

    Screenshot of Move the cube.

    Far Cube를 잡아 이동하려면 시뮬레이션된 손에 연결된 먼 포인터를 사용합니다.

  6. 필요한 경우 스페이스바다시 길게 눌러 시뮬레이션된 오른손을 표시합니다. 먼 포인터는 손의 검지 손가락 끝에서부터 확장됩니다.

    Screenshot of simulated hand's far pointer.

  7. 큐브에서 포인터의 끝을 볼 수 있게 될 때까지 손을 Far Cube에 더 가깝게 이동합니다. 포인터의 끝을 큐브에 표시하려면 원을 그리며 손을 몇 번 이동해야 할 수 있습니다.

    Screenshot of the far pointer touching the cube.

  8. 왼쪽 마우스 단추를 클릭하면 손을 닫고 "손가락 모으기 제스처"라고 부르는 것을 취한 다음 큐브를 장면 주위로 끕니다.