[英]How to dynamically create button using NGUI (Unity)
我是Unity和NGUI的新手,我無法想象如何動態地將自定義圖集和精靈分配到按鈕中。
using UnityEngine;
using System.Collections;
public class createButton : MonoBehaviour {
public createButton(){
GameObject newButton = new GameObject ();
newButton.name = "newButton" + 1;
//go.AddComponent<UISprite> ();
newButton.AddComponent<UIButton> ();
newButton.AddComponent<UISprite> ();
}
}
使用預制件:
public class createButton : MonoBehaviour {
public GameObject myNguiButtonPrefab;
private int nextId;
public createButton(){
GameObject newButton = (GameObject)Instantiate(myNguiButtonPrefab);
newButton.name = "newButton" + (nextId++);
MyButtonScript buttonScript = newButton.GetComponent<MyButtonScript>();
buttonScript.Setup(/* some parameters */);
}
}
因此,在場景中創建一個游戲對象並添加您的createButton腳本。 然后使用NGUI小部件向導創建一個按鈕,並將其另存為預制件。 然后,將預制件鏈接到檢查器中的createButton.myNguiButtonPrefab字段。 最后,在按鈕預制件中添加一個自定義腳本,用於處理根據您關注的任何參數單擊按鈕時發生的情況,如下所示:
public class MyButtonScript : MonoBehaviour {
public void Setup(/* Some parameters */){
// Do some setting up
UISprite sprite = GetComponent<UISprite>();
sprite.spriteName = "someSpriteBasedOnTheParametersPassed";
}
void OnClick(){
// Do something when this button is clicked based on how we set this button up
}
}
如果你想要真正的幻想,你可以將你的createButton更改為:
public class createButton : MonoBehaviour {
public MyButtonScript myNguiButtonPrefab;
private int nextId;
public createButton(){
MyButtonScript newButton = (MyButtonScript )Instantiate(myNguiButtonPrefab);
newButton.name = "newButton" + (nextId++);
newButton.Setup(/* some parameters */);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.