private IEnumerator UpdateByFrameCoroutine() { foreach (var t in MultiplayerStatic.transforms) { MultiplayerStatic.UpdateByFrame(t.Key); yield return(null); } }
private static void RefreshTTL(string id) { var ttl = MultiplayerStatic.GetTTLById(id); if (ttl == -1) { return; } TTLDictionary[id] = TTL; }
private static int ReduceTTL(string id) { var ttl = MultiplayerStatic.GetTTLById(id); if (ttl == -1) { return(-1); } ttl -= 1; if (ttl < 0) { ttl = 0; } TTLDictionary[id] = ttl; return(ttl); }
public static void OnPositionListener() { if (message == null) { return; } if (message.type != MessageType.Position) { return; } var m = message; message = null; PositionMessage positionMessage = JsonUtility.FromJson <PositionMessage>(m.message); MultiplayerStatic.UpdatePositionById(positionMessage.id, positionMessage.name, positionMessage.position); }
public static void UpdateByFrame(string id) { var ttl = ReduceTTL(id); Target target = MultiplayerStatic.GetTargetById(id); Transform transform = MultiplayerStatic.GetTransformById(id); if (ttl == 0) { RemovePlayer(id, transform); } if (target == null || transform == null) { return; } MultiplayerStatic.Animate(transform, target); MultiplayerStatic.UpdateTextPosition(transform); var updatedPosition = Vector3.SmoothDamp(transform.position, target.position, ref target.velocity, smoothTime); float updatedYAngle = Mathf.SmoothDampAngle(transform.eulerAngles.y, target.yAngle, ref target.angularVelocity, smoothTime); transform.rotation = Quaternion.Euler(0, updatedYAngle, 0); transform.position = updatedPosition; }
} // Debug public static void SendPositionDebug(string name, PositionStructure structure) { structure.z += 2f; MultiplayerStatic.UpdatePositionById("1", "Ratto", structure); }