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