private void Update() { RaycastHit hit; Vector3 fwd = transform.TransformDirection(Vector3.forward); if (Physics.Raycast(transform.position, fwd, out hit, rayLength, layerMaskInteract.value)) { if (hit.collider.CompareTag("InteractObject")) { if (!doOnce) { raycastedObj = hit.collider.gameObject.GetComponent <objectController>(); raycastedObj.ShowObjectName(); CrosshairChange(true); } isCrosshairActive = true; doOnce = true; if (Input.GetMouseButton(0)) { raycastedObj.ShowDesc(); } } } else { if (isCrosshairActive) { raycastedObj.HideObjectName(); CrosshairChange(false); doOnce = false; } } }
public void DetermineDragDirection() { objectController objCon = transform.parent.gameObject.GetComponent <objectController>(); float newPosX = Input.mousePosition.x; float newPosY = Input.mousePosition.y; if (transform.GetComponentInParent <objectController>().allowInteraction) //if the interaction is allowed { if (Mathf.Abs(newPosX - posX) >= Mathf.Abs(newPosY - posY)) //left-right { if (newPosX >= posX) { objCon.moveAdjacent(gridPosH, gridPosW, 1, true); //right } else { objCon.moveAdjacent(gridPosH, gridPosW, 0, true); //left } } else //up-down { if (newPosY >= posY) { objCon.moveAdjacent(gridPosH, gridPosW, 2, true); //up } else { objCon.moveAdjacent(gridPosH, gridPosW, 3, true); //down } } } }