C# 具有多个按钮的统一滚动视图
我正在开发一个游戏,我已经到了需要动态创建按钮列表的阶段 我的方法是创建一个滚动视图,然后通过脚本添加按钮 我已经创建了按钮预置。这个按钮的目的是在应用程序外部打开一个特定的链接,因此我创建了一个按钮预置,其中包含两个文本组件:一个是“显示路径”,这是我希望按钮显示的内容,另一个是我需要打开的链接,用户看不到 我遇到了几个问题:C# 具有多个按钮的统一滚动视图,c#,list,unity3d,button,scrollview,C#,List,Unity3d,Button,Scrollview,我正在开发一个游戏,我已经到了需要动态创建按钮列表的阶段 我的方法是创建一个滚动视图,然后通过脚本添加按钮 我已经创建了按钮预置。这个按钮的目的是在应用程序外部打开一个特定的链接,因此我创建了一个按钮预置,其中包含两个文本组件:一个是“显示路径”,这是我希望按钮显示的内容,另一个是我需要打开的链接,用户看不到 我遇到了几个问题: 我需要在浏览用户数据列表时创建按钮。我在另一个滚动视图中正确地显示按钮旁边的数据。但是,只创建了一个按钮 我无法访问预设链接文本组件以将其更改为需要打开的链接 谢谢你抽
谢谢你抽出时间 我建议您创建自己的类来处理这个问题,这样在inspector中更容易可视化
[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;
}
}
公共类UIController:monobhavior
{
公共列表内容显示;
[标题(“参考”]
公共租赁;
公共关系;家长;
公共游戏对象按钮预览;
公共游戏对象内容预制;
公共void displayi()
{
foreach(contentToDisplay中的相关类名内容)
{
content.contentHolder=实例化(contentPrefab,contentParent);
content.button=实例化(buttonpreab,buttonParent);
//在这里,您可以运行任何自定义更改,例如查找文本
//内容保持架上的组件并更改说明:
content.contentHolder.GetComponent().text=content.text;
}
}
当然,我强烈建议您使用池系统,如果您计划访问组件,请将其缓存在该类中
希望这有帮助!感谢您的帮助,但实际上我刚刚检查了按钮,并且正在创建按钮,它们彼此重叠…我使用scrollview视口作为变换父对象,并从视口内的内容中删除了文本组件,这是错的吗?您可能希望内容成为按钮的变换父对象“视口”仅显示视口中当前内容的哪一部分。添加按钮时,您可能需要在添加更多按钮时扩展内容的大小。按照此逻辑,我只是将转换父级更改为滚动视图内容,但没有显示任何按钮,即使它们正在创建!我建议您u切换到使用垂直布局,以确保按钮和内容排列在一起。我创建了按钮预设和滚动视图。然后,我将滚动视图->视口->内容设置为父级。这是否错误?内容没有现在的组件,所有按钮都是在彼此的顶部创建的。我尝试添加一个内容大小为f的但它根本没有显示任何按钮。我不知道你说的垂直布局是什么意思。