공부/유니티

유니티 공부 정리

Excidus 2023. 4. 9. 13:43

1. 연속적인 힘

: 자동차의 엑셀을 밟아서 가속을 넣듯이 가속을 추가해주는 방식입니다.

: 이미 굴러가고 있는 중에 사용하기 적합합니다.

: 무게를 적용하려면 ForceMode.Force

: 무게를 무시하려면 ForceMode.Acceleration

2. 순간적인 힘

: 마치 뒤에서 누가 밀듯이 순간적으로 속도가 붙여주는 방식입니다.

: 정지 상태서 이동을 시작하려 할 때 적합합니다.

: 무게를 적용하려면 ForceMode.Impulse

: 무게를 무시하려면 ForceMode.VelocityChange

edit projectsetting 에서 physics에서 물리적인 값 변경 가능, 중력

< 이벤트 함수 >

이벤트 함수란, 호출되지 않아도 만들어져만 있다면 자동으로 실행되는 함수로, 호출되는 시점이 정해져 있는 함수들이다.

1. Reset() : 에디터에서 처음 연결될 때, 혹은 Reset 명령을 실행했을 때 호출

2. Awake() : Start 함수 이전, 혹은 활성화 직후에 호출되는 함수

3. OnEnable / OnDisable : 활성화 / 비 활성화할 때마다 호출

OnEnable의 경우 Start 이전, Awake 후에 호출되는 함수이다.

순서) Awake() -> OnEnable() -> Start()

4. OnCollisionXXX 와 OnTriggerXXX 의 차이는 물리적 연산을 하는 지 여부에 있다.

OnColiision의 경우 물리적 연산이 작용된다.

OnCollisionStay의 경우 충돌 중 계속해서 호출되는데, 일정 시간 이후에 호출이 되지 않는 경우가 있다.

이는 Rigidbody 컴포넌트를 지닌 오브젝트가 일정시간 움직임이 없다면 sleep 모드에 들어가기 때문이다.

sleep mode를 원하지 않는다면 Rigidbody의 Sleeping Mode를 Never Sleep으로 바꾸어주면 된다.

  1. OnMouseXXX
  • Collider가 있어야 호출이 가능하며 터치도 가능하다.

OnMouseDown : 클릭하는 순간 호출

OnMouseUp : 눌렀다 떼는 순간 호출

OnMouseDrag : 누르는 중 호출

6. FixedUpdate()

Update()가 매 프레임마다 실행되는 함수라면, FixedUpdate는 일정 '시간'마다 호출되는 함수이다.

기기의 성능에 따라 프레임이 달라지므로, 정확한 시간을 기준으로 함수를 실행시키려면 FixedUpdate를 사용하면 된다.

기본적으로 0.02초로 설정되어 있는데, Edit -> Project Settings -> Time -> Fixed Timestep 값 변경 을 통해 설정할 수 있다.

7. LateUpdate()

매 프레임마다 실행된다는 점에서 Update()와 같지만, Update()가 실행되고 나서 호출되는 함수이다.

오브젝트들이 이동한 뒤에 카메라가 뒤따라 이동하는 경우, 즉 카메라의 이동에 주로 사용되는 함수이다.

8. OnBecameVisible() / OnBecameInvisible()

오브젝트가 카메라에 나오거나, 나오지 않을 경우 실행되는 함수

이 함수가 내가 원하는대로 작동이 되지 않을 수 있다. 분명 Game 뷰에는 없는데도 OnBecameVisible()이 호출되는 경우가 있는데,

이는 Scene 뷰 때문일 수 있다. Play할 때 Scene을 카메라에 맞춰 축소시키거나 Scene 뷰를 끄고 Game 뷰로만

확인하면 된다.