[Unity]프리펩 사용, 장면 로드, 마우스 위치 값 반환, 인스턴스 생성(with 생성위치, 회전값), UI 그려지는 방식(Canvas의 Render Mode), Rigidbody의 Body Type

ggm-_-·2024년 9월 9일
0

TIL (Tody I Learn)

목록 보기
1/27
post-custom-banner

TIL 24.09.09(월)
오늘 배운 내용 중 중요하다고 생각되는 내용들에 대해 더 자세히 공부해보았습니다. 틀린 내용이 있으면 언제든지 댓글로 알려주시면 감사하겠습니다.

TIL

1. 프리펩(Prefab) 이용하기

유니티에서의 Prefab은 여러번 사용할 Object의 원본을 저장해서 원본과 똑같은 복제품을 언제든지 쉽게 꺼낼 수 있도록 해주는 역할을 한다.
유니티에서는 언제든지 Object를 Prefab화 시켜서 편하게 다시 사용할 수 있다.

  • Prefab 사용방법
    1. Prefab화할 Object를 드래그해서 Project창에 만들어 놓은 Prefabs 폴더에 넣는다.
    2. Prefabs 폴더에 있는 Object를 드래그해서 Hierarchy창에서 사용할 곳에 넣는다.
    or Script와 연결해서 인스턴스를 생성한다.

2. 장면 로드하기

📖 SceneManager.LoadScene 사용하기

SceneManager.LoadScene("SceneName")를 사용해 원하는 Scene으로 로드할 수 있다.

SceneManager.LoadScene("MainScene"); //MainScene으로 이동

3. 마우스 위치 값 반환하기

📖 Camera.main.ScreenToWorldPoint(Input.mousePosition) 사용하기

Camera.main.ScreenToWorldPoint(Input.mousePosition)를 사용하면 마우스의 위치값을 Vector형식으로 반환해준다.
마우스 위치를 따라 움직이는 Object를 생성하는데 자주 사용된다.

//마우스 위치를 Vector2 형식의 mousePos변수에 할당
Vector2 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);

4. 인스턴트 생성하기 with 생성위치, 회전값

📖 Instantiate 사용하기

Instantiate(object, new Vector2(x, y), Quaternion.identity)를 사용해서 인스턴스를 생성할 수 있다.
인스턴스 생성을 원하는 object를 (x, y)위치에 회전값 없이(Quaternion.identity) 생성한다는 뜻이다. 두 번째, 세 번째 인자는 순서대로 오브젝트의 위치(Vector형식)와 회전값을 받는다. Quaternion.identity는 회전값이 없다는 뜻이다.
인스턴스 생성만 원한다면 Instantiate(object)로도 사용가능하다.


5. UI의 용도에 따른 특성을 설정하는 Canvas의 Render Mode

📖 Canvas의 Render Mode 사용하기

Canvas의 Render Mode는 Canvas가 화면에 그려지는 방식을 정하는 기준이다. Canvas의 Inspector창의 Canvas에 있는 Render Mode에는 3가지 종류가 있다.

  1. Screen Space - Overlay
  • 캔버스가 어디에 있든 화면 바로 아래에 캔버스가 그려진다. 캔버스와 카메라가 어디있든 화면상의 고정된 위치에 표시된다.
  1. Screen Space - Camera
  • 캔버스가 특정 카메라를 기준으로 그려진다. Object의 뒤에 UI가 그려질 수 있다.
  1. World Space
  • 캔버스가 Object와 동일한 방식으로 월드에 위치한다. Object의 위치에 따라다니는 UI를 그릴 수 있다(ex.체력바)

6. 물리엔진 적용 특성인 Rigidbody의 Body Type

📖 Rigidbody의 Body Type 사용하기

Rigidbody는 기본적으로 강체를 나타내므로 충돌 반응을 일으킨다. Body Type에 따라 충돌로 인한 움직임이 생기지 않기도 하지만, 충돌에 따른 OnCollision은 생성된다. 반응이 필요한 Object의 용도에 따라 Rigidbody의 Body Type을 잘 조절하자.

Rigidbody의 Body Type에는 3가지가 있다.

  1. Dynamic
  • 물리엔진의 영향을 받는다. (중력, 충돌, 공기저항 등등)
  1. Kinematic
  • 물리엔진의 영향을 받지 않지만, 움직임이 가능하다. 움직임은 Script로 제어한다.
  1. Static
  • 물리엔진의 영향을 받지 않고, 움직임도 없다.

내가 쓸 Object의 목적에 따라 Rigidbody의 Body Type을 정해주면 될 것이다.
ex) 게임의 주인공 > Dynamic
ex) 모든 것을 뚫고 지나갈 수 있는 레일건으로 쏜 투사체 > Kinematic
ex) 바위 > Static //Kinematic은 약간 움직이는 바위라고 생각해도 된다.

profile
미숙한 초보 게임 개발자
post-custom-banner

0개의 댓글