【问题标题】:How to enable ScrollView in this code?如何在此代码中启用 ScrollView?
【发布时间】:2015-01-16 03:56:50
【问题描述】:
    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) 的了解有限,我不确定如何修改此代码以显示滚动条,有人可以告诉我一些关于此的信息吗?提前致谢。

【问题讨论】:

  • scrollview 在 4.6 中没有改变,仍然和 4.5 一样。我们在这里谈论的是统一编辑器还是普通的 GUI?

标签: c# unity3d scrollview


【解决方案1】:

BeginScrollView 是一个重载方法。其中一个重载允许您指定何时显示滚动条。默认行为是仅在需要时才显示滚动条(当内容“溢出”显示 Rect 时)

你要使用的重载是

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);

【讨论】:

    【解决方案2】:

    Unity 4.6 之后,不推荐使用 OnGUI()。

    uGUI 易于制作并且在场景视图中可见。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-14
      • 2013-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多