Пример #1
0
 private void POIOnDeathHandler(HealthBar hbar)
 {
     // Remove the radar ping
     for (int i = 0; i < _pingList.Count; i++)
     {
         RadarPingGUI ping = _pingList[i];
         if (ping.PingObject == hbar.gameObject)
         {
             _pingList.Remove(ping);
             Destroy(ping.gameObject);
             return;
         }
     }
 }
Пример #2
0
    private void UpdatePingPosition(RadarPingGUI ping)
    {
        // HACK: Lots of magic numbers here, but I GOTTA GO FAST
        Vector3       screenCenter = new Vector3(Screen.width * 0.5f, Screen.height * 0.5f);
        Rect          radarRect    = new Rect(Screen.width * 0.1f, Screen.height + 0.1f, Screen.width * 0.8f, Screen.height * 0.8f);
        RectTransform rTransform   = ping.gameObject.GetComponent <RectTransform>();
        Vector3       screenPos    = _mainCamera.WorldToScreenPoint(ping.PingObject.transform.position);
        Vector3       distance     = screenPos - screenCenter;

        if (distance.magnitude > Screen.height * 0.45f)
        {
            screenPos = screenCenter + distance.normalized * screenCenter.y * 0.9f;
            //screenPos.x = Mathf.Clamp(screenPos.x, radarRect.xMin, radarRect.xMax);
            //screenPos.y = Mathf.Clamp(screenPos.y, radarRect.yMin, radarRect.yMax);
        }
        rTransform.position = screenPos;
        ping.SetDistance(Vector3.Distance(ping.PingObject.transform.position, _playerShip.transform.position).ToString("0.00"));
    }
Пример #3
0
    private void POICreatedHandler(Message msg)
    {
        POICreatedMessage poiMsg = msg as POICreatedMessage;

        // HACK: Should use some sort of IFF component or something that'll carry
        // more information
        if (!poiMsg.POI.CompareTag("Nebula"))
        {
            GameObject   pingObj = Instantiate(_radarPingPrefab, gameObject.transform);
            RadarPingGUI ping    = pingObj.GetComponent <RadarPingGUI>();
            ping.PingObject = poiMsg.POI;
            _pingList.Add(ping);
            RectTransform rTransform = pingObj.GetComponent <RectTransform>();
            rTransform.position = _mainCamera.WorldToScreenPoint(poiMsg.POI.transform.position - _playerShip.transform.position);
            HealthBar hbar = ping.PingObject.GetComponent <HealthBar>();
            if (hbar != null)
            {
                hbar.OnDeath.AddListener(POIOnDeathHandler);
            }
        }
    }