[Unity]Unity 사용법

황시훈·2024년 1월 8일

Unity

목록 보기
1/4

인터페이스

출처 : (https://docs.unity3d.com/kr/2021.3/Manual/UsingTheEditor.html)

  • 프로젝트 : 프로젝트에서 사용할 수 있는 에셋 라이브러리가 표시된다. 프로젝트로 에셋을 임포트하면 이 창에 나타난다.

  • 계층구조 : 씬의 모든 게임 오브젝트를 계층 구조에 텍스트로 표시한다. 씬에 있는 각 항목마다 계층 구조에 엔트리가 있으므로 두 창은 본질적으로 연결되어 있다. 계층 구조는 게임 오브젝트의 상호 연결 방식을 구조로 나타낸다.

  • 장면 : 씬을 시각적으로 탐색하고 편집할 수 있다. 씬 뷰에는 작업 중인 프로젝트 타입에 따라 3D 또는 2D 원근이 표시된다.

  • 인스펙터 : 프로젝트에서 사용할 수 있는 에셋 라이브러리가 표시된다. 프로젝트로 에셋을 임포트하면 이 창에 나타난다.

  • 툴바 : Unity 계정, Unity 클라우드 서비스, Unity 콜라보레이트, 재생, 일시정지 및 단계 컨트롤, Unity 검색, 레이어 가시성 메뉴, 에디터 레이아웃 메뉴(에디터 창에 대한 일부 대체 레이아웃을 제공하고 커스텀 레이아웃을 저장할 수 있도록 허용함)에 대한 액세스를 제공한다.

  • 게임뷰 : 씬 카메라를 통해 최종적으로 렌더링된 게임 모습을 시뮬레이션한다. Play 버튼을 클릭하면 시뮬레이션이 시작된다.

  • 상태 표시줄 : 다양한 Unity 프로세스에 대한 알림을 제공하고, 관련 툴 및 설정에 대한 빠른 액세스를 지원한다.

Tool 사용법

출처 : (https://yoon735.tistory.com/entry/UnityB001%EC%84%A4%EC%B9%98-%EB%B0%8F-%EA%B8%B0%EB%B3%B8-%EC%A1%B0%EC%9E%91%EB%B2%95)

위에서 아래 순으로

  • ViewTool : Scene 화면을 움직이는 기능

  • MoveTool : 오브젝트를 움직일 수 있고, 화살표를 사용해 x, y, z축으로 이동할 수 있는 기능

  • RotateTool : 오브젝트를 회전하는 기능

  • ScaleTool : 오브젝트의 크기를 변경할 수 있는 기능

  • RectTool : 꼭짓점에 대해 그 방향에 맞게 사각형으로 스케일링 되는 기능

  • TransformTool : 움직이고, 회전하고, 스케일을 조정하고, 오브젝트를 선택하는 다양한 기능

  • Edit Bounding Volume : 선택한 객체의 크기와 형태를 쉽게 조정할 수 있는 기능

유니티 생명주기

출처 : https://itmining.tistory.com/47

  • Reset : 오브젝트를 생성 후 인스펙터 뷰에서 리셋을 눌러줄 때 실행된다. 객체의 속성을 초기 값으로 설정해 줄 때 사용한다.

  • Awake : 스크립트가 실행될 때 한번만 호출된. 모든 오브젝트가 초기화 된 후 호출되기 때문에 GameObject.Find 같은 명령문을 안전하게 사용할 수 있다. Awake 함수는 언제나 Start 함수 전에 호출되므로 초기화 순서를 정할 수 있게 한다. (Coroutine 사용 불가)

  • OnEnable : 인스펙터뷰에서 체크를 통해서 게임 오브젝트를 활성화 할 때 사용된다. 활성화 할 때마다 호출된다.

  • Start : Update 함수가 호출되기 전에 한번만 호출된다. 다른 스크립트의 모든 Awake가 모두 실행된 이후에 실행된다. 스크립트가 활성화 되어 있어야 한다.

  • FixedUpdate : 주로 물리 엔진을 사용하는 경우 일정 시간 간격으로 힘을 가할 때 사용하는 함수이다. 발생 주기가 일정하다. (Default : 0.02초)

  • Update : 프레임마다 호출되는 함수로 게임의 핵심 로직에 사용된다. 스크립트가 활성화 되있어야 사용 가능하고, 주기가 일정하지 않는다.

  • LateUpdate : 모든 Update 함수가 실행되고 나서 호출된다. 주로 카메라 이동 로직에 사용한다.

  • OnDisable : 게임 오브젝트 또는 스크립트가 비 활성화 되었을 때 호출된다. (Coroutine 사용 불가)

  • OnDestroy : 오브젝트 생존기간의 마지막 프레임이 업데이트 된 후 실행된다. (Object.Destroy 또는 씬 종료 시)

  • OnApplicationQuit : 응용프로그램 종료 전에 모든 오브젝트에서 호출된다. 에디터에서는 플레이 모드를 중지하면 나타난다.

유니티 이동방식

Transform Move

출처 : https://zagara.tistory.com/18

  • Transfrom.Position

    • 가장 기본이 되는 방식으로 오브젝트의 위치를 직접 변경해주는 방식.
    • 절대좌표는 월드좌표를 따른다.
  • Transfrom.localPosition

    • 절대좌표는 부모의 (rotation이 기울어져 있다면 기울어진) 좌표를 따른다.
  • Transfrom.Translate

    • 방식은 position += Vector3 방식과 같다.
    • 절대좌표는 스스로의 좌표를 따른다.

Rigidbody Move

출처 : https://h-study.tistory.com/303
출처 : https://dalbitdorong.tistory.com/13

  • Rigidbody.AddForce
    • 오브젝트에 힘을 추가하여주는 function
    • 오브젝트에 일정한 힘을 주어 이동시키는 것
  • rigidbody.velocity
    • GetAxis 메서드를 이용한 Velocity 수정
    • Rigidbody의 AddForce는 가해지는 힘을 누적시켜 속도를 증가시킴.

Character Controller Move

출처 : https://beatchoi.github.io/unity3d/basics/2021/07/16/CharacterController02/

  • 캐릭터 컨트롤러는 오브젝트가 위치 이동할 때 사용된다.

  • Collider를 내장하고있다.

  • 캐릭터 컨트롤러를 이용하면 Rigidbody가 없어도 장애물을 인식할 수 있다. (계단을 올라가는 예시)

  • Rigidbody를 이용했을 때는 오브젝트끼리 반작용이 있지만 컨트롤러는 없다. 통과만 못할 뿐이다.

profile
인공지능학과 학생🙇🏻‍♂️

0개의 댓글