지난 3-4 년 동안 몇 가지 취미 프로젝트를 진행하고 있습니다. 간단한 2D 및 3D 게임. 그러나 최근에 더 큰 프로젝트를 시작했습니다. 지난 몇 달 동안 나는 모든 게임 객체의 기본이 될 수있는 게임 객체 클래스를 디자인하려고 노력했습니다. 따라서 많은 시험 및 다이 테스트를 거친 후 Google로 전환하여 GDC PDF 및 PowerPoint를 빠르게 가리 켰습니다. 이제 컴포넌트 기반 게임 오브젝트를 파악하려고합니다.
엔진이 게임 오브젝트를 만든 다음 건강, 물리, 네트워킹 및 사용자가하는 모든 것을 처리하는 다른 구성 요소를 연결한다는 것을 이해합니다. 그러나 내가 이해하지 못하는 것은 Y가 객체의 상태를 변경했는지 구성 요소 X가 어떻게 알 수 있는지입니다. 건강이 HealthComponent ..에 의해 제어되기 때문에 PhysicsComponent가 플레이어의 생존 여부를 어떻게 알 수 있습니까? 그리고 HealthComponent는 어떻게 "플레이어 사망 애니메이션"을 재생합니까?
나는 이것이 다음과 같은 인상을 받았다 (HealthComponent에서) :
if(Health < 0) {
AnimationComponent.PlayAnimation("played-died-animation")
}
그러나 HealthComponent가 연결된 게임 오브젝트에 AnimationComponent가 연결되어 있음을 어떻게 알 수 있습니까? 내가 볼 수있는 유일한 해결책은
AnimationComponent가 연결되어 있는지 확인하십시오 (컴포넌트 코드 내부 또는 엔진 쪽).
구성 요소에 다른 구성 요소가 필요하지만 전체 구성 요소 디자인과 싸우는 것 같습니다.
HealthWithAnimationComponent, HealthNoAnimationComponent, soo on과 같이 쓰고 전체 컴포넌트 디자인 아이디어와 싸우는 것처럼 보입니다.