Files
2026-02-21 16:45:37 +08:00

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);
}
}
}