2015-01-16 41 views
0
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(); 
} 

我想创建一个项目列表,它将只是继续扩展,然后我可以使用滚动条在Unity Script中通过使用C#来垂直滚动项目列表。但是,似乎滚动条将不会出现在我的列表中。如何在此代码中启用ScrollView?

由于我在Unity(4.6)方面的知识有限,我不确定如何对此代码进行修改以显示滚动条,有人可以向我展示一些这方面的信息吗?提前致谢。

+0

scrollview在4.6中没有变化,仍然与4.5中的相同。我们在这里谈论统一编辑器还是普通的GUI? –

回答

1

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

要使用过载是

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