如何使用脚本向画布添加垂直滚动?

时间:2019-07-18 10:52:11

标签: c# unity3d

我想使用脚本将“垂直滚动”添加到“画布”。 我在画布上添加了N个GameObject,并将它们一个接一个地放置。 现在,我想向画布添加垂直滚动,但是我不确定如何继续。 请帮帮我。 谢谢。

{
    path: 'dossier/overig/pdf/:dossierEntryId',
    component: DossierPdfComponent,
    canActivate: [AuthGuard]
  },

2 个答案:

答案 0 :(得分:0)

我想您想要的是一个垂直滚动的ScrollView对象。 因此,根据Unity documentation,创建UI元素运行时的最佳方法是创建该UI元素的Prefab,并根据需要设置属性。

因此,在您的情况下,您需要创建一个ScrollView的预制件,该预制件在ScrollRect组件中将Horizo​​ntal设置为false,Vertical设置为True,然后对该对象进行预制,并在脚本中使用它来实例化它。 / p>

public GameObject scrollPrefab;
void SpawnVerticalScrollView()
{
   GameObject instance = Instantiate (scrollPrefab,GameObject.FindGameObjectWithTag ("Canvas").transform) as GameObject;   
}

正如您所看到的,我还立即在同一行中将父对象分配给了实例化对象。

答案 1 :(得分:0)

我建议您不要使用函数Resources.Load,因为Unity会说:“不要使用它。使用Resources文件夹会使细粒度的内存管理更加困难。因此,您需要使用使用滚动组件创建了预制件,并将此预制件链接添加到编辑器在Canvas中控制UI对象的主脚本中。当需要使用滚动预制件时,只需使用“实例化”功能,然后将控制脚本附加到Canvas对象上即可。例如:

    public GameObject scrollingPrefab;

    public void CreatePrefab(){         
    GameObject currentPrefab = Instantiate(scrollingPrefab, gameObject.transform);     
}

此外,创建对象的坏方法是使用函数FindGameObjectWithTag和其他“查找”功能。