괴혼의 핵심 매커니즘인 공을 굴려서 오브젝트를 붙이는 것까지의 클론 튜토리얼을 따라해보았다.
진행하면서 배운 내용:
- Update(): Update 메소드는 매 프레임마다 한 번씩 호출한다. 즉, 그 호출 주기는 프레임 속도에 따라 변한다. 컴퓨터 성능이 좋거나 부하가 적으면 초당 프레임 수(FPS)가 높아져서 Update 함수의 호출 횟수도 많아지며, 반대로 성능이 나쁘거나 부하가 크면 FPS가 낮아져서 Update 함수의 호출 횟수도 줄어든다. 일반적으로 입력 처리, 카메라 이동, AI 계산 등과 같은 비물리적인 연산을 처리할 때 사용한다.
- FixedUpdate(): FixedUpdate 메소드는 고정된 시간 간격마다 호출된다. 기본적으로 이 간격은 0.02초(즉, 초당 50번)로 설정되어 있으며, Unity 설정에서 변경할 수 있다. FixedUpdate는 Unity의 물리 엔진(PhysX)과 함께 동작하기 때문에 Rigidbody를 이용한 물리 연산을 처리하는 코드를 작성할 때 주로 사용한다. 예를 들어 Rigidbody에 힘을 가하는 것처럼 정확한 타이밍이 필요한 경우 FixedUpdate 내에서 처리해야 한다.
⇒ 따라서 요약하면, Update()와 FixedUpdate() 모두 게임 로직을 업데이트하는 용도로 사용되지만 그들의 실행 타이밍과 주기가 다르며 그에 따라 적합한 용도가 다르다.
- OnCollisionEnter란?: OnCollisionEnter, OnCollisionStay, OnCollisionExit 등의 메소드들은 물리적인 충돌이 발생했을 때 호출되는 함수다. 이들 함수는 두 개체가 서로 물리적으로 접촉하면서 힘을 주고 받을 때 사용된다. 각각의 함수는 다음과 같은 상황에서 호출된다:OnCollisionStay: 두 개체가 계속해서 접촉하고 있는 동안 매 프레임마다 호출된다
- OnCollisionExit: 두 개체가 서로의 접촉에서 벗어나는 순간에 한 번 호출된다.
- OnCollisionEnter: 두 개체가 처음 접촉하는 순간에 한 번 호출된다.
- OnTrigger란?: OnTriggerEnter, OnTriggerStay, OnTriggerExit 등의 메소드들은 Collider 컴포넌트가 Trigger 모드로 설정되어 있을 때, 다른 Collider와 겹칠 때 호출되는 함수다. 이들 함수는 실제 물리적인 힘이 작용하지 않지만, 특정 영역에 들어오거나 나갔을 때를 감지하기 위해 사용된다. 각각의 함수는 다음과 같은 상황에서 호출된다: OnTriggerEnter: Collider가 Trigger 영역에 처음 들어온 순간에 한 번 호출된다.OnTriggerExit: Collider가 Trigger 영역에서 나온 순간에 한 번 호출된다.
- OnTriggerStay: Collider가 Trigger 영역 안에 계속 있으면 매 프레임마다 호출된다
- Ontrigger와 OnCollision과의 차이: 차이점은 OnCollision 메소드들은 실제 물리적인 충돌(즉, 힘이 작용하는)를 처리하고, OnTrigger 메소드들은 실질적인 충돌 없이 어떠한 영역으로의 진입 및 탈출 등을 감지하는데 사용된다는 것이다. OnTrigger를 활용하면 캐릭터가 특정 영역 안으로 들어왔다 나갔다 하는 것처럼 '충돌'이 아닌 '겹침' 현상을 처리할 수 있다.
더 추가해야할 요소들
- 붙일 수록 구의 크기가 더 사이즈가 커지게
- 지금 사이즈보다 큰 물체에 부딪혔을 때 가장 최근에 닿은 물체를 다시 뱉기
- 벽에 부딪혔을 때 가장 최근에 닿은 물체를 다시 뱉기
- 대시 기능
- 하늘에 떠서 아래를 바라볼수 있는 기능
브레이크 기능효과음
후기
괴혼의 핵심 매커니즘인 굴려서 붙이기까지 진행해보았다. 생각보다 코드가 단순해서 신기했고, 이러한 아이디어에 좀더 살을 붙여서 게임을 만드는 것이구나하고 배울 수 있었다. 게임을 만들때 핵심 매커니즘이 중요하다는 생각이 다시금 들었다.
'공부 > 유니티' 카테고리의 다른 글
유니티 공부 한 것들!! (0) | 2023.08.11 |
---|---|
유니티 공부 정리 (0) | 2023.04.09 |
유니티 방울 서바이버 공부 (0) | 2023.02.20 |
Flappy BangUlEe 플래피 방울이 (0) | 2022.12.30 |
BangUlEe Dinogame (0) | 2022.12.30 |