Unity UGUI系列五 Toggle ToggleGroup参考
Unity 3D UGUI Toggle用法教程
Is On :用来表示Toggle当前开关状态,勾选为开;
Graphic :控制Toggle组件开关图片的显示隐藏,默认选取Checkmark,就是那个勾勾图片;
挂上这个脚本,会发现事件中有一个带参数的,还有一个不带参数的:
虽然ListenInFunction是带参数的,但是却要选上面那个绿色不带参数的,刚开始我是懵逼的…………
参照 UGUI中Button和Toggle 添加动态事件 得到了解释:
选下方红色的静态方法,其实UI中会多出一个checkbox,可以指定传入的参数:
当然也可以传入其它类型,比如
参考
Unity UGUI入门组件整理(三)【Toggle组件与Toggle Group组件】
假如初始状态是Toggle3被勾选 , 当我点击Toggle1勾选时 , 打印如下:
这样就可以根据名字和选中状态来做逻辑处理了 。
是否允许不打开任何开关?如果启用此设置,则按下当前打开的开关会将其关闭,因此没有任何开关处于打开状态 。如果禁用此设置,则按下当前打开的开关将不改变该开关的状态 。
这个说的有点绕,并且有些博客上还有种错误的说法,就是这个开关能允许Group多选 。其实测试一下就知道了,在勾选Allow Switch off时,点击当前选中的Toggle , 可以将当前Toggle改成未选择状态 , 此时整个Group中所有的Toggle都会处于未选择状态 。而如果没勾选Allow Switch off,就达不到这个效果,会强迫你必须选一个 。
在官方文档中,描述ToggleGroup叫开关组:
UGUI学习笔记(五) ToggleGroup制作选择题单选框
ugui怎么实现类似ngui的centerOnchild功能在NGUI 2.7的示例程序中有Example 7 - Scroll View (Panel),这个滚动视图的例子很好的演示了如何搭建一个可以上下滚动的效果 。这个例子中如果选中Center On Items的复选框,那么每次滚动结束都会有一个Grid是正好滚到正中间的 。但是这里没有实现让点中的Grid滚到正中间的代码 。实现起来很简单,只需要重写UICenterOnChild这个类,在Recenter函数中在计算closest transform,我们只需要把Click 选中的Grid的Transform传到这里,然后在每次Click选中Grid的事件处理中调用这个函数就可以实现这个效果了 。
unity ugui 怎样制作进度条最简单的方法就是通过点击菜单GameObject->UI->Slider创建一个可以拖动的Slider,然后根据自己需要 , 去掉不需要的组件 。
另一种办法就是自己定义一个:首先点击GameObject->UI->Image创建一个作为进度条背景的图 。然后选中创建的Image,再次点击GameObject->UI->Image创建一个作为进度显示的图 。设置好它们的大小尺寸,把第二次创建的Image,作为第一个Image的子物体,并在第一个创建的Image上添加Slider组件 。设置Slider组件的FillRect为第二次创建的Image 。

文章插图
UGUI屏幕自适应解决办法UGUI自适应设置:
1:新建个Canvas,下面不要有子物体,然后选中Canvas进行设置

文章插图
设置完成就能够实现屏幕自适应,可以测试下 , 比较完美 。
具体总结:ugui自适应,依靠的是Canvas下的组件:Canvas Scaler
Canvas Scaler指的是UI Canvas整体的缩放比例,这个值在Canvas 的Render Mode为 Screen Space – Overlay 的情况下默认为1,在 Canvas 的 Render Mode 为 Screen Space – Camera 的情况下则不一定为1,会受到渲染UI的摄像机 参数影响(如果为Perspective 相机 , 会受到 Field Of View影响,如果是Orthographic相机,会受到 Size影响) 。
Screen Match Mode—Match Width Or Height
Match
Match是一个滑条,拉在最左时是Width ,最右时是Height,中间则是按比例混合 。
当处于最左边时,屏幕高度对于UI大小完全没有任何影响,只有宽度会对UI大小产生影响 。假设宽度为Reference Resolution宽度的x倍 , 则UI整体缩放为Reference Resolution状态下的x倍 。也就是说只有宽度等于Reference Resolution宽度时,才能做到pixel perfect , 否则像素就会有拉伸
当处于最右边时,与上述情况正好相反,决定整体缩放值的是高度,而宽度则没有任何影响
处于中间某处时 , 对上述两者的影响进行权重加成
Screen Match Mode—Expand
当屏幕分辨率大于参考分辨率时,选择变化较小的一个方向(横向还是纵向),作为放大Canvas Scale的标准,另一方向上的变化则是在整体缩放以后再进行补偿性的变化 。此举旨在减少扩大分辨率时由于非等比扩大而对UI整体布局造成影响 。适合制作较小标准尺寸,扩充到较大屏幕 。
例如:Reference Resolution为800600,(假设此时Canvas Scale为(1,1,1)) 。如果实际分辨率为800800,那么Canvas Scale还保持为(1,1,1)因为宽度没有发生变化,只是单纯的高度增加了200 。所以势必对布局造成一定得影响 。1000600的情况也是一样,Canvas Scale没有变化,只是单纯宽度增加了200 。但如果实际分辨率变为1000800,那么Canvas Scale就变成(1.25,1.25,1.25) 。因为宽度是参考分辨率宽度的1.25倍,高度是1.33倍,那么取较小的1.25 。这个1.25倍的意义是:整体Canvas渲染放大1.25倍 , 横向或纵向的变化超过了1.25倍,则靠拉伸Canvas来变化 , 此时因为这部分变化,可能会对布局产生一些相对较小的影响 , 例如相对位置、某些元素的长宽比 。
Screen Match Mode—Shrink
和Expand类似,但是更适合于缩小的情形 。它会在屏幕尺寸缩小时,通过缩小CanvasScale尽量减少由于非等比缩小对布局产生的影响 。按照影响较小的一个方向缩小的比例去缩小CanvasScale,然后再通过变形调整另外一个方向
总结:

文章插图
【ugui怎么制作背包系统,C#学到什么程度可以开发Unity游戏】
- 单反相机的光圈怎么调,单反光圈在哪调整
- 彩虹色阶怎么看,photoshop的色阶在哪里
- 花呗怎么分期还款怎么找不到,花呗可以协商分期36期还款
- ps纹理化在哪里,ps怎么添加新纹理
- 生菜上有铁锈有黄斑能吃,生菜怎么摘洗处理
- 怎么炒洋芋片,土豆片怎么炒
- 厕所堵了怎么办疏通蹲便,蹲便器堵住了怎么疏通
- 杨绵怎么清理,吸尘器可以吸杨棉
- 椅子太摇晃了怎样加固它,木头椅子被虫蛀了怎么办
- 太和鸭怎么炒,桂阳太和全鸭怎么做
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
