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;
            }
        }
    }
예제 #2
0
    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);
        }
    }