Witam, zacząłem tworzyć system samochodów do swojej gry multiplayer i wszystko ładnie działa dopóki gracz nie wsiądzie do pojazdu i nie zacznie jechać. Jak host wejdzie to u klienta wszystko ładnie działa, ale jak klient wsiądzie to samochód przenosi na pozycje 0, 0, 0. I klient może jechać, ale host nadal widzi pojazd na pozycji 0, 0, 0. Na objekcie mam skrypt PhotonView i jako obserwowany skrypt ten, w którym mam serializacje. Mój skrypt wygląda tak:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class NetworkCarPosition : Photon.MonoBehaviour {
public Vector3 defaultPosition;
public Quaternion defaultRotation;
void Start ()
{
}
void Update ()
{
if (GetComponent<CarManager>().passenger != null)
{
if (!GetComponent<CarManager>().passenger.GetComponent<PhotonView>().isMine)
{
transform.position = Vector3.Lerp(transform.position, defaultPosition, Time.deltaTime * 10f);
transform.rotation = Quaternion.Slerp(transform.rotation, defaultRotation, Time.deltaTime * 10f);
}
}
}
void OnPhotonSerializeView (PhotonStream stream, PhotonMessageInfo info)
{
if (stream.isWriting)
{
stream.SendNext(transform.position);
stream.SendNext(transform.rotation);
} else
{
defaultPosition = (Vector3)stream.ReceiveNext();
defaultRotation = (Quaternion)stream.ReceiveNext();
}
}
}