Ich arbeite in einem Auto-Spiel mit Multiplayer. Alles funktioniert gut, Master und Kunden sind gut mit dem Zimmer verbunden. (Ich habe Marco Polo Tutorial verwendet) Das Problem ist, wenn ich andere Autos auf dem Bildschirm bewegen sehen, aktualisiert die Position durch Teleportieren der Autos. Erscheint und verschwindet die ganze Zeit.Photon Unity3d: OnPhotonSerializeView() funktioniert nicht
Teil meines Code:
PhotonNetwork.automaticallySyncScene = false;
public class CNPlayerManager : Photon.MonoBehaviour
{
...
void FixedUpdate()
{
if (photonView.isMine)
{
//it works fine
}
else
{
transform.position= Vector3.Lerp(transform.position, this.correctPosition, Time.deltaTime * 5);
transform.rotation= Quaternion.Lerp(transform.rotation, this.correctRotation, Time.deltaTime * 5);
}
}
public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
{
if (stream.isWriting)
{
stream.SendNext(transform.position);
stream.SendNext(transform.rotation);
}
else
{
this.correctPosition = (Vector3)stream.ReceiveNext(); //Line 100
this.correctRotation = (Quaternion)stream.ReceiveNext(); //Line 101
}
}
Mein PhotonView in meinem Auto Fertig ist wie folgt: aber in meinem Photon Version ich mehr Möglichkeiten habe. In Owner habe ich "zur Laufzeit eingestellt" und "Fixed". Und in "Beobachtete Komponenten" habe ich 2 Komponenten, mein Auto-Prefab und das Skript CNPlayerManager.
Als ich mit 2 Autos, im ersten Auto spielen manchmal ich diese Fehlermeldung erhalten: „IndexOutOfRangeException. Array-Index außerhalb des zulässigen Bereichs PhotonStream.ReceiveNext() ...“ In der Zeile 100. Im zweiten Auto Ich bekomme das Gleiche.
Könnten Sie mir bitte helfen?