38 lines
1.4 KiB
C#
38 lines
1.4 KiB
C#
using UnityEngine;
|
|
using Fusion;
|
|
using System.Globalization;
|
|
|
|
public class CustomNetworkTransform : NetworkBehaviour
|
|
{
|
|
[Networked] private TickTimer timer { get; set; }
|
|
[Networked] private Vector3 position { get; set; }
|
|
[Networked] private Quaternion rotation { get; set; }
|
|
|
|
private float syncRate = 0.1f; // مدت زمانی که میخواهیم موقعیت و چرخش را همگامسازی کنیم
|
|
private float lastSyncTime;
|
|
|
|
void Update()
|
|
{
|
|
if (Object.HasInputAuthority)
|
|
{
|
|
// اگر این شیء متعلق به مالک باشد، موقعیت و چرخش را بهروز کنیم
|
|
if (Time.time - lastSyncTime >= syncRate)
|
|
{
|
|
lastSyncTime = Time.time;
|
|
position = transform.position;
|
|
rotation = transform.rotation;
|
|
timer = TickTimer.CreateFromSeconds(Runner,0.1f); // زمان همگامسازی
|
|
}
|
|
print("SEND");
|
|
}
|
|
|
|
// همگامسازی موقعیت و چرخش با دیگر بازیکنان
|
|
if (timer.IsRunning && !Object.HasInputAuthority)
|
|
{
|
|
print("Recevied!");
|
|
transform.position = Vector3.Lerp(transform.position, position, Time.deltaTime * 10f);
|
|
transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * 10f);
|
|
}
|
|
}
|
|
}
|