首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自下而上的Unity3D滚动视图/滚动条

自下而上的Unity3D滚动视图/滚动条
EN

Stack Overflow用户
提问于 2015-08-12 18:28:32
回答 1查看 4.6K关注 0票数 2

我正试图在Unity中创建一个终端模拟器。我能够输入文本并将其显示为上面的输出,当通过ScrollView输入足够多的文本时,输出将生成一个滚动条。

但是,当用户输入文本时,我不知道如何使滚动条跳到底部。

这是用于绘制GUI窗口的方法。

代码语言:javascript
运行
复制
// relevant instance variables
    private Rect _windowPosition = new Rect();
            List<string> output = new List<string>();
            string user_input = "";
            Vector2 scroll_pos = new Vector2(1,1);

        ...
        ...
        ...

    private void onWindow(int windowID){
                GUILayout.BeginVertical();

            // Output is placed here. Is Scrollable
                scroll_pos = GUILayout.BeginScrollView( scroll_pos );
                GUILayout.Label( String.Join("\n", output.ToArray()) );
                GUILayout.EndScrollView();
            // Output ends here. Next piece is user input

                user_input = GUILayout.TextField(user_input);
                if (Event.current.Equals(Event.KeyboardEvent("return"))) {
                    output.Add(user_input);
                    user_input = ""; //clears the TextField
                    scroll_pos.x = 1;
                    scroll_pos.y = 1;
                }
                GUILayout.EndVertical();
                GUI.DragWindow();
            }

从我的搜索中,我看到它说我应该更改scroll_pos变量,因为它用于控制/读取滚动条的位置。滚动条的值在0- 1之间规范化.

我尝试将scroll_pos值同时设置为0和1,但没有影响。除此之外,我不知道如何处理这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-12 20:13:48

试着改变

代码语言:javascript
运行
复制
scroll_pos.x = 1;
scroll_pos.y = 1;

代码语言:javascript
运行
复制
scroll_pos.y += 9999;

如果你也想用X强制滚动,但通常控制台不会生成水平滚动,它们会根据你配置的列数强制换行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31972772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档