private void DrawRadar() { var local = Player.localPlayer.m_playerCamera; var mapPos = Vector2.one * 4f; var mapSize = Vector2.one * 128f; var mapCenter = mapPos + mapSize * 0.5f; var maxDist = 100f; ZatsRenderer.DrawCross(mapPos + mapSize * 0.5f, mapSize, 1f, Color.white); ZatsRenderer.DrawDot(mapPos + mapSize * 0.5f, Color.green); if (PlayerManager.AlivePlayers.Length == 0) { return; } var world2radar = (mapSize * 0.5f).magnitude / maxDist; foreach (var p in PlayerManager.AlivePlayers) { var delta = p.m_torso.transform.position - local.transform.position; if (delta.magnitude > maxDist) { delta = delta.normalized * maxDist; } delta *= world2radar; if (delta.magnitude > mapSize.x * 0.5f) { delta = delta.normalized * mapSize.x * 0.5f; } var length = delta.magnitude; var angle = Mathf.Atan2(delta.z, delta.x) * Mathf.Rad2Deg + 90f; var newAngle = (angle + local.transform.rotation.eulerAngles.y) * -1f; var newVec = new Vector2(-Mathf.Sin(Mathf.Deg2Rad * newAngle), Mathf.Cos(Mathf.Deg2Rad * newAngle)) * length; ZatsRenderer.DrawDot(mapCenter + newVec, Color.red); } }
private void DrawPlayer(Vector2 offset, Player player, Color color) { var p = WorldToMap(player.m_torso.transform.position); ZatsRenderer.DrawDot(offset + p, color); }