void RayCasting() { RaycastHit hit; ray = new Ray(cameraTransform.position, cameraTransform.forward); Physics.Raycast(ray, out hit, rayDistance, interactiveLayer.value); Debug.DrawRay(ray.origin, ray.direction * rayDistance, rayColor); if (hit.collider) { if (interactObject != hit.collider.GetComponent <Interactable>()) { interactObject = hit.collider.GetComponent <Interactable>(); } if (interactObject) { OnEnterInteraction(this); playerMira.SetSizePoint(10f); } } else { if (interactObject) { OnExitInteraction(this); interactObject = null; } } }
private void Update() { PointerEventData pointer = new PointerEventData(eventSystem); pointer.position = new Vector2(playerCamera.pixelWidth / 2, playerCamera.pixelHeight / 2); List <RaycastResult> raycasts = new List <RaycastResult>(); eventSystem.RaycastAll(pointer, raycasts); if (raycasts.Count > 0) { // Debug.Log(raycasts[0].gameObject.name); if (!currentTarget) { currentTarget = raycasts[0].gameObject; } else if (currentTarget != raycasts[0].gameObject) { ExitTarget(pointer); currentTarget = raycasts[0].gameObject; } if (currentTarget) { currentTarget.GetComponent <Selectable>().OnPointerEnter(pointer); if (currentTarget.GetComponent <InfoElement>()) { currentTarget.GetComponent <InfoElement>().Show(); } } miraController.SetSizePoint(2f); } else { ExitTarget(pointer); } if (Input.GetKey(KeyCode.UpArrow) && currentTarget != null) { currentTarget.GetComponent <Selectable>().OnPointerUp(pointer); } }