48 lines
1.1 KiB
C#
48 lines
1.1 KiB
C#
using Photon;
|
|
using UnityEngine;
|
|
|
|
[RequireComponent(typeof(PhotonView))]
|
|
public class CubeLerp : Photon.MonoBehaviour, IPunObservable
|
|
{
|
|
private Vector3 latestCorrectPos;
|
|
|
|
private Vector3 onUpdatePos;
|
|
|
|
private float fraction;
|
|
|
|
public void Start()
|
|
{
|
|
latestCorrectPos = base.transform.position;
|
|
onUpdatePos = base.transform.position;
|
|
}
|
|
|
|
public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
|
|
{
|
|
if (stream.isWriting)
|
|
{
|
|
Vector3 obj = base.transform.localPosition;
|
|
Quaternion obj2 = base.transform.localRotation;
|
|
stream.Serialize(ref obj);
|
|
stream.Serialize(ref obj2);
|
|
return;
|
|
}
|
|
Vector3 obj3 = Vector3.zero;
|
|
Quaternion obj4 = Quaternion.identity;
|
|
stream.Serialize(ref obj3);
|
|
stream.Serialize(ref obj4);
|
|
latestCorrectPos = obj3;
|
|
onUpdatePos = base.transform.localPosition;
|
|
fraction = 0f;
|
|
base.transform.localRotation = obj4;
|
|
}
|
|
|
|
public void Update()
|
|
{
|
|
if (!base.photonView.isMine)
|
|
{
|
|
fraction += Time.deltaTime * 9f;
|
|
base.transform.localPosition = Vector3.Lerp(onUpdatePos, latestCorrectPos, fraction);
|
|
}
|
|
}
|
|
}
|