Cocos Creator

프리팹 안에 프리팹

밀하우스 마나스톰 2022. 4. 13. 17:25

코코스 크리에이터에서도 프리팹을 씬에 배치했을 때

 

유니티의 Select, Revert, Apply에 대응하는 Select, Go Back, Save 버튼이 있다.

 

  • Select : assets 폴더에서 프리팹의 위치로 이동
  • Go Back : 씬에 배치된 프리팹의 내용을 원본 프리팹의의 내용으로 덮어쓰기
  • Save : 씬에 배치된 프리팹의 내용을 원본 프리팹에 저장

 

하지만 A 프리팹 안에 B 프리팹을 배치한 구조에서는 B 프리팹의 Go Back, Save 기능이 사라진다.

 

B 프리팹을 수정하면 A 프리팹을 열어서 기존 B 프리팹을 삭제하고 새 B 프리팹을 다시 배치해야 된다.

 

이러한 불편함은 왼쪽의 파란색 클립 모양을 눌러 해결할 수 있다.

 

 

이걸 누르면 해당 B 프리팹은 auto-syncable 프리팹이 되고, 색깔도 녹색이 된다.

 

이렇게 설정을 하면 외부에서 B 프리팹을 수정해도 A 프리팹에 자동으로 수정 내용이 적용된다.

 

 

문제는 auto-syncable 프리팹 내의 노드를 스크립트의 property로 캐싱하면 에러가 발생한다.

 

"In the editor, the component outside the auto-syncable prefab can only reference to that prefab's root node itself, but not its components or children."

 

 

오류 내용에서 설명하듯, auto-syncable 내의 자식 노드는 프로퍼티로 참조할 수 없지만 root 노드는 참조할 수 있다.

 

이 경우에는 root 노드를 캐싱한 뒤에, 그 안의 자식 노드는 스크립트에서 코드로 접근해야 한다.

 

한 프리팹 내에서 부분적으로 auto-syncable 설정하는 방법은 없다.