private void DrawCrosshair(Camera cam, Vector3 t, Color color) { var vec = cam.WorldToScreenPoint(t); if (vec.z > 0) { ZatsRenderer.DrawCross(new Vector2(vec.x, vec.y), Vector2.one * 8f, 1f, color); } }
public void OnGUI() { ZatsRenderer.DrawCross(new Vector2(Screen.width / 2f, Screen.height / 2f), Vector2.one * 16f, 1f, Color.white); if (Player.localPlayer != null) { DrawCrosshairs(); DrawPlayers(); if (PickupManager.instance != null) { DrawPickups(); } DrawRadar(); } }
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); } }