我目前正在為游戲建立一個商店。商店商品以串列形式存盤,并按順序顯示在螢屏上。我想檢測該串列的哪個物件被單擊并訪問它的值以在螢屏上顯示它們。知道我該怎么做嗎?
uj5u.com熱心網友回復:
您將需要為每個元素動態創建 UI 按鈕/(專案圖示)。
您的代碼可能如下所示:
Transform ButtonPrefab;
...
void PopulateShopItems(List<Item> itemList)
{
foreach(var item in itemList)
{
Transform buttonTransform = Instantitate(ButtonPrefab);
// Set the position of the button
...
// Get the button component (which should be on the button prefab)
Button button = buttonTransform.GetComponent<Button>();
// Add a listener for the button
button.onClick.AddListener(delegate{BuyItem(item);});
}
}
void BuyItem(Item item)
{
// Do the buy item things
}
它背后的想法是您有一個按鈕預制件,它將充當特定專案的圖示/按鈕。如果您單擊該按鈕,它將呼叫您想要的功能。
作為額外的事情,您可以將腳本添加到您的按鈕預制件中,這會使一切變得更容易。
[RequireComponent(typeof(Button))]
public ItemButton
{
Button button;
void Start()
{
button = GetComponent<Button>();
}
public void SetButtonProperties(Item item)
{
// Example Code -- May not work 100%;
button.GetComponentInChild<Text>().text = item.name;
...
}
}
uj5u.com熱心網友回復:
讓它成為一個按鈕并制作一個腳本,您可以使用該按鈕購買物品
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/508343.html