//HotSpot _mousedDownHotspot = null;
		//HotSpot _mousedUpHotspot = null;

		void Update() {

			if (Camera.main == null) {return;}

			bool hoveringHotSpot = false;


				ray = Camera.main.ScreenPointToRay (Input.mousePosition);
				if (Physics.Raycast (ray, out hit, Mathf.Infinity, layermask)) {
			
						if (hit.collider != null) {

							
				
								HotSpot hotSpot = hit.collider.GetComponent<HotSpot> ();
								
								// Did we enter a hotspot && and is it a valid hotspot
								if (hotSpot != null) {
					
									// If so, then we are definitely hovering over a hotspot
									hoveringHotSpot = true;	

									// Are we still hovering over the same hotspot?
									
									if(_lastHotspotEntered != hotSpot) {

										//Debug.Log ("Enter Hot Spot: " + hit.collider.name);

										// If not then change the last hot spot entered and let the new hot spot know that we entered it
										_lastHotspotEntered = hotSpot;
										hotSpot.MouseEnter();
									}
					
								}
				
						}
						else {
							// If the collider is null then we are not hovering over a hotspot
							hoveringHotSpot = false;
						}
				}
				

			// Handle hotspot hover and click
			if (hoveringHotSpot) {

				// On Mouse Down
				if (Input.GetMouseButtonDown (0)) {
					_lastHotspotEntered.MouseDown();
				}

				// On Mosue Up
				if (Input.GetMouseButtonUp(0)) {			
					_lastHotspotEntered.MouseUp();
				}
			}

			//Debug.Log ("Hovering Over Hotspot? " + hoveringHotSpot);

			// Did we exit a hotspot
			if(!hoveringHotSpot && _lastHotspotEntered != null) {
		
				_lastHotspotEntered.MouseExit();
				_lastHotspotEntered = null;

			}
		}
		/// <summary>
		/// Initializes a new instance of the <see cref="WhatPumpkin.Sgrid.Triggers.HotSpotEventArgs"/> class.
		/// </summary>
		/// <param name="hsEventType">Hs event type.</param>
		/// <param name="name">Name.</param>
	
		public HotSpotEventArgs(MouseEventType hsEventType, HotSpot hotspot, string name, bool conditionsMet) {
		
			_mouseEventType = hsEventType;

			_hotSpot = hotspot;

			_name = name;

			_conditionsMet = conditionsMet;

		}