コード例 #1
0
    private MouseState getAirXRPointerEventData(AirXRPointer pointer)
    {
        AirXRPointerEventData leftData;
        var created = getAirXRPointerData(pointer, kMouseLeftId, out leftData, true);

        leftData.Reset();

        leftData.worldSpaceRay    = pointer.GetWorldRay();
        leftData.button           = PointerEventData.InputButton.Left;
        leftData.scrollDelta      = Vector2.zero;
        leftData.useDragThreshold = false;

        raycastForAirXRPointer(pointer, leftData, _raycastResultCache);
        var raycast = FindFirstRaycast(_raycastResultCache);

        leftData.pointerCurrentRaycast = raycast;
        _raycastResultCache.Clear();

        var position       = Vector2.zero;
        var airxrRaycaster = raycast.module as AirXRGraphicRaycaster;

        if (airxrRaycaster)
        {
            position = airxrRaycaster.GetScreenPosition(raycast);
        }

        var airxrPhysicsRaycaster = raycast.module as AirXRPhysicsRaycaster;

        if (airxrPhysicsRaycaster)
        {
            position = airxrPhysicsRaycaster.GetScreenPosition(raycast.worldPosition);
        }

        if (created)
        {
            leftData.position = position;
        }
        leftData.delta    = position - leftData.position;
        leftData.position = position;

        AirXRPointerEventData rightData;

        getAirXRPointerData(pointer, kMouseRightId, out rightData, true);
        copyAirXRPointerEventData(leftData, rightData);
        rightData.button = PointerEventData.InputButton.Right;

        AirXRPointerEventData middleData;

        getAirXRPointerData(pointer, kMouseMiddleId, out middleData, true);
        copyAirXRPointerEventData(leftData, middleData);
        middleData.button = PointerEventData.InputButton.Middle;

        _mouseState.SetButtonState(PointerEventData.InputButton.Left, getAirXRPointerButtonState(pointer), leftData);
        _mouseState.SetButtonState(PointerEventData.InputButton.Right, PointerEventData.FramePressState.NotChanged, rightData);
        _mouseState.SetButtonState(PointerEventData.InputButton.Middle, PointerEventData.FramePressState.NotChanged, middleData);

        return(_mouseState);
    }
コード例 #2
0
    public void SetBodyClickTime()
    {
        seeking = true;
        RaycastHit hit = new RaycastHit();

        if (!Physics.Raycast(pointer.GetWorldRay(), out hit))
        {
            Debug.LogError("Not Found Panel");
            return;
        }

        magnitude = (hit.point - progressStart.position).magnitude;

        target = progressStart.position + dir.normalized * magnitude;

        PlayHeadBoundCheck();

        float current = magnitude / progressTotal;

        saveTime = current * player.clip.length;
        Play();
    }