Unity

Unity 기초

한우종 2024. 10. 25. 19:18

유니티 주요 기능

  • Asset 에셋 게임에 필요한 모든 리소스 (파일) 프로젝트의 에셋 폴더에 저장되며 유니티에서 사용 가능한 형식으로 가져와서 게임에 활용한다.
  • Scene 씬 게임의 각 장면 또는 화면을 의미한다. 유니티에서 게임은 하나 이상의 씬으로 구성되며 각 씬은 게임의 특정 부분을 담당한다. 예를 들어 메뉴 씬 , 게임 플레이 씬 , 엔딩 씬 등
  • GameObject 게임 오브젝트 씬에 배치되는 모든 요소를 의미한다. 게임 오브젝트는 에셋을 이용하여 씬에 생성되며 게임의 동작과 상호작용을 담당한다. 예를들어 캐릭터 , NPC , 아이템 , 장애물 등이 게임 오브젝트이다. 게임 오브젝트는 계층 구조로 구성되어 부모 - 자식 관계를 가지며 이를 통해 그룹화하고 조작할 수 있다.

유니티 인터페이스

  • D = Scene 뷰 씬의 3D 또는 2D 뷰로 씬 구성 요소 편집
  • C = Game 뷰 게임이 실제로 실행되는 뷰 , 플레이어가 게임을 플레이하는 화면을 실시간으로 확인할 수 있다.
  • B = Hierarchy 뷰 현재 씬의 게임 오브젝트 계층 구조 표시 및 편집
  • F = Inspector 뷰 선택된 게임 오브젝트의 속성 및 구성 요소 편집
  • G = Project 뷰 프로젝트의 에셋 표시 및 관리
  • Console 뷰 게임 실행 중의 로그 및 메시지 표시

유니티 마우스 조작법

  • 마우스 왼쪽 클릭 게임 오브젝트 선택
  • 마우스 오른쪽 클릭 w,s,a,d,q,e 키로 씬 뷰를 1인칭 이동 가능 , 드래그시 씬 뷰 회전
  • 마우스 스크롤 줌 인 & 아웃
  • 마우스 스크롤 클릭 씬 뷰 이동
  • alt + 마우스 왼쪽 드래그 씬 뷰 화면 중심 회전
  • alt + 마우스 오른쪽 드래그 줌 인 & 아웃

Unity UGUI

UGUI 란?

  • GUIGraphical User Interface로 그래픽으로 화면에 구현된 유저 인터페이스이며 UGUI는 유니티에서 지원하는 GUI 시스템을 의미한다. 한마디로 시각화 된 인터페이스를 의미한다.
  • Unity UI는 게임 및 애플리케이션용 사용자 인터페이스를 개발하기 위한 UI 툴킷이다. 이는 컴포넌트와 게임 뷰를 사용하여 사용자 인터페이스를 정렬, 위치 지정 및 스타일 지정하는 GameObject 기반 UI 시스템이다. Unity UI를 사용하여 Unity 에디터에서 사용자 인터페이스를 만들거나 변경할 수 없다

UGUI 레퍼런스

  • Canvas(부모) 캔버스라는 부모 밑에 자식으로 여러가지UI요소들이 들어간다.

RanderMode 

  • Screen Space - Overlay 렌더링된 화면 상단에 UI 요소를 배치한다. 화면 크기가 조정되거나 해상도가 변경되면 캔버스는 이에 맞춰 자동으로 크기를 변경한다.
  • Screen Space - Camera 화면 크기가 조정되거나 해상도가 변경되거나 카메라 절두체가 변경되면 캔버스도 이에 맞춰 자동으로 크기를 변경한다. Overlay와 비슷하지만 화면에 그려지는 순서를 조절할 수 있다. 게임 오브젝트보다 뒤로 보낼수도있고 오브젝트a와 b가 있을경우 그 사이에 넣어줄 수도 있다. UI의 그려지는 순서를 달리하고싶을 경우 사용한다.
  • World Space 게임월드 내부에 생성할수있는 UI모드이다. 캔버스는 개별 개체처럼 작동한다. 캔버스의 크기는 Rect Transform을 사용하여 수동으로 설정할 수 있으며 UI 요소는 3D 배치에 따라 장면의 다른 개체 앞이나 뒤에 렌더링된다.

  • Visual Components
    • Text
      표시될 텍스트를 입력할 수 있는 텍스트 영역이 있다. 폰트 , 폰트 스타일 , 크기 및 서식 있는 텍스트 기능이 있는지 여부를 설정할 수 있다. 텍스트 정렬, 가로 및 세로 오버플로에 대한 설정 , 사용 가능한 공간에 맞게 텍스트 크기를 조정하는 최적 맞춤 옵션이 있다.

    • Image
    1. Simple - 전체 스프라이트의 크기를 동일하게 조정한다.
    2. Sliced - 3x3 스프라이트 분할을 활용하여 크기 조정 시 모서리가 왜곡되지 않고 중앙 부분만 늘어난다.
    3. Tiled - Sliced와 유사하지만 중앙 부분을 늘리지 않고 타일링(반복) 한다. 테두리가 전혀 없는 스프라이트의 경우 전체 스프라이트가 타일링 된다.
    4. Filled - 원점에서 정의된 방향 , 방법 및 양으로 스프라이트를 채우는 점을 제외하면 단순 과 동일한 방식으로 스프라이트를 표시한다.

Interaction Components

UnityEvent

  1. Button
    버튼 클릭시 수행할 작업을 정의하는 OnClick 이벤트
  2. Toggle
    토글에는 토글이 현재 켜져 있는지 꺼져 있는지를 결정하는 Is On 체크란이 있다. 또한 값이 변경될 때 수행할 작업을 정의하는 OnValueChanged 이벤트도 있다.
  3. Slider
    슬라이더에는 사용자가 최소값과 최대값 사이에서 드래그할 수 있는 값이 있다. 수평일 수도 있고 수직일 수도 있다. 또한 값이 변경될 경우 수행할 작업을 정의하는 OnvalueChanged 이벤트도 있다.
  4. InputField
    입력 필드는 사용자가 텍스트 요소 의 텍스트를 편집할 수 있도록 만드는데 사용된다. 텍스트 내용이 변경될 때 수행할 작업을 정의하는 이벤트와 사용자가 편집을 마쳤을 때 수행할 작업을 정의하는 또 다른 이벤트가 있다.

Auto Layout

  1. Horizontal LayoutGroup 수평 레이아웃 그룹 컴포넌트는 자식 레이아웃 요소를 바로옆에 서로 붙여 놓는다.
  2. Vertical LayoutGroup 수직 레이아웃 그룹 컴포넌트는 자식 레이아웃 요소를 쌓는다.
  3. Grid LayoutGroup Grid LayoutGroup 컴포넌트는 자식 레이아웃 요소를 격자 무늬에 위치시킨다.
  4. Content Size Fitter 콘텐츠 크기 피터는 자체 레이아웃 요소의 크기를 제어하는 레이아웃 컨트롤러의 기능을 수행한다.