이전시간에는 포톤을 사용해서 멀티 플레이를 위한 준비에 대하여 알아봤다. 그러면 이제 준비는 끝났으니 사용하기 위한 방법을 알아보자.
Photon 네트워크 상에서 이 오브젝트가 누구의 것인지를 판단하고, 동기화할 컴포넌트를 지정할 수 있도록 해주는 컴포넌트입니다. 쉽게 말해, "이 오브젝트는 네트워크에서 관리되며, 누가 조종하고, 어떤 데이터를 동기화할지 알려주는 식별자 역할"입니다.
ViewID : Photon 내부에서 이 오브젝트를 유일하게 식별하는 ID입니다.
IsMine : 이 오브젝트가 로컬 플레이어의 것인지를 나타냅니다.
Owner / OwnerActorNr : 현재 이 오브젝트의 소유자입니다 (Photon의 Player).
Observed Components : 동기화할 컴포넌트를 지정합니다. 예: Transform, Animator 등
Synchronization 동기화 방식 : Reliable, Unreliable 등
[RequireComponent(typeof(PhotonView))]
public class SimpleMovement : MonoBehaviour
{
public float moveSpeed = 5f;
private PhotonView _view;
private void Awake()
{
_view = GetComponent<PhotonView>();
}
private void Update()
{
if (_view.IsMine)
{
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
transform.Translate(new Vector3(h, v, 0) * moveSpeed * Time.deltaTime);
}
}
}
네트워크를 통해 다른 플레이어에게 내 변수 값을 보내고, 상대방의 변수 값을 받는 것입니다.
자동 동기화 (Observed Components) : Photon이 제공하는 컴포넌트에서 위치, 회전 등 자동 처리
수동 동기화 (OnPhotonSerializeView) : 내가 직접 값을 보내고 받는 방식. 체력, 점수, 커스텀 데이터 등