unity3d UGUI下拉框

可以用来让用户从列表中选择一个选项的选择。

控制显示当前选择的选项。 一旦点击,它打开了选项列表中,可以选择一个新的选项。 在选择一个新的选项,再次关闭的列表,控制显示了新的选择选项。 列表也关闭,如果用户点击控制本身,或其他地方在画布上。

A Dropdown. 一个下拉。 A Dropdown with its list of options open. 打开下拉列表的选项。

属性

属性:功能:
Interactable该组件将会接受输入吗? 看到Interactable
过渡属性,确定控制视觉响应用户操作的方式。 看到过渡的选择
导航属性确定的顺序控制。 看到导航选项
模板的矩形变换下拉列表的模板。 请参阅下面的说明。
标题文本文本组件把当前选中的文本选项。 (可选)
标题图片图像组件当前选中的选项的形象。 (可选)
项文本文本组件条目的文本。 (可选)
项目形象图像组件项目的形象。 (可选)
价值当前选中的索引选项。 0是第一选择,1是第二步,等等。
选项可能的选项的列表。 一个文本字符串,并为每个选项可以指定一个图像。

事件

属性:功能:
价值变化一个UnityEvent当调用一个用户点击下拉列表中的选项之一。

细节

选项列表中指定的检查员或从代码可以分配。 对于每一个选项可以指定一个文本字符串,并选择一个图像,如果设置下拉来支持它。

按钮有一个单独的事件价值变化响应当用户完成点击列表中的选项之一。 它支持发送一个整数数字值的索引选择选项。 0是第一选择,1是第二步,等等。

模板系统

下拉控制的目的是有个孩子GameObject作为模板时显示的下拉列表中单击下拉控制。 模板GameObject默认是不活跃的,但可以活跃在编辑模板更好地看到发生了什么。 参考模板对象必须在模板中指定属性下拉菜单的组件。

模板必须有一个单项与切换组件。 当创建实际的下拉列表中单击下拉控制,这一项是重复多次,一份用于每个选项在列表中。 父项目的自动调整大小所以它可以适用于所有里面的物品。

A simple dropdown setup where the item is an immediate child of the template. 一个简单的下拉菜单设置项在哪里的直接子模板。 A more advanced dropdown setup that includes a scrollview that enables scrolling when there are many options in the list. 更高级的下拉菜单设置,其中包括滚动视图,使滚动当有许多选项列表中。

模板可以在许多不同的方式设置。 安装使用的UI GameObject > >下拉菜单项包括滚动视图,这样如果有太多选项显示,会出现一个滚动条,用户可以滚动选项。 这不过不是一个强制性的模板设置的一部分。

(有关更多信息,请参见ScrollRect页面设置滚动视图)。

设置文本和图像的支持

下拉支持一个文本内容和一个图像内容对每个选项。 文本和图像是可选的。 他们只能使用如果设置下拉来支持它。

每个选项的下拉支持文本的标题文本和文本项属性都设置。 这些都是默认设置,当UI使用GameObject > >下拉菜单项。

  • 标题文本的文本组件保存文本是当前选中的选项。 下拉GameObject通常是一个孩子。
  • 项目文本是文本组件每个选择的文本。 项目GameObject通常是一个孩子。

每个选项的下拉支持一个图像时,标题图片和项目形象属性都设置。 这些都不是默认设置。

  • 标题图像的图像组件来保存图像当前选中的选项。 下拉GameObject通常是一个孩子。
  • 项目形象的图像组件来保存图像的每个选项。 项目GameObject通常是一个孩子。

实际的文本和图像用于指定下拉选项下拉组件的属性,或者可以设置代码。

位置的下拉列表

的位置下拉列表的下拉控制是由锚定主的矩形变换的模板。

默认情况下,将出现以下控制列表。 这是通过锚定模板底部的控制。 模板的主也需要在顶部,这样的模板是exapanded容纳数量可变的选择项,它只向下扩展。

下拉控制简单的逻辑来防止,下拉显示在画布的范围之外,因为这将使它不可能选择某些选项。 如果下拉在其默认位置没有完全在画布上矩形,其位置与控制是逆转。 例如,列表如下所示控制默认将显示上面。

这个逻辑非常简单,有一定的局限性。 下拉模板需要不超过一半的画布大小-下拉控件的大小,否则可能没有房间在位置如果下拉列表控件放置在中间的画布。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Unity3D中,uGUI是一个用户界面系统,它可以让开发者创建和管理游戏中的UI元素,如按钮、文本等。在uGUI中,世界坐标是指相对于场景原点的坐标系,而屏幕坐标是指相对于屏幕的坐标系。 在实际运用中,我们可以通过以下方式将世界坐标转换为屏幕坐标: ```csharp Vector3 worldPosition = new Vector3(10, 5, 0); Vector3 screenPosition = Camera.main.WorldToScreenPoint(worldPosition); ``` 这里我们使用了Camera.main.WorldToScreenPoint()方法,将世界坐标转换为屏幕坐标。这个方法需要指定一个摄像机,它将根据该摄像机的位置和朝向来计算屏幕坐标。在这个例子中,我们使用的是场景中的主摄像机,也就是Camera.main。 同样地,我们也可以将屏幕坐标转换为世界坐标: ```csharp Vector3 screenPosition = new Vector3(100, 100, 0); Vector3 worldPosition = Camera.main.ScreenToWorldPoint(screenPosition); ``` 这里我们使用了Camera.main.ScreenToWorldPoint()方法,将屏幕坐标转换为世界坐标。同样地,这个方法也需要指定一个摄像机。 在实际开发中,我们可以使用这些方法来处理鼠标点击、UI元素的位置调整等操作。例如,我们可以通过以下代码来将一个UI元素移动到鼠标点击的位置: ```csharp public void OnPointerClick(PointerEventData eventData) { Vector3 worldPosition = Camera.main.ScreenToWorldPoint(eventData.position); transform.position = worldPosition; } ``` 这里我们使用了Unity3D中的事件系统,当鼠标点击时,OnPointerClick()方法会被调用。在这个方法中,我们通过Camera.main.ScreenToWorldPoint()方法将屏幕坐标转换为世界坐标,然后将UI元素的位置设置为该世界坐标。这样,当我们点击鼠标时,UI元素就会移动到鼠标点击的位置。 总之,在uGUI中,世界坐标和屏幕坐标的转换是非常重要的,它们可以帮助我们处理一些常见的UI操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值