列表控件Horizontal/Vertical/Grid Layout Group使用说明

列表控件Horizontal/Vertical/Grid Layout Group使用说明

Grid Layout Group

为Panel控件添加Grid Layout Group,子控件为四个按钮,分别为Grid,Calendar,Gear,User:
在这里插入图片描述
默认属性为:

在这里插入图片描述
为方便演示,按钮的底色为控件自带image,按钮上面的图标为其子控件image:

在这里插入图片描述
显示效果为:

在这里插入图片描述
Padding为设置父控件内部与子控件周围的空白间隙,比如这样设置:

在这里插入图片描述
显示效果:

在这里插入图片描述
cell size为子控件大小,spacing为彼此之间的空白:

在这里插入图片描述
显示效果为:

在这里插入图片描述
Start Corner为子控件排列起始点,(排列方式和数量由Start Axis和Constraint决定,后面再说)默认为先从左到右排满一行再排列下一行:

在这里插入图片描述
Start Corner设为Upper Right会发现,按钮控件先从最右上角开始排列,从右往左排满一行再到下一行继续从右往左排列:
在这里插入图片描述
效果:
在这里插入图片描述
Start Corner设为Lower Left为控件先从左往右排列,排满一行再到上一行继续从左往右排列:
在这里插入图片描述
效果为:
在这里插入图片描述
Start Corner设为Lower Right以此类推。

Start Axis则决定了是先水平排还是先垂直排,如果设为Vertical(垂直排列),配合Upper Left,效果则为先垂直从上到下排满最左边一列,再去排下一列:
在这里插入图片描述
效果为:
在这里插入图片描述
child Alignment很简单,设定子控件在父控件内部的位置:
在这里插入图片描述
比如设为Middle Left,效果就是这样的,其他以此类推:
在这里插入图片描述
效果为:
在这里插入图片描述
Constraint的第一个Flexible即响应式,根据宽度自动决定每行数量

在这里插入图片描述
效果为:
在这里插入图片描述
Fixed Colomn Count则强制规定列的数量,搭配Start Corner和Start Axis使用。

比如将Constraint Count设为1,Start Corner为Upper Right,Start Axis为Verical,就是只有一列,从右上角开始排列,垂直排满一列:

在这里插入图片描述
效果为:

在这里插入图片描述
将Constraint Count设为2,Start Corner和Start Axis不变,就是垂直排为两列,从右上角开始排列,先垂直排列,再水平排列,第一个按钮在右上角,第二个按钮在右下角:

在这里插入图片描述
效果为:

在这里插入图片描述
将Constraint Count设为3,Start Corner和Start Axis不变,此时效果不变,原因是控件将垂直排为三列,每列一个控件,会排为四列,所以每一列只能设为两个控件,但根据排列顺序,要先排满一列,才会去排下一列,所以右侧的两列每列一个控件之后,最左侧的第三列就空着了:

在这里插入图片描述
效果为:

在这里插入图片描述
其余配置保持不变,将Start Axis改为Horizontal(水平),效果为这样,这就比较好理解了,是从右上角先水平排列,排满一行(三列)之后排第二行:

在这里插入图片描述
效果为:

在这里插入图片描述
Fixed Row Count与此类似,只不过限定的是行数:

在这里插入图片描述
效果为:

在这里插入图片描述

Horizontal Layout Group

水平分割布局控件

Padding和Spacing与Grid Layout Group的功能类似,不再赘述。

在这里插入图片描述
Child Alignment设定子控件在父控件内部的位置,将Child Control Size和Child Force Expand所有选项都勾掉,此时子控件的长宽可以自由设定,切换Child Alignment,可以看到子控件的位置在变化:

在这里插入图片描述
效果为:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Child Force Expand设置子控件是否均匀分布于父控件内部,比如勾选Child Force Expand-Width之后的效果:

在这里插入图片描述
效果为:

在这里插入图片描述
取消勾选Child Force Expand-Width之后的效果:

在这里插入图片描述
在这里插入图片描述
可以看到,勾选之后虽然子控件可以根据父控件的宽度均匀分布在其内部,但却没有填满。如果需要填满父控件,则可以同时勾选Child Force Expand-Width和Child Controls Size-Width:

在这里插入图片描述
在这里插入图片描述
同时勾选Child Force Expand-Height和Child Controls Size-Height则可以在高度上填满父控件:

在这里插入图片描述
在这里插入图片描述
如果只勾选Child Controls Size不勾选Child Force Expand会怎样?子控件的宽度或高度会强制变为0,所以一般Child Controls Size是搭配Child Force Expand使用:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Vertical Layout Group

与Horizontal Layout Group类似。

### 如何在 Unity 中实现 UI 动画效果 #### 创建基础 UI 组件 为了创建 UI 动画,在 Unity 编辑器中先要构建好基本的 UI 结构。这通常涉及到使用 `Canvas` 来作为容器,放置所有的 UI 元素,并设置合适的 `Render Mode` 属性来决定这些元素是如何被渲染到屏幕上的[^1]。 #### 添加布局组件 对于更复杂的布局需求,可以通过添加不同的 Layout Components(比如 Horizontal/Vertical Layout GroupGrid Layout Group),让多个 UI 控件能够自动排列并响应尺寸变化,从而简化设计流程。 #### 制作动画序列 当准备就绪之后,转而关注于实际的动画制作部分: - **引入 Animator Controller**: 需要在目标 GameObject 上挂载一个 Animator Component 并关联至新建或已有的 Animator Controller 文件。 - **定义 State Machine**: 在 Animator Window 内部建立状态机(State Machine),其中每一个节点代表一种可能的状态;例如,“Open”、“Close”。 - **编写 Transition Conditions (转换条件)**: 设置从一个状态转移到另一个所需的触发条件,如点击按钮事件等逻辑判断语句。 - **配置 Animations Clips**: 对应各个状态下所播放的具体动作片段(Animation Clip)。如果想要自定义,则可以在 Inspector 窗口中编辑现有 clip 或者导入外部资源文件[^3]。 ```csharp using UnityEngine; public class ToggleMenu : MonoBehaviour { public Animator menuAnimator; void Start() { // 初始化时关闭菜单 Close(); } public void Open() { if(menuAnimator != null){ menuAnimator.SetTrigger("Open"); } } public void Close(){ if(menuAnimator != null){ menuAnimator.SetTrigger("Close"); } } } ``` 此脚本展示了如何通过调用 `SetTrigger()` 方法向 Animator 发送信号以激活特定的动作过渡。这里假设已经预先设定了名为 "Open" 和 "Close" 的两个 Trigger 参数用于控制菜单开合过程中的不同阶段表现形式。 #### 应用特殊视觉特效 除了传统的位移缩放旋转之外,还可以借助 Shader 技术或是 Texture 处理手段达成更加独特的交互反馈体验——像模拟卡片翻页、渐变透明度之类的细腻变动都能增强整体沉浸感[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值