XRoom_Unity/Assets/CustomNetworkTransform.cs
2025-05-31 10:20:20 +03:30

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