c# - 如何统一创建一个基本的 ListView

标签 c# unity3d

我需要创建一个基本的 list viewscroll view在我的游戏开发引擎 Unity 场景中。

  • 我刚开始学习 Unity。
  • 我试图创建一个 list view没有成功。
  • 我有一组字符串,需要像 list view 一样显示或 scroll view .
  • 一个接一个,我已将字符串输入到 List<string> 中现在。

现在正在做的是将字符串设置为直接显示换行符,\n .

我还尝试将字符串添加到 scroll view 的内容中统一,但我还没有设法让它工作。

谁能提供引用?

最佳答案

我能想到的“最简单”和最优雅的方法是使用 Vertical Layout Group

  1. 在 Canvas 下添加一个新的空游戏对象
  2. 使用 RectTransform 组件设置所需的尺寸
  3. 附加“垂直布局组”组件
  4. 在您的代码中,对于列表中的每个字符串:
    • 创建一个新的游戏对象:
    • 附加一个文本组件
    • 用你的字符串填充text属性
    • 将转换的父级设置为第一步中的第一个空游戏对象

这是一段代码我还没有测试过:

// Drag & Drop the vertical layout group here
public UnityEngine.UI.VerticalLayoutGroup verticalLayoutGroup ;

// ... In your function
RectTransform parent = verticalLayoutGroup.GetComponent<RectTransform>() ;
for( int index = 0 ; index < stringList.Count ; ++index )
{
     GameObject g = new GameObject( stringList[index] ) ;
     UnityEngine.UI.Text t = g.AddComponent<UnityEngine.UI.Text>();
     t.addComponent<RectTransform>().setParent( parent ) ;
     t.text = stringList[index] ;
}

如果您需要更多自定义,您可以实例化一个预制件,而不是手动创建文本游戏对象。

关于c# - 如何统一创建一个基本的 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40928336/

相关文章:

c# - 我可以将每个项目存储在 c# web api 中 foreach 循环内的 json 数组中吗?

c# - 使用反射通过从 setter 调用的方法获取属性的属性

user-interface - Unity 3D 中的单个 Canvas 和多个面板与多个 Canvas

c# - 具有自定义字符映射的 Levenshtein 算法

c# - WPF 应用程序的 Windows 任务栏中显示错误大小的图标

c# - 统一 3D。子对象没有改变

c# - 如何在场景之间保留对象的完整状态?

C# Mono aot 与 protobuf-net 获取 ExecutionEngineException

c# - UE4 - 对象有反射 - 那为什么要使用 C++?

c# - 突破 C# 实例化批处理脚本来获取 shell?