user-interface - 如何使用 Unity UI 滚动到 ScrollRect 中的特定元素?

标签 user-interface unity3d unity3d-gui

我使用 Unity 5.1 为手机游戏构建了一个注册表单。
为此,我使用 Unity UI 组件:ScrollRect + Autolayout(垂直布局)+ Text(标签)+ Input Field。
这部分工作正常。

但是,当键盘打开时,所选字段位于键盘下方。有没有办法以编程方式滚动表单以显示所选字段?

我试过使用 ScrollRect.verticalNormalizedPosition滚动一些可以正常工作,但是我无法使选定的字段出现在我想要的位置。

谢谢你的帮助 !

最佳答案

我会给你一个我的代码片段,因为我觉得很有帮助。希望这可以帮助!

protected ScrollRect scrollRect;
protected RectTransform contentPanel;

public void SnapTo(RectTransform target)
    {
        Canvas.ForceUpdateCanvases();

        contentPanel.anchoredPosition =
            (Vector2)scrollRect.transform.InverseTransformPoint(contentPanel.position)
            - (Vector2)scrollRect.transform.InverseTransformPoint(target.position);
    }

关于user-interface - 如何使用 Unity UI 滚动到 ScrollRect 中的特定元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30766020/

相关文章:

android - 将自定义字体设置为对话框

c# - Lerp 颜色的 alpha 值

java - 通过 Android 应用程序下载 Unity .obb 内容

android - 圈内显示进度

java - 可访问、跨平台、相关的 UI 框架?

algorithm - 大型 RTS map 上的 FlowField 寻路

c# - 淡出 Unity UI 文本

c# - Unity UI - 光标锁定时与世界空间 UI 交互

c# - 在Unity3D中管理复杂的预制层级

java - 如何仅关闭我的弹出式 JFrame