Ejemplo n.º 1
0
 void Update()
 {
     if (Input.GetMouseButtonDown(0))
     {
         MouseHoverInfo mhi = GetMouseHoverInfo(crew.reachRange);
         if (mhi.IsHit)
         {
             ClickTransmitter clickTransmitter = mhi.hoverObject.GetComponent <ClickTransmitter>();
             if (clickTransmitter != null)
             {
                 HitClickTransmitter(clickTransmitter);
             }
         }
     }
 }
Ejemplo n.º 2
0
    private void ActivateClosestClickReceiver(ClickTransmitter clickTransmitter)
    {
        //this handles two cases:
        //activate all clickReceivers with matching frequency, or
        //if frequency is zero, activate the closest clickReceiver.
        ClickReceiver closestReceiver = null;
        float         minDistance     = 0;

        foreach (ClickReceiver clickReceiver in FindObjectsOfType <ClickReceiver>())
        {
            float newDistance = Vector3.Distance(clickTransmitter.gameObject.transform.position, clickReceiver.startPosition);
            if (newDistance < minDistance || closestReceiver == null)
            {
                closestReceiver = clickReceiver;
                minDistance     = newDistance;
            }
        }
        closestReceiver.Activate();
    }
Ejemplo n.º 3
0
 private void HitClickTransmitter(ClickTransmitter clickTransmitter)
 {
     //called when clickTransmitter has been activated.
     if (clickTransmitter.FindsClosestReceiver())
     {
         ActivateClosestClickReceiver(clickTransmitter);
     }
     else
     {
         foreach (GameObject go in clickTransmitter.clickReceiverGameObjects)
         {
             ClickReceiver clickReceiver = go.GetComponent <ClickReceiver>();
             if (clickReceiver == null)
             {
                 Debug.LogError("an item in clickReceiverGameObjects has no clickReceiver. " + clickTransmitter.gameObject);
                 continue;
             }
             clickReceiver.Activate();
         }
     }
 }