[내일배움캠프 Unity 9기]

04/29 TIL - 유니티 입문 강의 수강

kyvv 2025. 4. 29. 20:01

텍스트 콘솔 rpg가 끝나고 새로운 주차가 되며 유니티를 본격적으로 배우기 시작한다.
tappybird라는 새를 터치해서 장애물을 피해 계속 날아가는 형식의 게임을 제작하면서 이전에 배웠던 내용을 복습하는 시간을 가졌다.
그 중에서 놓쳤던 부분이나 새롭게 알게된 것, 잊고 있었던 부분들에 대해서 정리해보자.

- 충돌 처리를 하는 collider 2d에는 box 외에도 circle, polygon 등의 스타일이 있다.

box는 네모, circle은 원, polygon은 지정한 스프라이트(오브젝트)의 모양대로 충돌 처리를 하는 영역을 추가해준다.

 

- rigidbody의 속성에는 dynamic, kinematic이 있다.

dynamic은 일반적인 물리 연산을 진행한다, 중력, 질량 등의 실제 물리 법칙을 적용하는 반면, kinematic은 단순 충돌 연산만 진행하며 물리 연산이 없다 -> 충돌 여부만 확인할 수 있다?

dynamic 한정된 질량과 드래그 등 모든 프로퍼티를 사용할 수 있으며 중력과 힘에 영향을 받습니다.
kinematic Dynamic 리지드바디 2D는 중력과 힘의 영향을 받지만 Kinematic 리지드바디 2D는 영향을 받지 않습니다.
이러한 이유로 빠르고 
Dynamic 리지드바디 2D보다 시스템 리소스가 덜 필요합니다.
static  시뮬레이션 상태에서 전혀 움직이지 않도록 디자인되었습니다.
다른 오브젝트와 충돌하는 경우 
Static 리지드바디 2D는 (질량이 무한하여) 움직일 수 없는 오브젝트처럼 작동합니다
또한 리소스를 가장 덜 사용하는 바디 타입입니다

리지드바디 2D를 Static 으로 표시하는 데는 두 가지 방법이 있습니다.

  1. Collider 2D 컴포넌트가 포함된 게임 오브젝트의 경우 Rigidbody 2D 컴포넌트가 전혀 포함되지 않도록 합니다. 이러한 콜라이더 2D는 모두 내부적으로 숨겨진 단일 Static Rigidbody 2D 컴포넌트에 연결된 것으로 간주됩니다.
  2. 게임 오브젝트에 리지드바디 2D가 포함되고 해당 리지드바디 2D를 Static 으로 설정합니다.

--> collider만 붙이면 벽과 같은 오브젝트를 rigidbody 컴포넌트 없이도 동일한 효과를 낼 수 있다는 의미이다.

 

Ontrigger와 Oncollision의 매개변수의  차이점(collision과 collider)

collision은 자세한 충돌 정보(충돌한 지점, 상대 속도, 적용된 힘 등등)

collider는 충돌한 오브젝트(혹은 물체)의 정보만 전달

 

- Vector3 형식의 position은 직접 x,y,z값을 접근할 수는 없고 (position.x 처럼) 따로 vector3 변수에 담아서 값을 수정한 뒤에 변수를 대입해서 변경하는 방식으로 사용한다

이는 position인 Vector3라는 값 타입의 구조체이고 c#에서는 값 타입의 속성 반환값을 수정하지 못하도록 되어있다.
위의 예시로 해석하자면 구조체를 반환받으면 이는 값의 복사본이고, 이 복사본을 수정하는 행위를 막았다는 의미

transform.position --> 구조체 값 / transform.position.x = 5f --> 복사본을 수정하려는 행위

 

jdk, ndk를 찾지 못함

모듈 설치 시에 누락된 것으로 보이는데 이 경우 호환되는 버전을 경로에 설치해주던가 아니면 모듈을 새로 설치하는 것이 빠르다..