공통 책임 분리
모든 자식이 반드시 가져야 하는 초기화, 상태, 이벤트만 부모에 둔다.
예외가 많은 로직은 컴포넌트가 나을 수 있다상속을 쓰면 공통 기능을 모을 수 있지만, 자식 블루프린트가 부모 이벤트를 덮어쓰고 Parent Call을 빼먹으면 초기화와 로직이 조용히 사라진다. Construction Script, component 상속, 변수 기본값 변경이 어디에서 적용되는지도 함께 봐야 한다.
모든 자식이 반드시 가져야 하는 초기화, 상태, 이벤트만 부모에 둔다.
예외가 많은 로직은 컴포넌트가 나을 수 있다BeginPlay, Tick, custom event를 자식에서 덮을 때 Parent Call이 필요한지 결정한다.
부모 초기화를 잃으면 증상이 늦게 나타난다부모 component를 자식에서 수정할 수 있는 범위와 삭제 가능 여부를 확인한다.
루트 component 변경은 충돌과 이동에 영향을 준다에디터 배치 시점과 플레이 시작 시점의 실행 차이를 고려한다.
랜덤 생성 로직은 에디터에서도 반복될 수 있다부모 변수 기본값 변경이 자식 override에 가려지지 않는지 Class Defaults에서 본다.
자식이 저장한 값은 부모 변경을 따라가지 않을 수 있다