상세 해설 - 엔티티 소유권

엔티티(Bolt 엔티티 컴포넌트가 붙여진 게임 오브젝트)들의 소유권은 두 개의 분리된 카테고리로 나눌 수 있습니다:소유자와 컨트롤러 입니다. 상호 배타적인 것은 아니며 다음의 하나가 될 수 있습니다:

  • 소유자
  • 컨트롤러
  • 소유자와 컨트롤러
  • 아무것도 아님

소유자

소유자가 되는 것은 변경할 수 없는 속성으로 BoltNetwork.Instantiate 호출을 발행한 피어에게 지정됩니다. 이 피어가 BoltEntity.isOwner 를 true로 리턴해주는 유일한 것 입니다. 엔티티의 소유권은 아무에게도 양도될 수 없습니다. 엔티티의 소유자가 절대적으로 모든 것을 제어합니다(상태, 트랜스폼등).

Back To Top

컨트롤러

엔티티의 컨트롤러가 되는 것은 지정, 역할을 없애고 다른 피어들에게 양도할 수 있습니다. 소유자만이 엔티티의 제어권을 지정할 수 있고 없앨 수 있습니다.

소유자 BoltEntity.AssignControl(otherConnection); 를 호출하여 다른 피어에게 엔티티의 제어를 지정할 수 있고 다른 피어에게 연결해서 전달할 수 있습니다. 제어권은 BoltEntity.RevokeControl() 를 호출하여 없앨 수 있습니다. 이 피어는 엔티티의 컨트롤러 로 고려될 수 있습니다.

소유자는 엔티티 자체를 제어할 수도 있습니다. 그러면 소유자컨트롤러 모두로 간주될 것 입니다. 소유자로 제어권을 받는 것은 BoltEntity.TakeControl 를 호출하여 수행하며, 제어권을 없애는 것은 BoltEntity.ReleaseControl 으로 수행합니다.

컨트롤러 만이 BoltEntity.hasControl 속성을 true로 리턴해주게 됩니다.

Back To Top

아무것도 아님

엔티티의 소유자 또는 컨트롤러가 아니면 BoltEntity.isOwnerBoltEntity.hasControl 모두 false를 리턴할 것 입니다. 일반적으로 엔티티에 대해서 아무런 것도 하지 못하며 게임 내에서 아무런 제어를 할 수가 없습니다(예를 들면 다른 플레이어의 아바타와 같이).

기술문서 TOP으로 돌아가기