반응형
1. Allow State Authority Override
이미 다른 클라이언트가 State Authority를 가지고 있는 오브젝트의 권한을 다른 클라이언트가 요청해서 바꿔도 되는가?" 라는 Override(덮어쓰기) 를 허용할지 말지를 결정
예시 상황
- 네트워크 오브젝트 Box가 있어.
- A 클라이언트가 이 Box의 권한(State Authority)을 갖고 있음.
- 그런데 B 클라이언트가 "나 이거 조작하고 싶어!" 하면서 권한 요청을 보냄.
Allow State Authority Override 설정 값이
- 켜져 있다면 (true)
- B 클라이언트의 요청으로 Box의 권한이 A → B로 넘어갈 수 있음.
- 꺼져 있다면 (false)
- 이미 권한 가진 A가 살아 있는 한, B는 권한을 가져갈 수 없음.
- 권한은 A가 나가거나 직접 넘겨줄 때만 바뀜.
언제 켜야 하고 꺼야 해?
상황권장 설정
| 상자가 자유롭게 누구에게나 넘어가야 하는 게임 (ex. 공 던지기) | 켜기 (true) |
| 오브젝트의 권한이 함부로 바뀌면 안 되는 게임 (ex. 특정 유저 전용 아이템) | 끄기 (false) |
나 같은 경우 나간 클라에 대한 캐릭터를 마스터 클라가 권한을 가져오고 이것저것 삭제 처리를 하기 위해 권한을 받기 위해 켜둠

2. Object.HasStateAuthority
내가 이 오브젝트를 컨트롤 할 권한을 가지고 있는가? 맞으면 true반환 (bool 반환)
3. Object.StateAuthority
이 NetworkObject를 현재 제어(상태 변경 권한)하고 있는 플레이어의 PlayerRef (PlayerRef 반환)
4. !Object.StateAuthority.IsNone
누군가가 권한을 가지고 있으면 true (bool반환) bool Object.IsValid 네트워크에 아직 존재하고, Despawn되지 않았다면 true 이고 이미 despawn 되었거나 오류로 제거된 상태라면 false
반응형
