public static void Update(this EntitySyncComponent self) { if (TimeHelper.Now() - self.Timer > self.Interval) { self.Timer = TimeHelper.Now(); var transform = self.Parent.GetComponent <TransformComponent>(); var lp = transform.lastPosition; var p = transform.position; if (Vector3.Distance(lp, p) < 0.1f) { return; } transform.lastPosition = p; var msg = new M2C_OnEntityChanged(); msg.EntityId = self.Id; msg.EntityType = EntityDefine.GetTypeId(self.Parent.GetType()); msg.X = (int)(p.x * 100); msg.Y = (int)(p.y * 100); msg.Z = (int)(p.z * 100); MessageHelper.Broadcast(self.Domain, msg); } }
public static void Awake(this EntitySyncComponent self) { self.Interval = 1000 / self.Fps; }