2015-01-16 81 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);