본문 바로가기

Unity3D/Object Creation

Unity 3D Object Creation

유니티 3D에서 지원하는 오브젝트를 생성하고 생성된 오브젝트와 관련한 몇가지 사항을 알아본다


1. Scene View를 보다 넓게 보기 위해서 Layout 을 Wide로 선택하고 오버레이 버튼을 눌러서 그리드가 보이도록 설정한다




2. GameObject > Create Other > Plane을 선택하여 Scene 뷰 상에 평면을 하나 생성한다

생성된 평면이 너무 작다면 앞에서 다룬 Scene View Navigation 방법들(마우스 휠, ALT+마우스우측 드래그 등)을 사용하여 확대한다.

생성된 평면을 바라보는 방향을 조정하려면 ALT+마우스 왼쪽 드래그를 사용하여 좌우상하 방향을 조정한다


3. 평면의 뒷면은 볼 수 없다

ALT+마우스 왼쪽을 누르고 Scene 뷰에서 위 아래로 드래그하다 보면 생성된 평면의 아랫면은 보이지 않는다는 것을 확인할 수 있다. 이것은 유니티에서 평면은 위쪽만 보이도록 Normal Side로 설정했기 때문이다.


4. Hierarchy 뷰 상에서 선택된 오브젝트가 Pan 툴에 의해서 이동하여 화면의 중앙에서 벗어났거나 Scene 뷰에서 보이지 않게 된 경우에 다시 오브젝트가 화면 중앙으로 복귀하게 하려면 Hierarchy 뷰 상에서 여전히 해당 오브젝트가 선택된 상태에서 'F' 키를 누르면 된다



5. 생성된 평면이 선택된 상태에서 Inspector 뷰의 Position 속성을 보면 평면의 위치는 월드좌표 중심(0,0,0) 상에 위치한 것을 알 수 있다.


6. GameObject > Create Other > Cube 를 선택하여 평면이 생성된 Scene 뷰에 큐브를 하나 추가한다.

새로 생성된 큐브도 월드좌표의 중심에 생성이 되므로 (0,0,0) 에 위치하게 된다. 그러나 항상 월드좌표의 중심에 생성되는 것은 아니다.

큐브는 평면에 비해 높이가 있기 때문에 평면의 상부에 큐브의 절반만 보이는 모양으로 생성된다.


7. Pan 툴을 이용하여 지금까지 생성한 오브젝트 들을 왼쪽으로 이동한 후에 다시 큐브를 하나 추가해보면 이번에는 월드좌표의 중심에 큐브가 생성되는 것이 아니라 개발자 카메라가 바라보는 중심에 오브젝트가 생성되는 것을 확인할 수 있다.




8. 위의 그림처럼 Hierarchy 뷰 상에서 동일한 이름이 중복되어 있다면 마우스 우측을 눌러서 Rename 항목을 선택하여 식별이 용잉한 이름으로 변경해주는 것이 좋다.


9. Hierarchy 뷰에서 검색란에 오브젝트 이름을 입력하고 엔터를 치면 해당 이름의 오브젝트가 선택되어 표현된다. 검색 후에는 입력했던 내용을 입력란에서 지워야만 색상이 원래의 상태로 되돌아 온다


10. 2개의 오브젝트를 동일한 위치에 정렬하기

유니티에서는 동일한 위치에 2개 이상의 오브젝트를 정렬하는 방법을 공식적으로 지원하지 않지만 몇가지 방법을 사용해서 구현할 수가 있다.

위에서 생성된 2개의 큐브가 동일한 위치에 있도록 설정하려면 

일단 하나의 큐브를 타겟으로 결정했다면 그 오브젝트가 뷰의 중앙에 오도록 Hierarchy 뷰에서 오브젝트의 이름을 더블클릭한다 그러면 더블클릭된 오브젝트는 Scene 뷰의 중심에 선택되어 나타나게 된다.

이어서 Hierarchy 뷰에서 타겟지점으로 보낼 오브젝트를 클릭하여 선택하고 GameObject > Move To View 를 선택하면 타겟지점으로 해당 오브젝트가 이동한다. 

이 방법의 핵심적인 원리는 개발자 카메라가 현재 바라보는 곳의 중심이 타겟지점이 되고 Move To View 명령은 그 타겟지점으로 오브젝트를 이동하는 것이다


11. Scene 뷰에서 오브젝트 삭제

오브젝트를 마우스로 선택하고 키보드의 DELETE 키를 누른다.

Hierarchy 뷰에서 해당 오브젝트 위에서 마우스 우측을 누르고 Delete 항목을 선택한다


12. 지금까지 구성한 Scene 뷰를 다음 작업시에도 사용하려면 프로젝트를 저장하는 것만으로는 안되며 File > Save Scene As 를 선택하여 별도로 Scene의 내용을 저장해 주어야 한다. 물론 프로젝트도 다음에 사용하려면 저장해주어야 함은 물론이다