// Update is called once per frame void Update() { if (EventSystem.current.IsPointerOverGameObject()) { return; } Ray worldPoint = Camera.main.ScreenPointToRay(Input.mousePosition); const int selectableTileLayerMask = 1 << 11; var hoveringTile = Physics.Raycast(worldPoint, out RaycastHit hit, Mathf.Infinity, selectableTileLayerMask); if (hoveringTile) { var tileScript = hit.collider.transform.parent.gameObject.GetComponent <TileScript>(); if (tileHover != tileScript) { if (tileHover && tileHover != tileSelected) { tileHover.UnSelectTile(); } tileHover = tileScript; if (tileScript && tileHover != tileSelected) { tileHover.HoverTile(); } } if (Input.GetButtonDown("Fire1")) { if (tileSelected) { tileSelected.UnSelectTile(); } tileSelected = tileScript; tileSelected.SelectTile(); tileMenuController.TileSelected(tileScript); } if (Input.GetButton("Fire1")) { holding += Time.deltaTime; if (holding > 1) { Debug.Log("Opening Radial Menu soon (tm)"); } } else { holding = 0; } } }