2013-01-18 103 views
0

一个DropDownList我是新来的团结,所以我不知道如何在运行时创建Unity3d一个DropDownList如何在运行时创建的unity3d

我能够创建列表中多次现场载荷为每例在下面给出链接http://wiki.unity3d.com/index.php?title=PopupList

但我不知道如何在运行时创建这些,我已经尝试创建这个类。

#pragma strict 
class CustomList extends MonoBehaviour 
{ 
    var title:String; 
    var top:int; 
    var left:int; 
    var width:int; 
    var height:int; 
    private var listEntry = 0; 
    private var list : GUIContent[]; 
    private var listStyle : GUIStyle; 
    private var showList = false; 
    public function CustomList(title:String,top:int,left:int,width:int,height:int){ 
     this.title = title; 
     this.top=top; 
     this.left = left; 
     this.width = width; 
     this.height = height; 

     list = new GUIContent[1]; 
     list[0] = new GUIContent("Granite"); 
     // Make a GUIStyle that has a solid white hover/onHover background to indicate highlighted items 
     listStyle = new GUIStyle(); 
     listStyle.normal.textColor = Color.white; 
     var tex = new Texture2D(2, 2); 
     var colors = new Color[4]; 
     for (color in colors) color = Color.white; 
     tex.SetPixels(colors); 
     tex.Apply(); 
     listStyle.hover.background = tex; 
     listStyle.onHover.background = tex; 
     listStyle.padding.left = listStyle.padding.right = listStyle.padding.top = listStyle.padding.bottom = 4; 

    } 

    function Start() { 

    } 
    function OnGUI() { 
     Debug.Log("title for list is : "+title); 
     GUI.Label (Rect(10, 10, 100, 10), "You picked !"); 
     if (Popup.List (Rect(top, left, width, height), showList, listEntry, GUIContent(this.title), list, listStyle)) { 
     GUI.Label (Rect(200, 70, 400, 20), "You picked !"); 
     } 
    } 
} 

,但我不能将其添加到我的for循环如下

for(var objCategory:Category in objCategoryList.listCategory){ 

     new CustomList(objCategory.categoryName,100,ctr*100,100,20); 
     ctr++; 
    } 

任何人都可以提出什么是错此代码段中,哪些是在JavaScript这样做的正确方法unity3d。

回答

0

我已经改变了我的代码下面,使其工作

#pragma strict 
class CustomLayout extends MonoBehaviour 
{ 
    private var listEntry = 0; 
    private var list : GUIContent[]; 
    private var listStyle : GUIStyle; 
    private var showList = false; 
    public function testLayout(){  
     list = new GUIContent[1]; 
     list[0] = new GUIContent("Granite"); 
     // Make a GUIStyle that has a solid white hover/onHover background to indicate highlighted items 
     listStyle = new GUIStyle(); 
     listStyle.normal.textColor = Color.white; 
     var tex = new Texture2D(2, 2); 
     var colors = new Color[4]; 
     for (color in colors) color = Color.white; 
     tex.SetPixels(colors); 
     tex.Apply(); 
     listStyle.hover.background = tex; 
     listStyle.onHover.background = tex; 
     listStyle.padding.left = listStyle.padding.right = listStyle.padding.top = listStyle.padding.bottom = 4;    
    } 

    function OnGUI() { 
     var ctr:int =0;  
     for(var objCategory:Category in DropdownList.objCategoryList.listCategory){ 
      if (Popup.List (Rect(50, 50+(ctr*25), 100, 20), showList, listEntry, GUIContent(objCategory.categoryName), list, listStyle)) { 
       GUI.Label (Rect(200, 70, 400, 20), "You picked !"); 
      } 
      ctr++; 
     }  
    } 
} 

而且在主类实例化这样

gameObject.AddComponent(CustomLayout);