// Update is called once per frame void Update() { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast (ray, out hit)) { var mouseHit = hit.transform.gameObject.GetComponent<MouseHit> (); if (mouseHit == null) { if (_lastMouseHover != null) _lastMouseHover.OnHoverEnd (); return; } if (_lastMouseHover != null && mouseHit != _lastMouseHover) { //Debug.Log("hover end"); _lastMouseHover.OnHoverEnd (); } else { mouseHit.OnHoverBegin (); } if (Input.GetMouseButtonDown (0)) { //Debug.Log ("hit"); mouseHit.OnHit (); } _lastMouseHover = mouseHit; } else { if (_lastMouseHover != null) _lastMouseHover.OnHoverEnd (); } }
protected virtual void Awake() { totalResources = GameObject.Find("Total Resources").GetComponent <TotalResources>(); mouse = GameObject.Find("Main Camera").GetComponent <MouseHit>(); shopImage = GetComponent <Image>(); shopImage.sprite = towerButtonSprites[selectedTower]; foreach (Transform obj in transform) { if (obj.gameObject.name == "Price") { price = int.Parse(obj.GetComponent <Text>().text); } else if (obj.tag == "Hover") { obj.gameObject.SetActive(false); } } }
// Update is called once per frame void Update() { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit)) { var mouseHit = hit.transform.gameObject.GetComponent <MouseHit> (); if (mouseHit == null) { if (_lastMouseHover != null) { _lastMouseHover.OnHoverEnd(); } return; } if (_lastMouseHover != null && mouseHit != _lastMouseHover) { //Debug.Log("hover end"); _lastMouseHover.OnHoverEnd(); } else { mouseHit.OnHoverBegin(); } if (Input.GetMouseButtonDown(0)) { //Debug.Log ("hit"); mouseHit.OnHit(); } _lastMouseHover = mouseHit; } else { if (_lastMouseHover != null) { _lastMouseHover.OnHoverEnd(); } } }
protected virtual void Awake() { totalResources = GameObject.Find("Total Resources").GetComponent<TotalResources>(); mouse = GameObject.Find("Main Camera").GetComponent<MouseHit>(); shopImage = GetComponent<Image>(); shopImage.sprite = towerButtonSprites[selectedTower]; foreach (Transform obj in transform) { if (obj.gameObject.name == "Price") { price = int.Parse(obj.GetComponent<Text>().text); } else if (obj.tag == "Hover") { obj.gameObject.SetActive(false); } } }
public static void OnMouseHit() => MouseHit?.Invoke();