02-01 이동 발판 (Platform_00_Moving) 질문
안녕하세요
컴포넌트 관리를 위해서 오브젝트에 자식 오브젝트를 두어 여러 컴포넌트를 나눠서 배치할 때 어떤 기준으로 나뉘는건가요?
Platform_00_Moving에 있던 Rigidbody2D를 Platform에 배치해보니까 OnCollisionEnter2D의 코드가 작동하지 않더라구요
回答 3
0
OnTrigger, OnCollision 메소드는 Rigidbody2D를 가지고 있는 게임오브젝트에서 작동합니다.
즉, Platform_00_Moving 오브젝트에 Rigidbody2D가 있을 때는 Platform_00_Moving 오브젝트에 있는 다른 컴포넌트에서 private void OnCollisionEnter2D() { .. } 가 호출되고, Platform 오브젝트에 Rigidbody2D가 있을 때는 Platform 오브젝트에 있는 컴포넌트에서 OnCollisionEnter2D()가 호출됩니다.
지금처럼 자식오브젝트들이 Rigidbody2D를 가지고 있지 않고, Collider2D만 가지고 있으면 자식들이 가지고 있는 Collider2D에 충돌이 발생하면 부모(Platform_00_Moving)에 있는 Rigidbody2D가 작동합니다. 단, 위에 작성한 것과 같이 Rigidbody2D가 작동할 때 OnTrigger, OnCollision 메소드를 호출하려면 Rigidbody2D와 동일한 오브젝트에 스크립트를 컴포넌트로 넣어줘야합니다.
오브젝트를 나눠서 관리하는 기준은 렌더링, 충돌 등과 같이 사용되는 곳에 따라 기준을 정해서 나눕니다.
그 기준이 정해져있진 않고, 회사, 프로젝트에 따라 다르게 설정될 수 있습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 김용준님께서 오브젝트와 자식 오브젝트 간의 컴포넌트 관리 기준에 대해 질문 주셨네요.
유니티에서 오브젝트의 구조를 설정할 때 컴포넌트를 어떻게 나눌지 결정하는 것은 주로 다음과 같은 기준에 의해 이루어집니다:
기능 분리: 서로 다른 기능을 수행하는 컴포넌트들을 분리하여 코드의 모듈성을 높입니다. 예를 들어, 물리 계산에 필요한
Rigidbody2D와Collider2D, UI에 관련된 컴포넌트 등을 각각의 오브젝트나 자식 오브젝트에 배치할 수 있습니다.재사용성: 특정 컴포넌트를 여러 오브젝트에서 반복적으로 사용할 때, 해당 컴포넌트를 별도의 오브젝트로 만들어 자식-부모 관계를 통해 재사용 가능합니다.
논리적 구조: 게임 오브젝트의 논리적 구성이 이해하기 쉽도록 설계합니다. 예를 들어, 하나의 오브젝트가 여러 가지 복합적인 역할을 할 경우, 각 역할을 자식 오브젝트로 분리할 수 있습니다.
김용준님께서 언급하신 Rigidbody2D와 OnCollisionEnter2D의 작동 문제는 Rigidbody2D가 배치된 오브젝트와 스크립트가 붙어 있는 오브젝트가 다를 때, 이벤트가 예상대로 작동하지 않을 수 있습니다. 충돌 이벤트인 OnCollisionEnter2D는 보통 Rigidbody2D가 있는 오브젝트에 부착된 스크립트에서 작동할 것으로 기대되기 때문에, 두 컴포넌트가 같은 오브젝트에 존재하는지 확인해보세요.
이와 유사한 예시로 유니티에서 클래스와 컴포넌트 배치 방법에 대한 질문을 참고하면 도움이 될 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
OAuth방식 강의 문의
0
7
0
Rigidbody2D의 linearVelocity 제어
0
176
3
강의 01-02에서 프리팹 렌더링 오류
0
139
2
02-05 레벨시작(마지막 강의)에서 SelectLevelController오브젝트의 SelectLevelController 컴포넌트조작
0
115
1
간혹 벽의 콜라이더를 뚫고 빠지는 경우
0
167
1
02-07 별아이템을 bool[] 로 한 이유가 궁금해요.
0
167
1
02-05 플레이어 원거리공격. 혹시 저처럼 공이 빨리 사라지는 경우
0
82
1
02-02 플레이어 체력에서 if(current >1)을 if(current > 0) 로...
0
100
1
03-01 Hidden Tilmap에서
0
110
2
02-04 점프발판 Animation 뷰에서 이미지 나오게 하는 방법이 궁금해요.
0
133
1
02-03 추락하는 발판에서 isKinematic = true;로 하면, 중력영향 안받으니
0
184
2
02-03 추락하는 발판의 Mathf.PingPong 메소드 설명문 수정해야 겠어요.
0
187
2
02-02 플레이어와 발판: PlatformBase 상속클래스 어태치문제
0
158
2
01-04. 부서지는 타일에서 첫번째타일
0
164
3
01-03 부서지지 않고 튀는 타일 충돌처리 부분 코드 바뀌어야 될 것 같습니다.
0
147
2
03-04 배경화면 스크롤에서 MainCamera의 depth를 수정해야 되지 않나요?
0
94
2
jumpBuffer에서 if(IsGrounded) 설정이 있어야 될 것 같아서 질문드립니다.
0
179
3
플렛포머 게임 3 - 1 강의 질문
0
189
1
Platformer Game 강의 관련 질문
0
254
2
플레이어 캐릭터에 Renderer를 추가하는 이유가 있을까요?
0
271
1
선생님 이 강의를 토대로 개발하고 있는데
0
211
1
통과하는 발판(OneWay)을 움직이는 발판을 적용할 방법은 없나요
0
276
2
적에게 닿은상태로 있을때
0
234
1
강의자료 다운로드가 딱 53~54MB 정도에서 멈춥니다.
0
324
2

