我正在开发游戏,现在已经达到需要动态创建按钮列表的阶段。
我的方法是创建一个滚动视图,然后通过脚本添加按钮。
我已经创建了按钮预制件。此按钮的目的是在应用程序外部打开特定的链接,因此我创建了带有两个文本组件的按钮预制件:一个说“ Show Path”(这是我希望按钮显示的内容),另一个文本组件是“我需要打开的链接,用户看不到。
我遇到了几个问题:
谢谢您的时间!
答案 0 :(得分:0)
我建议您做的是创建自己的类来处理此问题,因此在检查器中更容易可视化。
[System.Serializable]
public class RelevantClassName
{
public string link = "http://defaultbackuplink";
public string text = "Default content";
[Space]
public Transform button;
public Transform contentHolder;
}
在单独的类中,您将使用此信息来生成滚动视图和按钮:
public class UIController : MonoBehaviour
{
public List<RelevantClassName> contentToDisplay;
[Header("References"]
public Transform buttonParent;
public Transform contentParent;
public GameObject buttonPrefab;
public GameObject contentPrefab;
public void DisplayUI()
{
foreach(RelevantClassName content in contentToDisplay)
{
content.contentHolder = Instantiate(contentPrefab, contentParent);
content.button = Instantiate(buttonPrefab, buttonParent);
// And here you can run any custom changes, for example finding a text
// component on the content holder and changing the description:
content.contentHolder.GetComponent<Text>().text = content.text;
}
}
自然,我强烈建议您使用池化系统,如果您打算访问组件,则将其缓存在该类中。
希望这会有所帮助!