如何在此代码中启用ScrollView?

时间:2015-01-16 03:56:50

标签: c# unity3d scrollview

    void OnGUI() {

    scrollPosition = GUILayout.BeginScrollView(scrollPosition, GUILayout.Width(400), GUILayout.Height(250));

        for (int i = 0; i < ItemList.Count; i++) {
        GUI.Label(new Rect(BoxTile.x, (BoxTile.height * i) + BoxTile.y + BoxTile.height, BoxTile.width, BoxTile.height), ItemList[i].Title, style );
        GUI.Label(new Rect(BoxDes.x, (BoxDes.height * i) + BoxDes.y + BoxDes.height, BoxDes.width, BoxDes.height), ItemList[i].Description, style );
        GUI.Label(new Rect(BoxCost.x, (BoxCost.height * i) + BoxCost.y + BoxCost.height, BoxCost.width, BoxCost.height), ItemList[i].Cost, style );
        if (GUI.Button(new Rect(BoxBtn.x, ((BoxBtn.height+15) * i)+ BoxBtn.y + BoxBtn.height+15, BoxBtn.width, BoxBtn.height), "x" )) {
            ItemList.RemoveAt(i);
        }
        }
    GUILayout.EndScrollView();
}

我正在尝试创建一个项目列表,它将继续扩展,然后我可以使用滚动条通过使用C#垂直滚动Unity Script中的项目列表。但是,似乎滚动条不会出现在我的列表中。

由于我对Unity(4.6)的了解有限,我不知道如何对此代码进行修改以显示滚动条,有人可以告诉我一些关于此的内容吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

BeginScrollView是一个重载方法。其中一个重载允许您指定何时显示滚动条。默认行为是仅在需要时显示滚动条(当内容&#34;溢出&#34;显示矩形时)

您要使用的重载是

public static Vector2 BeginScrollView(Rect position, Vector2 scrollPosition, Rect viewRect, bool alwaysShowHorizontal, bool alwaysShowVertical);

Link to GUI.BeginScrollView on Unity's API Docs

将您的代码更改为如下所示

scrollPosition = GUILayout.BeginScrollView(scrollPosition, GUILayout.Width(400), GUILayout.Height(250), true, true);

答案 1 :(得分:1)

在Unity 4.6之后,不建议使用OnGUI()。

uGUI在场景视图中很容易制作和显示。

让我们在5分钟内制作uGUI滚动视图! http://petlust.hateblo.jp/entry/2014/08/31/230134