📝 배운 것들
🏷️ PhotonNetwork : AmOwner, IsMine 차이점
PhotonNetwork에서 AmOwner
와 IsMine
은 모두 PhotonView를 소유하고 있는지 확인하는 데 사용되는 속성이지만, 약간의 차이가 있습니다.
-
PhotonView.AmOwner:
- 현재 클라이언트가 이 PhotonView의 "소유자"인지 확인하는 속성입니다.
- PhotonView의 소유자는 이 PhotonView를 생성한 클라이언트입니다. 소유자가 생성되었거나 소유권이 이전되었을 때 자동으로 설정됩니다.
- 즉,
AmOwner
는 현재 이 PhotonView의 소유자가 맞는지를 나타내므로, 이 PhotonView의 소유권을 가진 클라이언트라면 true
를 반환합니다.
-
PhotonView.IsMine:
- 현재 로컬 클라이언트가 이 PhotonView를 제어할 수 있는지 확인하는 속성입니다.
IsMine
은 PhotonView가 로컬 플레이어에 속한 경우 true
를 반환합니다. 주로 본인이 생성한 PhotonView 객체에 대해 제어 권한이 있음을 확인하는 데 사용됩니다.
- 다른 클라이언트가 이 PhotonView를 소유하고 있는 경우
false
를 반환합니다.
요약하자면:
AmOwner
는 PhotonView의 소유자가 현재 클라이언트인지를 나타내고,
IsMine
은 현재 클라이언트가 PhotonView에 대한 제어 권한을 가지고 있는지를 확인하는 데 사용됩니다.
👾 나만무
플레이 중간에 떨어지는 버그
단서
- 포톤 네트워크에서 자기 자신의 캐릭터(IsWriting, IsMine을 통해 여부 확인)가 움직이면 다른 4명에게 해당 움직임을 보내고, 다른 사람의 캐릭터가 움직이는 건 (마스터 클라이언트가 아니라) 포톤 서버를 통해서 받도록 로직을 짜놓음
- 떨어지기 시작하면 해당 캐릭터의 raycast가 맵의 콜라이더를 인식하지 못한다
- 떨어지던 중 변신 타임라인이 실행되면 떨어지는게 잠시 멈췄다가 곧 다시 떨어짐
- 마스터 클라이언트가 게임을 끄면 떨어지는 걸 멈춘다. 마스터 클라가 떨어졌다면 마스터가 나가도 떨어지던 사람들은 멈추지 않는다.
- 떨어지고 나서 죽으면 관전 모드 활성화 안됨. 자기 자신만 죽은게 반영 안되고 다른 사람한테는 죽은거 반영.
- 떨어질 때 가끔 아래에 예비용으로 깔아놓은 plane에 착지할 때가 있는데 로그를 찍어보면 raycast가 해당 plane의 collider를 감지하지 못함.
- 포톤뷰를 확인해보면 마스터 클라이언트가 IsMine을 뺏어가진 않음
프로젝트 영상이 따로 있나용