2012-10-18 58 views
1

有沒有一種方法可以在運行時遊戲對象下創建一個運行時按鈕?我可以用UIToolkit中的所有組件/材質繼承一個運行時遊戲對象。如何在RUNTIME遊戲對象下創建RUNTIME按鈕UNITY

繼承人我的代碼:

public class loadImage : MonoBehaviour 
{ 

    public UIToolkit duplicate_kit; 
    public Material material; 
    public UIButton b1, b2; 
    public MeshFilter meshFilter; 
    public MeshRenderer meshRenderer; 
    public Mesh _mesh; 


    void initKit() 
    { 

     Material duplicateMaterial = new Material (material.shader); 
     duplicateMaterial.CopyPropertiesFromMaterial(material); 
     material = duplicateMaterial; 

     GameObject loadImageToolkit = new GameObject("duplicate_toolkit"); 
     loadImageToolkit.transform.parent = GameObject.Find("UI").transform; 
     loadImageToolkit.layer = LayerMask.NameToLayer("UILayer"); 


     duplicate_kit = loadImageToolkit.AddComponent<UIToolkit>() ; 
     duplicate_kit.texturePackerConfigName = "friendsImageSheet"; 
     duplicate_kit.material = duplicateMaterial; 

     meshRenderer = loadImageToolkit.AddComponent<MeshRenderer>(); 
     meshRenderer.renderer.material = duplicateMaterial; 

     meshFilter = loadImageToolkit.AddComponent<MeshFilter>(); 
     _mesh = meshFilter.mesh; 


    } 

    void Start() 
    { 
     initKit(); 

//  b1 = UIButton.create(duplicate_kit, "FriendsAvatar.png","FriendsAvatar.png",0,0); 
//  b1.pixelsFromTopLeft (60, 0); 
//  StartCoroutine(getImage(b1)); 


     b2 = UIButton.create(duplicate_kit, "FriendsAvatar.png", "FriendsAvatar.png" , 0,0); 
     b2.pixelsFromTopLeft(120, 0); 
     StartCoroutine(getImage(b2)); 


     b1 = UIButton.create((UIToolkit)GameObject.Find("duplicate_toolkit").GetComponent(typeof(UIToolkit)), "FriendsAvatar.png","FriendsAvatar.png",0,0); 
     b1.pixelsFromTopLeft (120, 0); 
     StartCoroutine(getImage(b1)); 

    } 

    IEnumerator getImage(UIButton uib) 
    {  
     WWW imageRequest = new WWW("https://graph.facebook.com/xxxxxxxxx/picture?type=small"); 
     yield return imageRequest; 
     Texture tex = imageRequest.texture; 

     uib.manager.renderer.material.mainTextureScale = new Vector2(18.0f,20.05f); 
     uib.manager.renderer.material.mainTexture = tex; 
    } 

} 

主要目標是B2按鈕應在duplicate_toolkit出現(遊戲對象)

它像:

duplicate_toolkit

的UIButton

enter image description here

回答

0

我沒有通過連接Transform組件與UITookit工作,但總的來說,你這樣做是團結!

b2.transform.parent = duplicate_toolkit.transform; 
+0

喜凱感謝您的答覆,這給了我這個錯誤錯誤CS0200 :屬性或索引器'UnityEngine.GameObject.transform'不能被分配給(它是隻讀的) – jovs

+0

似乎UIToolkit以與標準不同的方式做所有事情。我剛纔看到,即使是b2也沒有顯示在層次結構視圖中。 – Kay

+0

是的凱,一切都設置在運行時腳本。一切工作正常,我的意思是組件,唯一的問題是UIButton是不會出現在duplicate_toolkit運行時遊戲對象下的bs。 – jovs