Advertisement
Guest User

show all hotspots in AC

a guest
May 21st, 2015
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.71 KB | None | 0 0
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5.  
  6. namespace AC
  7. {
  8.     public class SnoopScript : MonoBehaviour
  9.     {
  10.         public Image snoopSprite;
  11.         public Image portalSprite;
  12.         public Canvas snoopCanvas;
  13.         public float fadespeed = 2f;
  14.  
  15.         private Dictionary<Image, Hotspot> hotspotsDict = new Dictionary<Image, Hotspot>();
  16.  
  17.         void Update ()
  18.         {
  19.             if( snoopCanvas.transform.childCount > 0 )
  20.             {
  21.                 foreach( Image sprite in hotspotsDict.Keys )
  22.                 {
  23.                     sprite.rectTransform.position = hotspotsDict[sprite].GetIconScreenPosition();
  24.                 }
  25.             }
  26.             if (Input.GetAxis ("FlashHotspots") == 1)
  27.             {
  28.                 FlashHotspots();
  29.             }
  30.         }
  31.  
  32.         private void FlashHotspots ()
  33.         {
  34.             Hotspot[] hotspots = FindObjectsOfType (typeof (Hotspot)) as Hotspot[];
  35.            
  36.             foreach (Hotspot hotspot in hotspots)
  37.             {
  38.                 if (hotspot.IsOn () && hotspot != KickStarter.playerInteraction.GetActiveHotspot ())
  39.                 {
  40.                     Image hotspotSnoop;
  41.                     if( hotspot.IsSingleInteraction() )
  42.                     {
  43.                         hotspotSnoop = Instantiate( portalSprite ) as Image;
  44.                     }
  45.                     else
  46.                     {
  47.                         hotspotSnoop = Instantiate( snoopSprite ) as Image;
  48.                     }
  49.                     hotspotSnoop.transform.SetParent(snoopCanvas.transform);
  50.                     hotspotSnoop.rectTransform.position = hotspot.GetIconScreenPosition();
  51.                     hotspotsDict.Add( hotspotSnoop, hotspot );
  52.  
  53.                     StartCoroutine(FadeOut( hotspotSnoop ));
  54.                 }
  55.             }
  56.         }
  57.  
  58.         IEnumerator FadeOut(Image obj)
  59.         {
  60.             yield return new WaitForSeconds(1.0f);
  61.  
  62.             obj.CrossFadeAlpha (0.0f, fadespeed, false);
  63.  
  64.             while( obj.canvasRenderer.GetAlpha() > 0.0f )
  65.             {
  66.                 yield return null;
  67.             }
  68.             Destroy (obj.gameObject);
  69.             hotspotsDict.Remove (obj);
  70.         }
  71.     }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement