private void DistanceTest() { if (CurrentObjectClicked != null) { if (CurrentObjectClicked == manager.GetComponentInChildren <ClickTrigger>()) { CurrentObjectClicked = null; return; } FieldOfView fieldViewManager = Camera.main.GetComponent <CameraManager>().FieldOfView; if (!fieldViewManager.IsObjectVisibleFromPlayer(manager.gameObject, CurrentObjectClicked.transform.parent.gameObject)) { CurrentObjectClicked.OnMouseExitTrigger(); ActivateUIFeedback(false); CurrentObjectClicked = null; } else { interactionUI.EnableButton(this.CanDoAction()); CurrentObjectClicked?.PlayerInActionRange(isObjectClickedInActionRange); } } else if (CurrentObjectOver != null) { FieldOfView fieldViewManager = Camera.main.GetComponent <CameraManager>().FieldOfView; if (!fieldViewManager.IsObjectVisibleFromPlayer(manager.gameObject, CurrentObjectOver.transform.parent.gameObject)) { CurrentObjectOver.OnMouseExitTrigger(); CurrentObjectOver = null; } } }
private void CheckHitAnotherGameObject(GameObject hitGameObject) { bool hasHitAnotherGameObject = CurrentObjectOver != null && CurrentObjectOver.gameObject != hitGameObject; if (hasHitAnotherGameObject) { CurrentObjectOver.OnMouseExitTrigger(); } }
private void OnRaycastNotHit() { if (CurrentObjectOver != null && CurrentObjectOver != CurrentObjectClicked) { CurrentObjectOver.OnMouseExitTrigger(); } CurrentObjectOver = null; cursor.SwitchCursor(CursorManager.CursorType.BASIC); }
private void OnRaycastHit(GameObject hitGameObject) { CheckHitAnotherGameObject(hitGameObject); CurrentObjectOver = hitGameObject.GetComponent <ClickTrigger>(); if (CurrentObjectClicked != null) { return; } if (!CurrentObjectOver.OnMouseOverTrigger(manager)) { CurrentObjectOver = null; } else { cursor.SwitchCursor(CursorManager.CursorType.ON_INTERACT); } }