【问题标题】:Unity ScrollView with multiple buttons具有多个按钮的 Unity ScrollView
【发布时间】:2018-08-07 12:08:10
【问题描述】:

我正在开发一款游戏,我已经到了需要动态创建按钮列表的阶段。

我的方法是创建一个滚动视图,然后通过脚本添加按钮。

我已经创建了按钮预制件。这个按钮的目的是在应用程序外部打开一个特定的链接,所以我创建了带有两个文本组件的按钮预制件:一个说“显示路径”,这是我希望按钮显示的内容,另一个文本组件是我需要打开的链接,用户看不到。

我遇到了几个问题:

  1. 在浏览用户数据列表时,我需要创建按钮。我在按钮旁边正确显示数据,在另一个滚动视图中。但是,只创建了一个按钮。
  2. 我无法访问预制链接文本组件以将其更改为我需要打开的链接。

感谢您的宝贵时间!

【问题讨论】:

    标签: c# list unity3d button scrollview


    【解决方案1】:

    我建议你创建自己的类来处理这个问题,这样在检查器中更容易可视化。

    [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;
            }
        }
    

    当然,我强烈建议您使用池系统,如果您打算访问某个组件,请将其缓存在该类中。

    希望这会有所帮助!

    【讨论】:

    • 感谢您的帮助,但实际上我刚刚检查并正在创建按钮,就在彼此之上...我使用滚动视图视口作为转换父级并从视口内的内容,这是错误的吗?
    • 您可能希望内容成为按钮的转换父级。视口只显示当前在视口中的内容的哪一部分。添加按钮时,您可能需要在添加更多按钮时扩大内容的大小。
    • 按照这个逻辑,我只是​​将转换父级更改为滚动视图内容,但是没有显示任何按钮,即使它们正在创建!
    • 我建议您切换到使用垂直布局,以确保按钮和内容对齐。
    • 我创建了按钮预制件和滚动视图。然后,我将滚动视图-> 视口-> 内容设置为父级。这是错的吗?内容没有像现在这样的组件,所有按钮都是在彼此之上创建的。我尝试添加内容大小调整器,但它根本不显示任何按钮。我不知道你所说的垂直布局是什么意思。
    猜你喜欢
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    • 2017-03-20
    • 1970-01-01
    • 2023-02-04
    • 2019-06-11
    相关资源
    最近更新 更多