Пример #1
0
        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);
            }
        }
Пример #2
0
 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();
     }
 }
Пример #3
0
        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);
            }
        }