【问题标题】:Unity VR - Scrolling text with hand movement (Oculus)Unity VR - 用手移动滚动文本(Oculus)
【发布时间】:2018-06-25 07:15:41
【问题描述】:

我想要的是一个可以用手移动滚动的世界空间画布。我可以得到控制器的 worldPosition 并找到实际的运动,但我不知道如何使文本滚动。

我目前正在尝试的是使用滚动条+隐藏滚动条并更改滚动条的值,但这不起作用。

我也尝试过改变文本对象的世界位置,虽然我设法使文本相应地移动,但我不知道如何找到文本大小,但我认为这就像重新发明滚动矩形。

【问题讨论】:

    标签: c# user-interface unity3d virtual-reality scrollrect


    【解决方案1】:

    对于现在检查这一点的任何人,我建议使用 OVR 输入模块及其在 oculus 框架中提供的滚动组件。我将在下面留下我的旧答案。


    旧答案,如果您不想使用 OVRInput 模块

    经过一番搜索后,我在统一论坛中偶然发现了一个答案, 我将其发布在这里以供将来参考。

    在这里,您只需使用项目设置中设置的指定轴滚动,如果您想通过手部动作滚动只需计算控制器位置之间的差异,对于 oculus touch,我可以通过从这里更改一些代码来获得我的代码@ 987654321@

    public class MoveScrollRect : ScrollRect, IMoveHandler, IPointerClickHandler
    {
    private const float speedMultiplier = 0.01f;
    public float xSpeed = 0;
    public float ySpeed = 0;
    private float hPos, vPos;
    
    
    void IMoveHandler.OnMove(AxisEventData e)
    {
        xSpeed += e.moveVector.x * (Mathf.Abs(xSpeed) + 0.1f);
        ySpeed += e.moveVector.y * (Mathf.Abs(ySpeed) + 0.1f);
    }
    
    void Update()
    {
    
        ySpeed = Input.GetAxis("VerticalScroller");
    
        hPos = horizontalNormalizedPosition + xSpeed * speedMultiplier;
        vPos = verticalNormalizedPosition + ySpeed * speedMultiplier;
    
        xSpeed = Mathf.Lerp(xSpeed, 0, 0.1f);
        ySpeed = Mathf.Lerp(ySpeed, 0, 0.1f);
    
        if (movementType == MovementType.Clamped)
        {
            hPos = Mathf.Clamp01(hPos);
            vPos = Mathf.Clamp01(vPos);
        }
    
        normalizedPosition = new Vector2(hPos, vPos);
    }
    
    public void OnPointerClick(PointerEventData e)
    {
        EventSystem.current.SetSelectedGameObject(gameObject);
    }
    
    public override void OnBeginDrag(PointerEventData eventData)
    {
        EventSystem.current.SetSelectedGameObject(gameObject);
        base.OnBeginDrag(eventData);
    }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-04-17
      • 2018-08-19
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多